import sys from pathlib import Path import setuptools import skbuild """ Install python wrapper of virtual fluids install via python: python setup.py develop set CMAKE Flags via -DBUILD_VF_GPU:BOOL=1 CMAKE flags have to be separated by -- example: python setup.py develop -- VBUILD_VF_CPU:BOOL=ON then run pip install -e . to add to environment or install via pip: pip install -e . set CMAKE Flags via --config-settings "-DBUILD_VF_GPU=1" example: pip install -e . --config-settings="-DBUILD_VF_GPU=ON" """ init_py = "from .bindings import *" top_dir = Path(__file__).parent #create __init__.py pyfluids_dir = top_dir / "pythonbindings/pyfluids" pyfluids_dir.mkdir(exist_ok=True) init_file = pyfluids_dir / "__init__.py" init_file.write_text(init_py) (pyfluids_dir / "__init__.py").touch() # create build_dir name_of_build_dir = "build" build_dir = top_dir/name_of_build_dir build_dir.mkdir(exist_ok=True) target = "python_bindings" config_args = [] if("cmake_args" in locals()): config_args.extend([f"{k}={v}" for k,v in locals()["cmake_args"].items()]) if __name__ == "__main__": args = sys.argv.copy() args.append("--") ind = args.index("--") sys_args = args[ind+1:-1] for arg in sys_args: sys.argv.remove(arg) cmake_args = [ f"-DPython3_ROOT_DIR={Path(sys.prefix)}", "-DBUILD_VF_PYTHON_BINDINGS=ON", "-DBUILD_SHARED_LIBS=OFF", "-DBUILD_VF_DOUBLE_ACCURACY=OFF", "-DBUILD_VF_UNIT_TESTS:BOOL=OFF", "-DBUILD_WARNINGS_AS_ERRORS=OFF", ] + config_args + sys_args maker = skbuild.cmaker.CMaker() maker.configure(clargs=cmake_args, cmake_install_dir=build_dir) maker.make(install_target=target) # skbuild.setup( # name="pyfluids", # packages=["pyfluids"], # package_dir={"": "pythonbindings"}, # cmake_args = cmake_args, # cmake_install_target=target # ) setuptools.setup( name="pyfluids", packages=["pyfluids"], package_dir={"": "pythonbindings"}, )