|
| 1 | +[project] |
| 2 | +name = "eigenpy" |
| 3 | +version = "3.4.0" |
| 4 | +description = "Bindings between Numpy and Eigen using Boost.Python" |
| 5 | +platforms = ["linux-64", "osx-64", "osx-arm64", "win-64"] |
| 6 | +channels = ["conda-forge"] |
| 7 | +license = "BSD-2-Clause" |
| 8 | +license-file = "LICENSE" |
| 9 | + |
| 10 | +[build-dependencies] |
| 11 | +ccache = ">=4.9.1" |
| 12 | +cmake = ">=3.10" |
| 13 | +cxx-compiler = ">=1.7.0" |
| 14 | +ninja = ">=1.11" |
| 15 | +pkg-config = ">=0.29.2" |
| 16 | + |
| 17 | +[dependencies] |
| 18 | +boost = ">=1.80.0" |
| 19 | +eigen = ">=3.4.0" |
| 20 | +numpy = ">=1.22.0" |
| 21 | +python = ">=3.9.0" |
| 22 | +scipy = ">=1.10.0" |
| 23 | + |
| 24 | +[activation] |
| 25 | +scripts = ["scripts/activation.sh"] |
| 26 | + |
| 27 | +[target.win-64.activation] |
| 28 | +scripts = ["scripts/activation.bat"] |
| 29 | + |
| 30 | +[tasks] |
| 31 | +# We must avoid to set CMAKE_CXX_FLAGS because of WIN32 |
| 32 | +# https://discourse.cmake.org/t/strictly-appending-to-cmake-lang-flags/6478 |
| 33 | +configure = { cmd = [ |
| 34 | + "CXXFLAGS=$EIGENPY_CXX_FLAGS", |
| 35 | + "cmake", |
| 36 | + "-G", |
| 37 | + "Ninja", |
| 38 | + "-B", |
| 39 | + "build", |
| 40 | + "-S", |
| 41 | + ".", |
| 42 | + "-DCMAKE_BUILD_TYPE=$EIGENPY_BUILD_TYPE", |
| 43 | + "-DGENERATE_PYTHON_STUBS=$EIGENPY_PYTHON_STUBS", |
| 44 | + "-DBUILD_WITH_CHOLMOD_SUPPORT=$EIGENPY_CHOLMOD_SUPPORT", |
| 45 | + "-DBUILD_WITH_ACCELERATE_SUPPORT=$EIGENPY_ACCELERATE_SUPPORT", |
| 46 | +], env = { EIGENPY_PYTHON_STUBS = "ON", EIGENPY_CHOLMOD_SUPPORT = "OFF", EIGENPY_ACCELERATE_SUPPORT = "OFF", EIGENPY_BUILD_TYPE = "Release" } } |
| 47 | +build = { cmd = "cmake --build build --target all", depends_on = ["configure"] } |
| 48 | +clean = { cmd = "rm -rf build" } |
| 49 | +test = { cmd = "ctest --test-dir build --output-on-failure", depends_on = [ |
| 50 | + "build", |
| 51 | +] } |
| 52 | + |
| 53 | +[feature.lint] |
| 54 | +dependencies = { pre-commit = ">=3.6.2" } |
| 55 | +tasks = { lint = { cmd = "pre-commit run --all" } } |
| 56 | + |
| 57 | +# Cholmod support |
| 58 | +[feature.cholmod] |
| 59 | +dependencies = { suitesparse = ">=5" } |
| 60 | +activation = { env = { EIGENPY_CHOLMOD_SUPPORT = "ON" } } |
| 61 | + |
| 62 | +# Accelerate only work on Apple ARM platform |
| 63 | +[feature.accelerate] |
| 64 | +platforms = ["osx-arm64"] |
| 65 | +activation = { env = { EIGENPY_ACCELERATE_SUPPORT = "ON" } } |
| 66 | + |
| 67 | +[feature.all] |
| 68 | +dependencies = { suitesparse = ">=5" } |
| 69 | +activation = { env = { EIGENPY_CHOLMOD_SUPPORT = "ON" } } |
| 70 | + |
| 71 | +[feature.all.target.osx-arm64] |
| 72 | +activation = { env = { EIGENPY_ACCELERATE_SUPPORT = "ON" } } |
| 73 | + |
| 74 | +[feature.py312.dependencies] |
| 75 | +python = "3.12.*" |
| 76 | + |
| 77 | +[feature.py39.dependencies] |
| 78 | +python = "3.9.*" |
| 79 | + |
| 80 | +# Use clang-cl on Windows. |
| 81 | +# We must use scripts instead of env to setup CC and CXX |
| 82 | +# to avoid cxx-compiler to overwrite them. |
| 83 | +[feature.clang-cl] |
| 84 | +platforms = ["win-64"] |
| 85 | +activation = { scripts = ["scripts/activation_clang_cl.bat"] } |
| 86 | + |
| 87 | +[environments] |
| 88 | +default = { features = ["py312"], solve-group = "py312" } |
| 89 | +lint = { features = ["lint"], solve-group = "py312" } |
| 90 | +cholmod = { features = ["cholmod", "py312"], solve-group = "py312" } |
| 91 | +accelerate = { features = ["accelerate", "py312"], solve-group = "py312" } |
| 92 | +py39 = { features = ["py39"], solve-group = "py39" } |
| 93 | +all = { features = ["all", "py312"], solve-group = "py312" } |
| 94 | +all-py39 = { features = ["all", "py39"], solve-group = "py39" } |
| 95 | +all-clang-cl = { features = [ |
| 96 | + "all", |
| 97 | + "clang-cl", |
| 98 | + "py312", |
| 99 | +], solve-group = "py312" } |
0 commit comments