build(meson): much more robust build system
This commit is contained in:
@@ -4,6 +4,41 @@ if get_option('build_python')
|
||||
subdir('python')
|
||||
subdir('pybind')
|
||||
endif
|
||||
|
||||
if get_option('build_python')
|
||||
gridfire_pkg_dir = py_installation.get_install_dir() / 'gridfire'
|
||||
gridfire_includedir = gridfire_pkg_dir / 'include'
|
||||
gridfire_libdir = gridfire_pkg_dir / 'lib'
|
||||
gridfire_pcdir = gridfire_libdir / 'pkgconfig'
|
||||
else
|
||||
gridfire_includedir = get_option('includedir')
|
||||
gridfire_libdir = get_option('libdir')
|
||||
gridfire_pcdir = get_option('libdir') / 'pkgconfig'
|
||||
endif
|
||||
|
||||
gridfire_vendor_includedir = gridfire_includedir / 'gridfire' / 'vendor'
|
||||
|
||||
gridfire_fourdst_vendor_includedir = gridfire_includedir / 'fourdst' / 'vendor'
|
||||
|
||||
vendor_py = import('python').find_installation('python3')
|
||||
copytree_cmd = [
|
||||
vendor_py, '-c',
|
||||
'''import sys, os, stat, shutil
|
||||
src, dst = sys.argv[1], sys.argv[2]
|
||||
shutil.rmtree(dst, ignore_errors=True)
|
||||
shutil.copytree(src, dst)
|
||||
for root, dirs, files in os.walk(dst):
|
||||
os.chmod(root, 0o755)
|
||||
for f in files:
|
||||
p = os.path.join(root, f)
|
||||
os.chmod(p, os.stat(p).st_mode | 0o644)
|
||||
''',
|
||||
]
|
||||
copyfiles_cmd = [
|
||||
vendor_py, '-c',
|
||||
'import sys, shutil; [shutil.copy2(p, sys.argv[-1]) for p in sys.argv[1:-1]]',
|
||||
]
|
||||
|
||||
subdir('fourdst')
|
||||
subdir('sundials')
|
||||
|
||||
@@ -14,7 +49,6 @@ subdir('eigen')
|
||||
subdir('json')
|
||||
|
||||
subdir('CLI11')
|
||||
subdir('unordered_dense')
|
||||
|
||||
if get_option('use_mimalloc')
|
||||
subdir('mimalloc')
|
||||
|
||||
Reference in New Issue
Block a user