-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathpyproject.toml
More file actions
69 lines (59 loc) · 2.21 KB
/
Copy pathpyproject.toml
File metadata and controls
69 lines (59 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
[project]
name = "gropt"
version = "2.0.0rc14"
requires-python = ">=3.10"
dependencies = ["numpy"]
[project.optional-dependencies]
gui = ["pyqt6", "matplotlib"]
dev = ["jupyterlab", "wheel", "scipy", "twine", "seaborn", "ipywidgets"]
docs = [
"mkdocs",
"mkdocs-material",
"mkdocs-jupyter",
"mkdocstrings-python",
"mkdocs-awesome-nav",
]
[build-system]
requires = ["scikit-build-core>=0.10", "nanobind>=2.0"]
build-backend = "scikit_build_core.build"
[tool.scikit-build]
build-dir = ".scikit-build"
[tool.cibuildwheel]
build = "cp310-* cp311-* cp312-* cp313-* cp314-*"
skip = "*-musllinux_* *-manylinux_i686 *-win32"
test-command = "python -c \"import gropt; gropt.demo()\""
[tool.cibuildwheel.macos]
archs = ["x86_64", "arm64"]
environment = { MACOSX_DEPLOYMENT_TARGET = "10.13" }
[tool.pixi.workspace]
channels = ["conda-forge"]
platforms = ["win-64"]
# This messes up the rebuild commands, dont let pixi handle gropt at all, we will do it manually with pip install -e . in the tasks section.
# [tool.pixi.pypi-dependencies]
# gropt = { path = ".", editable = true }
[tool.pixi.feature.dev.dependencies]
cmake = ">=3.17"
nanobind = ">=2.0"
numpy = "*"
scikit-build-core = ">=0.10"
pip = "*"
[tool.pixi.environments]
default = { solve-group = "default" }
dev = { features = ["dev", "docs"], solve-group = "default" }
[tool.pixi.tasks]
clean = "python clean.py"
clean-full = "python clean.py --full"
touch-wrapper = "python -c \"from pathlib import Path; Path('gropt/gropt_wrapper/gropt_wrapper.cpp').touch()\""
rebuild = { cmd = "python -m pip install --no-build-isolation -v -e . -C cmake.define.GROPT_EIGEN_ASSERTIONS=OFF", depends-on = [
"clean",
"touch-wrapper",
] }
rebuild-full = { cmd = "python -m pip install --no-build-isolation -v -e . -C cmake.define.GROPT_EIGEN_ASSERTIONS=OFF", depends-on = [
"clean-full",
"touch-wrapper",
] }
rebuild-test = { cmd = "python -m pip install --no-build-isolation -v -e . -C cmake.define.GROPT_EIGEN_ASSERTIONS=ON", depends-on = [
"clean-full",
"touch-wrapper",
] }
test-cpp = "cmake -S . -B build-tests -DGROPT_BUILD_TESTS=ON -DGROPT_EIGEN_ASSERTIONS=ON && cmake --build build-tests --config Release && ctest --test-dir build-tests --output-on-failure -C Release"