-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathpyproject.toml
More file actions
74 lines (63 loc) · 2.85 KB
/
Copy pathpyproject.toml
File metadata and controls
74 lines (63 loc) · 2.85 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
70
71
72
73
74
[tool.pixi.workspace]
name = "ITKSoftwareGuide"
channels = ["conda-forge"]
platforms = ["linux-64", "linux-aarch64", "win-64", "osx-64", "osx-arm64"]
[tool.pixi.tasks]
clean = { cmd = "git clean -fdx", description = "Clean the repository" }
[tool.pixi.dependencies]
python = ">=3.9"
[tool.pixi.feature.pre-commit.dependencies]
pre-commit = ">=4.1.0,<5"
[tool.pixi.feature.pre-commit.tasks]
pre-commit-install = { cmd = "pre-commit install -f -t pre-commit -t prepare-commit-msg -t commit-msg", description = "Install pre-commit hooks" }
pre-commit-run = { cmd = "pre-commit run --all-files", description = "Run pre-commit hooks on all repository files" }
[tool.pixi.feature.dev.dependencies]
cmake = ">=3.22.1"
ninja = ">=1.11"
cxx-compiler = ">=1.10.0,<2"
ccache = ">=4.10"
# Cross-platform helpers for rendering the books. A real TeX distribution must
# be on PATH from the system (MacTeX, or apt texlive-latex-extra on Linux/CI):
# conda-forge texlive-core is engine-only (no LaTeX packages), so it is not used.
# minted requires -shell-escape and Pygments.
[tool.pixi.feature.latex.dependencies]
ghostscript = ">=9.54"
imagemagick = ">=7"
pygments = ">=2.15"
[tool.pixi.feature.dev.tasks.configure]
cmd = '''cmake \
-Bbuild \
-S. \
-GNinja \
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel \
-DCMAKE_C_COMPILER_LAUNCHER:STRING=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache'''
description = "Configure the ITK Software Guide SuperBuild (builds ITK in Phase I)"
outputs = ["build/CMakeFiles/"]
[tool.pixi.feature.dev.tasks.build]
# CCACHE_BASE_DIR = the SuperBuild tree (build/), covering both the ITK source
# (build/ITK) and its build (build/ITK-build); ccache rewrites absolute paths
# under it to relative, so cache hits survive repo relocation.
cmd = '''CCACHE_BASE_DIR="$PWD/build" cmake --build build'''
description = "Build the ITK Software Guide; PDFs land in build/ITKSoftwareGuide-build/SoftwareGuide/Latex/"
depends-on = ["configure"]
# Pinned-release track: build against a fixed ITK release tag in a separate
# tree (build-release-v6/) so it never clobbers the default build.
[tool.pixi.feature.dev.tasks.configure-release-v6]
cmd = '''cmake \
-Bbuild-release-v6 \
-S. \
-GNinja \
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel \
-DITK_GIT_TAG:STRING=v6.0b02 \
-DCMAKE_C_COMPILER_LAUNCHER:STRING=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache'''
description = "Configure the SuperBuild against the pinned ITK v6.0b02 release tag"
outputs = ["build-release-v6/CMakeFiles/"]
[tool.pixi.feature.dev.tasks.build-release-v6]
cmd = '''CCACHE_BASE_DIR="$PWD/build-release-v6" cmake --build build-release-v6'''
description = "Build the ITK Software Guide against the pinned ITK v6.0b02 release; PDFs land in build-release-v6/ITKSoftwareGuide-build/SoftwareGuide/Latex/"
depends-on = ["configure-release-v6"]
[tool.pixi.environments]
build = ["dev", "latex"]
pre-commit = ["pre-commit"]