Skip to content
Snippets Groups Projects
pixi.toml 3.79 KiB
[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" }