[project] name = "eigenpy" version = "3.10.2" description = "Bindings between Numpy and Eigen using Boost.Python" platforms = ["linux-64", "osx-64", "osx-arm64", "win-64"] channels = ["conda-forge"] license = "BSD-2-Clause" license-file = "LICENSE" [build-dependencies] ccache = ">=4.9.1" cmake = ">=3.10" cxx-compiler = ">=1.7.0" ninja = ">=1.11" pkg-config = ">=0.29.2" git = ">=2.47.0" [dependencies] libboost-devel = ">=1.80.0" libboost-python-devel = ">=1.80.0" eigen = ">=3.4.0" numpy = ">=1.22.0" python = ">=3.9.0" scipy = ">=1.10.0" [activation] scripts = ["development/scripts//pixi/activation.sh"] [target.win-64.activation] scripts = ["development/scripts//pixi/activation.bat"] [tasks] # We must avoid to set CMAKE_CXX_FLAGS because of WIN32 # https://discourse.cmake.org/t/strictly-appending-to-cmake-lang-flags/6478 configure = { cmd = [ "CXXFLAGS=$EIGENPY_CXX_FLAGS", "cmake", "-G", "Ninja", "-B", "build", "-S", ".", "-DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX", "-DCMAKE_BUILD_TYPE=$EIGENPY_BUILD_TYPE", "-DGENERATE_PYTHON_STUBS=$EIGENPY_PYTHON_STUBS", "-DBUILD_WITH_CHOLMOD_SUPPORT=$EIGENPY_CHOLMOD_SUPPORT", "-DBUILD_WITH_ACCELERATE_SUPPORT=$EIGENPY_ACCELERATE_SUPPORT", ] } build = { cmd = "cmake --build build --target all", depends_on = ["configure"] } clean = { cmd = "rm -rf build" } test = { cmd = "ctest --test-dir build --output-on-failure", depends_on = [ "build", ] } [feature.lint] dependencies = { pre-commit = ">=3.6.2" } tasks = { lint = { cmd = "pre-commit run --all" } } # Increment the version number with EIGENPY_VERSION variable [feature.new-version.dependencies] tomlkit = ">=0.13.2" [feature.new-version.tasks] configure_new_version = { cmd = [ "CXXFLAGS=$EIGENPY_CXX_FLAGS", "cmake", "-G", "Ninja", "-B", "build_new_version", "-S", ".", "-DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX", "-DCMAKE_BUILD_TYPE=$EIGENPY_BUILD_TYPE", "-DGENERATE_PYTHON_STUBS=ON", "-DBUILD_WITH_CHOLMOD_SUPPORT=ON", "-DBUILD_WITH_ACCELERATE_SUPPORT=OFF", ] } release_new_version = { cmd = "VERSION=$EIGENPY_VERSION cmake --build build_new_version --target release", depends-on = [ "configure_new_version", ] } # Cholmod support [feature.cholmod] dependencies = { suitesparse = ">=5" } activation = { env = { EIGENPY_CHOLMOD_SUPPORT = "ON" } } # Accelerate only work on Apple ARM platform [feature.accelerate] [feature.accelerate.target.osx-arm64] activation = { env = { EIGENPY_ACCELERATE_SUPPORT = "ON" } } [feature.py312.dependencies] python = "3.12.*" [feature.py39.dependencies] python = "3.9.*" # Use clang-cl on Windows. # We must use scripts instead of env to setup CC and CXX # to avoid cxx-compiler to overwrite them. [feature.clang-cl] platforms = ["win-64"] activation = { scripts = ["development/scripts//pixi/activation_clang_cl.bat"] } # Use clang on GNU/Linux. # We must use scripts instead of env to setup CC and CXX # to avoid cxx-compiler to overwrite them. [feature.clang] platforms = ["linux-64"] activation = { scripts = ["development/scripts//pixi/activation_clang.sh"] } dependencies = { clangxx = "*" } [environments] default = { features = ["py312"], solve-group = "py312" } clang = { features = ["clang", "py312"] } lint = { features = ["lint"], solve-group = "py312" } cholmod = { features = ["cholmod", "py312"], solve-group = "py312" } accelerate = { features = ["accelerate", "py312"], solve-group = "py312" } py39 = { features = ["py39"], solve-group = "py39" } # Accelerate will only work in Eigen next release all = { features = ["cholmod", "py312"], solve-group = "py312" } all-py39 = { features = ["cholmod", "py39"], solve-group = "py39" } all-clang-cl = { features = [ "cholmod", "clang-cl", "py312", ], solve-group = "py312" } # Release a new software version new-version = { features = [ "new-version", "cholmod", "py312", ], solve-group = "py312" }