[project] name = "IfcOpenShell" version = "0.8.4" description = "IfcOpenShell is a library to support the IFC file format" channels = ["conda-forge"] platforms = ["win-64", "linux-64", "osx-64"] [environments] common = { features = ["common"], no-default-feature = true } prod = { features = ["prod", "common"], no-default-feature = true } dev = { features = ["dev", "common"], no-default-feature = true } lint = { features = ["lint"], no-default-feature = true } tests = { features = ["tests", "common"], no-default-feature = true } [feature.lint.dependencies] ruff = "*" black = "*" [feature.common.dependencies] # Build deps cmake = "==3.30.5" ninja = "*" swig = "*" c-compiler = "*" cxx-compiler = "*" # Runtime deps python = "3.12.*" libboost-devel = "*" occt = { version = "*", build = "*novtk*" } cgal-cpp = "*" numpy = "*" lark = "*" hdf5 = "*" eigen = "*" mpfr = "*" gmp = "*" nlohmann_json = "*" zlib = "*" # Not strictly necessary pythonocc-core = "*" [feature.tests.dependencies] pytest = "*" shapely = "*" tabulate = "*" isodate = "*" python-dateutil = "*" xmlschema = "*" xsdata = "*" lxml = "*" networkx = "*" [feature.common.target.win-64.dependencies] vs2022_win-64 = "*" #vs_win-64 = "*" # Visual Studio #vswhere = "*" # Visual Studio [feature.common.tasks] init-submodules = { cmd = "git submodule update --init --recursive", outputs =["$PIXI_PROJECT_ROOT/src/svgfill/3rdparty/svgpp/*"]} [feature.prod.target.win-64.tasks] configure-release = { cmd = ["cmake", "--preset", "win-release", "-B", "build/win-release", "cmake"], description = "Configure the project", depends-on=[{ task="init-submodules", environment = "common" }] } build-release = { cmd = ["cmake", "--build", "build/win-release", "--config", "Release"], description = "Build the project" } [feature.dev.target.win-64.tasks] configure-debug = { cmd = ["cmake", "--preset", "win-debug", "-B", "build/win-debug", "cmake"], description = "Configure the project", depends-on=[{ task="init-submodules", environment = "common" }], outputs=["build/win-debug/CMakeCache.txt"] } build-debug = { cmd = ["cmake", "--build", "build/win-debug", "--config", "Debug"], description = "Build the project", depends-on = ["configure-debug"] } install-debug = { cmd = ["cmake", "--install", "build/win-debug", "--config", "Debug"], description = "Install the project" } # Optionally Install files to your desired env using --prefix vsdebug = { cmd = ["python"], description = "Run a python script with vs debugger attached" } [feature.tests.tasks] configure-test = { cmd = ["cmake", "--preset", "win-test", "-B", "build/win-test", "cmake"], description = "Configure the project", depends-on=[{ task="init-submodules", environment = "common" }], outputs=["build/win-test/CMakeCache.txt"] } build-test = { cmd = ["cmake", "--build", "build/win-test", "--config", "Release"], description = "Build the project", depends-on = ["configure-test"], outputs=["build/win-test/IfcGeom.lib"] } install-test = { cmd = ["cmake", "--install", "build/win-test", "--config", "Release"], description = "Install the project", depends-on = ["build-test"] } # Optionally Install files to your desired env using --prefix test = { cmd = "pytest .", cwd="src/ifcopenshell-python/test", depends-on=["install-test"], env = {PYTHONPATH="$PIXI_PROJECT_ROOT/src/ifcpatch"}} [feature.lint.tasks] lint = { cmd = "ruff check && black --diff --check ."} [feature.common.target.win-64.activation] #scripts = ["cmake/activate.bat"]