Skip to content
Snippets Groups Projects
setup.py 1.97 KiB
Newer Older
from pathlib import Path
Hkorb's avatar
Hkorb committed
import setuptools
import skbuild
Hkorb's avatar
Hkorb committed
"""
Install python wrapper of virtual fluids
install via python:
Hkorb's avatar
Hkorb committed
    python setup.py develop
    set CMAKE Flags via -DBUILD_VF_GPU:BOOL=1
    CMAKE flags have to be separated by -- 
Hkorb's avatar
Hkorb committed
    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 .
Hkorb's avatar
Hkorb committed
    set CMAKE Flags via --config-settings "-DBUILD_VF_GPU=1"
    example: pip install -e . --config-settings="-DBUILD_VF_GPU=ON"
Hkorb's avatar
Hkorb committed
"""
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"

Hkorb's avatar
Hkorb committed
build_dir = top_dir/name_of_build_dir
build_dir.mkdir(exist_ok=True)


target = "python_bindings"

config_args = []
if("cmake_args" in locals()):
Hkorb's avatar
Hkorb committed
    config_args.extend([f"{k}={v}" for k,v in locals()["cmake_args"].items()])
Hkorb's avatar
Hkorb committed
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",
Hkorb's avatar
Hkorb committed
    ] + config_args + sys_args

maker = skbuild.cmaker.CMaker()
maker.configure(clargs=cmake_args, cmake_install_dir=build_dir)
maker.make(install_target=target)
Hkorb's avatar
Hkorb committed
# 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"},