MCPcopy Create free account
hub / github.com/numpy/numpy / build

Function build

numpy/testing/_private/extbuild.py:212–243  ·  view source on GitHub ↗

use meson to build

(cfile, outputfilename, compile_extra, link_extra,
          include_dirs, libraries, library_dirs)

Source from the content-addressed store, hash-verified

210
211
212def build(cfile, outputfilename, compile_extra, link_extra,
213 include_dirs, libraries, library_dirs):
214 "use meson to build"
215
216 build_dir = cfile.parent / "build"
217 os.makedirs(build_dir, exist_ok=True)
218 so_name = outputfilename.parts[-1]
219 with open(cfile.parent / "meson.build", "wt") as fid:
220 includes = ['-I' + d for d in include_dirs]
221 link_dirs = ['-L' + d for d in library_dirs]
222 fid.write(textwrap.dedent(f"""\
223 project('foo', 'c')
224 shared_module('{so_name}', '{cfile.parts[-1]}',
225 c_args: {includes} + {compile_extra},
226 link_args: {link_dirs} + {link_extra},
227 link_with: {libraries},
228 name_prefix: '',
229 name_suffix: 'dummy',
230 )
231 """))
232 if sys.platform == "win32":
233 subprocess.check_call(["meson", "setup",
234 "--buildtype=release",
235 "--vsenv", ".."],
236 cwd=build_dir,
237 )
238 else:
239 subprocess.check_call(["meson", "setup", "--vsenv", ".."],
240 cwd=build_dir
241 )
242 subprocess.check_call(["meson", "compile"], cwd=build_dir)
243 os.rename(str(build_dir / so_name) + ".dummy", cfile.parent / so_name)
244
245def get_so_suffix():
246 ret = sysconfig.get_config_var('EXT_SUFFIX')

Callers 1

_c_compileFunction · 0.70

Calls 2

openFunction · 0.85
writeMethod · 0.45

Tested by

no test coverage detected