cmake 4.3.4__tar.gz → 4.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cmake-4.3.4 → cmake-4.4.2}/.github/dependabot.yml +4 -0
- {cmake-4.3.4 → cmake-4.4.2}/.github/workflows/build.yml +38 -26
- {cmake-4.3.4 → cmake-4.4.2}/.github/workflows/update-dependencies.yml +17 -6
- {cmake-4.3.4 → cmake-4.4.2}/.pre-commit-config.yaml +9 -3
- cmake-4.4.2/CMakeUrls.cmake +29 -0
- {cmake-4.3.4 → cmake-4.4.2}/CONTRIBUTING.rst +11 -11
- {cmake-4.3.4 → cmake-4.4.2}/HISTORY.rst +1 -1
- {cmake-4.3.4 → cmake-4.4.2}/PKG-INFO +16 -3
- {cmake-4.3.4 → cmake-4.4.2}/README.rst +15 -2
- {cmake-4.3.4 → cmake-4.4.2}/docs/build_system.rst +4 -4
- cmake-4.4.2/docs/building.rst +124 -0
- cmake-4.4.2/docs/conf.py +58 -0
- {cmake-4.3.4 → cmake-4.4.2}/docs/index.rst +5 -9
- {cmake-4.3.4 → cmake-4.4.2}/docs/make_a_release.rst +2 -2
- cmake-4.4.2/docs/update_cmake_version.rst +42 -0
- cmake-4.4.2/docs/usage.rst +15 -0
- {cmake-4.3.4 → cmake-4.4.2}/noxfile.py +5 -0
- {cmake-4.3.4 → cmake-4.4.2}/pyproject.toml +19 -8
- {cmake-4.3.4 → cmake-4.4.2}/scripts/update_cmake_version.py +3 -4
- {cmake-4.3.4 → cmake-4.4.2}/src/cmake/__init__.py +2 -2
- {cmake-4.3.4 → cmake-4.4.2}/tests/test_cmake.py +2 -2
- cmake-4.3.4/CMakeUrls.cmake +0 -29
- cmake-4.3.4/docs/building.rst +0 -120
- cmake-4.3.4/docs/conf.py +0 -209
- cmake-4.3.4/docs/update_cmake_version.rst +0 -57
- cmake-4.3.4/docs/usage.rst +0 -7
- cmake-4.3.4/scripts/install-static-clang.sh +0 -90
- {cmake-4.3.4 → cmake-4.4.2}/.coveragerc +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/.git_archival.txt +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/.gitattributes +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/.github/release.yml +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/.gitignore +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/.readthedocs.yaml +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/AUTHORS.rst +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/CMakeLists.txt +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/LICENSE_Apache_20 +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/LICENSE_BSD_3 +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/_build_backend/backend.py +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/docs/authors.rst +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/docs/contributing.rst +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/docs/history.rst +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/docs/installation.rst +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/scripts/manylinux-build-and-install-openssl.sh +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/scripts/update_openssl_version.py +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/scripts/utils.sh +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/src/cmake/__main__.py +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/src/cmake/_version.pyi +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/src/cmake/py.typed +0 -0
- {cmake-4.3.4 → cmake-4.4.2}/tests/__init__.py +0 -0
|
@@ -9,6 +9,8 @@ updates:
|
|
|
9
9
|
actions:
|
|
10
10
|
patterns:
|
|
11
11
|
- "*"
|
|
12
|
+
cooldown:
|
|
13
|
+
default-days: 7
|
|
12
14
|
# Maintain dependencies for pip constraints-ci.txt
|
|
13
15
|
- package-ecosystem: "pip"
|
|
14
16
|
directory: "/"
|
|
@@ -17,3 +19,5 @@ updates:
|
|
|
17
19
|
allow:
|
|
18
20
|
- dependency-name: "cmake"
|
|
19
21
|
- dependency-name: "ninja"
|
|
22
|
+
cooldown:
|
|
23
|
+
default-days: 7
|
|
@@ -17,16 +17,20 @@ concurrency:
|
|
|
17
17
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
18
18
|
cancel-in-progress: true
|
|
19
19
|
|
|
20
|
+
permissions: {}
|
|
21
|
+
|
|
20
22
|
jobs:
|
|
21
23
|
lint:
|
|
22
24
|
name: Lint
|
|
23
25
|
runs-on: ubuntu-latest
|
|
24
26
|
steps:
|
|
25
|
-
- uses: actions/checkout@v7
|
|
26
|
-
|
|
27
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
28
|
+
with:
|
|
29
|
+
persist-credentials: false
|
|
30
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
27
31
|
with:
|
|
28
32
|
python-version: "3.x"
|
|
29
|
-
- uses: pre-commit/action@v3.0.1
|
|
33
|
+
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
|
|
30
34
|
|
|
31
35
|
|
|
32
36
|
build_wheels:
|
|
@@ -55,22 +59,22 @@ jobs:
|
|
|
55
59
|
- os: ubuntu-24.04-arm
|
|
56
60
|
arch: "aarch64"
|
|
57
61
|
build: "musllinux_"
|
|
58
|
-
- os: ubuntu-
|
|
62
|
+
- os: ubuntu-24.04-arm
|
|
59
63
|
arch: "ppc64le"
|
|
60
64
|
build: "manylinux_"
|
|
61
|
-
- os: ubuntu-
|
|
65
|
+
- os: ubuntu-24.04-arm
|
|
62
66
|
arch: "ppc64le"
|
|
63
67
|
build: "musllinux_"
|
|
64
|
-
- os: ubuntu-
|
|
68
|
+
- os: ubuntu-24.04-arm
|
|
65
69
|
arch: "s390x"
|
|
66
70
|
build: "manylinux_"
|
|
67
|
-
- os: ubuntu-
|
|
71
|
+
- os: ubuntu-24.04-arm
|
|
68
72
|
arch: "s390x"
|
|
69
73
|
build: "musllinux_"
|
|
70
|
-
- os: ubuntu-
|
|
74
|
+
- os: ubuntu-24.04-arm
|
|
71
75
|
arch: "riscv64"
|
|
72
76
|
build: "manylinux_"
|
|
73
|
-
- os: ubuntu-
|
|
77
|
+
- os: ubuntu-24.04-arm
|
|
74
78
|
arch: "riscv64"
|
|
75
79
|
build: "musllinux_"
|
|
76
80
|
- os: ubuntu-24.04-arm
|
|
@@ -93,25 +97,26 @@ jobs:
|
|
|
93
97
|
build: ""
|
|
94
98
|
|
|
95
99
|
steps:
|
|
96
|
-
- uses: actions/checkout@v7
|
|
100
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
97
101
|
with:
|
|
98
102
|
fetch-depth: 0 # required for versioneer to find tags
|
|
103
|
+
persist-credentials: false
|
|
99
104
|
|
|
100
|
-
- uses: astral-sh/setup-uv@
|
|
105
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
101
106
|
with:
|
|
102
107
|
enable-cache: false
|
|
103
108
|
|
|
104
109
|
- name: Set up QEMU
|
|
105
|
-
uses: docker/setup-qemu-action@v4.
|
|
110
|
+
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
|
|
106
111
|
if: matrix.arch == 'ppc64le' || matrix.arch == 'riscv64' || matrix.arch == 's390x'
|
|
107
112
|
|
|
108
113
|
- name: Build wheels
|
|
109
|
-
uses: pypa/cibuildwheel@v4.1
|
|
114
|
+
uses: pypa/cibuildwheel@294735312765b09d24a2fbec22660ce817587d55 # v4.1.0
|
|
110
115
|
env:
|
|
111
116
|
CIBW_ARCHS: "${{ matrix.arch }}"
|
|
112
117
|
CIBW_BUILD: "cp310-${{ matrix.build }}*"
|
|
113
118
|
|
|
114
|
-
- uses: actions/upload-artifact@v7
|
|
119
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
115
120
|
with:
|
|
116
121
|
name: cibw-${{ runner.os }}-${{ matrix.build }}${{ matrix.arch }}
|
|
117
122
|
path: ./wheelhouse/*.whl
|
|
@@ -121,14 +126,15 @@ jobs:
|
|
|
121
126
|
needs: [lint]
|
|
122
127
|
runs-on: ubuntu-latest
|
|
123
128
|
steps:
|
|
124
|
-
- uses: actions/checkout@v7
|
|
129
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
125
130
|
with:
|
|
126
131
|
fetch-depth: 0 # required for versioneer to find tags
|
|
132
|
+
persist-credentials: false
|
|
127
133
|
|
|
128
134
|
- name: Build SDist
|
|
129
135
|
run: pipx run build --sdist
|
|
130
136
|
|
|
131
|
-
- uses: actions/upload-artifact@v7
|
|
137
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
132
138
|
with:
|
|
133
139
|
name: cibw-sdist
|
|
134
140
|
path: dist/*.tar.gz
|
|
@@ -143,8 +149,10 @@ jobs:
|
|
|
143
149
|
python: ["3.8", "3.13"]
|
|
144
150
|
|
|
145
151
|
steps:
|
|
146
|
-
- uses: actions/checkout@v7
|
|
147
|
-
|
|
152
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
153
|
+
with:
|
|
154
|
+
persist-credentials: false
|
|
155
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
148
156
|
with:
|
|
149
157
|
enable-cache: false
|
|
150
158
|
|
|
@@ -158,7 +166,7 @@ jobs:
|
|
|
158
166
|
sudo apt-get update
|
|
159
167
|
sudo apt-get install -y --no-install-recommends libssl-dev
|
|
160
168
|
|
|
161
|
-
- uses: actions/download-artifact@v8
|
|
169
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
162
170
|
with:
|
|
163
171
|
name: cibw-sdist
|
|
164
172
|
path: dist
|
|
@@ -183,8 +191,10 @@ jobs:
|
|
|
183
191
|
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
|
|
184
192
|
|
|
185
193
|
steps:
|
|
186
|
-
- uses: actions/checkout@v7
|
|
187
|
-
|
|
194
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
195
|
+
with:
|
|
196
|
+
persist-credentials: false
|
|
197
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
188
198
|
id: python
|
|
189
199
|
with:
|
|
190
200
|
python-version: "3.x"
|
|
@@ -207,7 +217,9 @@ jobs:
|
|
|
207
217
|
done
|
|
208
218
|
|
|
209
219
|
- name: Build SDist
|
|
210
|
-
run: pipx run --python
|
|
220
|
+
run: pipx run --python "${PYTHON}" build --sdist
|
|
221
|
+
env:
|
|
222
|
+
PYTHON: "${{ steps.python.outputs.python-path }}"
|
|
211
223
|
|
|
212
224
|
- name: Install dependencies
|
|
213
225
|
if: runner.os == 'Linux'
|
|
@@ -234,7 +246,7 @@ jobs:
|
|
|
234
246
|
needs: [build_wheels, build_sdist, test_sdist, bootstrap_build]
|
|
235
247
|
runs-on: ubuntu-latest
|
|
236
248
|
steps:
|
|
237
|
-
- uses: actions/download-artifact@v8
|
|
249
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
238
250
|
with:
|
|
239
251
|
pattern: cibw-*
|
|
240
252
|
merge-multiple: true
|
|
@@ -254,17 +266,17 @@ jobs:
|
|
|
254
266
|
id-token: write
|
|
255
267
|
attestations: write
|
|
256
268
|
steps:
|
|
257
|
-
- uses: actions/download-artifact@v8
|
|
269
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
258
270
|
with:
|
|
259
271
|
pattern: cibw-*
|
|
260
272
|
merge-multiple: true
|
|
261
273
|
path: dist
|
|
262
274
|
|
|
263
275
|
- name: Generate artifact attestation for sdist and wheel
|
|
264
|
-
uses: actions/attest-build-provenance@
|
|
276
|
+
uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1
|
|
265
277
|
with:
|
|
266
278
|
subject-path: "dist/cmake-*"
|
|
267
279
|
|
|
268
|
-
- uses: pypa/gh-action-pypi-publish@
|
|
280
|
+
- uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
|
|
269
281
|
with:
|
|
270
282
|
attestations: true
|
|
@@ -11,6 +11,8 @@ on:
|
|
|
11
11
|
schedule:
|
|
12
12
|
- cron: '0 6 * * *' # "At 06:00 every day."
|
|
13
13
|
|
|
14
|
+
permissions: {}
|
|
15
|
+
|
|
14
16
|
jobs:
|
|
15
17
|
update-dep:
|
|
16
18
|
name: Update ${{ matrix.dependency_nice }}
|
|
@@ -24,28 +26,37 @@ jobs:
|
|
|
24
26
|
dependency_nice: "CMake"
|
|
25
27
|
- dependency: "openssl"
|
|
26
28
|
dependency_nice: "OpenSSL"
|
|
29
|
+
permissions:
|
|
30
|
+
contents: write
|
|
27
31
|
steps:
|
|
28
|
-
- uses: actions/checkout@v7
|
|
29
|
-
|
|
32
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
33
|
+
with:
|
|
34
|
+
persist-credentials: false
|
|
35
|
+
- uses: wntrblm/nox@3284968a16fa5bd7fc0cc64a69a531404ccb4756 # 2026.07.11
|
|
30
36
|
- name: "Run update: bump ${{ matrix.dependency_nice }}"
|
|
31
37
|
id: bump
|
|
32
38
|
run: |
|
|
33
39
|
nox --force-color -s bump${{ matrix.dependency != 'cmake' && format('-{0}', matrix.dependency) || '' }}
|
|
34
40
|
echo "version=$(nox -s ${{ matrix.dependency }}_version 2>/dev/null)" >> $GITHUB_OUTPUT
|
|
35
|
-
- run: echo "${{ matrix.dependency_nice }} version is ${
|
|
41
|
+
- run: echo "${{ matrix.dependency_nice }} version is ${STEPS_BUMP_OUTPUTS_VERSION}"
|
|
42
|
+
env:
|
|
43
|
+
STEPS_BUMP_OUTPUTS_VERSION: ${{ steps.bump.outputs.version }}
|
|
36
44
|
|
|
37
45
|
# we use this step to grab a Github App auth token, so that PRs generated by this workflow
|
|
38
46
|
# run the GHA tests.
|
|
39
|
-
- uses: actions/create-github-app-token@v3
|
|
47
|
+
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
|
|
40
48
|
id: app-token
|
|
41
49
|
if: github.ref == 'refs/heads/main' && github.repository == 'scikit-build/cmake-python-distributions'
|
|
42
50
|
with:
|
|
43
|
-
|
|
51
|
+
client-id: ${{ secrets.SCIKIT_BUILD_BOT_APP_ID }}
|
|
44
52
|
private-key: ${{ secrets.SCIKIT_BUILD_BOT_APP_PRIVATE_KEY }}
|
|
53
|
+
permission-contents: write
|
|
54
|
+
permission-pull-requests: write
|
|
55
|
+
|
|
45
56
|
|
|
46
57
|
- name: Create Pull Request
|
|
47
58
|
if: github.ref == 'refs/heads/main' && github.repository == 'scikit-build/cmake-python-distributions'
|
|
48
|
-
uses: peter-evans/create-pull-request@v8
|
|
59
|
+
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
|
49
60
|
with:
|
|
50
61
|
commit-message: '[Bot] Update to ${{ matrix.dependency_nice }} ${{ steps.bump.outputs.version }}'
|
|
51
62
|
title: '[Bot] Update to ${{ matrix.dependency_nice }} ${{ steps.bump.outputs.version }}'
|
|
@@ -5,7 +5,7 @@ ci:
|
|
|
5
5
|
|
|
6
6
|
repos:
|
|
7
7
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
8
|
-
rev: v6.0.0
|
|
8
|
+
rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0
|
|
9
9
|
hooks:
|
|
10
10
|
- id: check-added-large-files
|
|
11
11
|
- id: check-case-conflict
|
|
@@ -18,15 +18,21 @@ repos:
|
|
|
18
18
|
- id: trailing-whitespace
|
|
19
19
|
|
|
20
20
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
21
|
-
rev:
|
|
21
|
+
rev: c59bba8fb259db0fec2bbb77ad8ba51ea7341b56 # frozen: v0.15.20
|
|
22
22
|
hooks:
|
|
23
23
|
- id: ruff-check
|
|
24
24
|
args: [--fix, --show-fixes]
|
|
25
25
|
|
|
26
26
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
27
|
-
rev:
|
|
27
|
+
rev: d2823d321df3af8f878f7ee3414dc94d037145b9 # frozen: v2.1.0
|
|
28
28
|
hooks:
|
|
29
29
|
- id: mypy
|
|
30
30
|
files: ^(src|scripts)
|
|
31
31
|
additional_dependencies: [types-requests]
|
|
32
32
|
args: []
|
|
33
|
+
|
|
34
|
+
- repo: https://github.com/zizmorcore/zizmor-pre-commit
|
|
35
|
+
rev: e3eebf65325ccc992422292cb7a4baee967cf815 # frozen: v1.26.1
|
|
36
|
+
hooks:
|
|
37
|
+
- id: zizmor
|
|
38
|
+
files: "^\\.github"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
|
|
2
|
+
#-----------------------------------------------------------------------------
|
|
3
|
+
# CMake sources
|
|
4
|
+
set(unix_source_url "https://github.com/Kitware/CMake/releases/download/v4.4.2/cmake-4.4.2.tar.gz")
|
|
5
|
+
set(unix_source_sha256 "1db9e61e60b6e0874c86386340b910382f3c5e75b9fbfb44d122063129a2789d")
|
|
6
|
+
|
|
7
|
+
set(windows_source_url "https://github.com/Kitware/CMake/releases/download/v4.4.2/cmake-4.4.2.zip")
|
|
8
|
+
set(windows_source_sha256 "705850b0cce549242b667a6b8f77c2765c8810243165bc8ff526109d2fbb19df")
|
|
9
|
+
|
|
10
|
+
#-----------------------------------------------------------------------------
|
|
11
|
+
# CMake binaries
|
|
12
|
+
|
|
13
|
+
set(linux32_binary_url "NA") # Linux 32-bit binaries not available
|
|
14
|
+
set(linux32_binary_sha256 "NA")
|
|
15
|
+
|
|
16
|
+
set(linux64_binary_url "https://github.com/Kitware/CMake/releases/download/v4.4.2/cmake-4.4.2-linux-x86_64.tar.gz")
|
|
17
|
+
set(linux64_binary_sha256 "3ada9a3f5d8a85413579bdd0ea6aa8e8da86efdd6d15c91a1afa517f2021956c")
|
|
18
|
+
|
|
19
|
+
set(macos10_10_binary_url "https://github.com/Kitware/CMake/releases/download/v4.4.2/cmake-4.4.2-macos10.10-universal.tar.gz")
|
|
20
|
+
set(macos10_10_binary_sha256 "80710e6d054a8366ec5f202dd6c22f0c4ebd6f96221260b0793e80816f95260f")
|
|
21
|
+
|
|
22
|
+
set(win32_binary_url "https://github.com/Kitware/CMake/releases/download/v4.4.2/cmake-4.4.2-windows-i386.zip")
|
|
23
|
+
set(win32_binary_sha256 "76c149d4435503edfdb92ccc1d7c54b0e8cd787597e8bc9ca8deb849c9706e63")
|
|
24
|
+
|
|
25
|
+
set(win64_binary_url "https://github.com/Kitware/CMake/releases/download/v4.4.2/cmake-4.4.2-windows-x86_64.zip")
|
|
26
|
+
set(win64_binary_sha256 "e8139d85b3813bc38833142ae1940472e9a587e9b5d2718ac1804c60f4e57a64")
|
|
27
|
+
|
|
28
|
+
set(winarm64_binary_url "https://github.com/Kitware/CMake/releases/download/v4.4.2/cmake-4.4.2-windows-arm64.zip")
|
|
29
|
+
set(winarm64_binary_sha256 "8502cf1c5b1984e439d13df154c3c28d080d706efd52db4de1bb3cc7022db521")
|
|
@@ -65,15 +65,17 @@ Ready to contribute? Here's how to set up `cmake-python-distributions` for local
|
|
|
65
65
|
|
|
66
66
|
$ git clone git@github.com:your_name_here/cmake-python-distributions.git
|
|
67
67
|
|
|
68
|
-
3. Make sure you have ``nox`` installed (
|
|
69
|
-
(macOS)
|
|
68
|
+
3. Make sure you have ``nox`` installed (with ``uv``, ``pipx``, ``brew``
|
|
69
|
+
(macOS), or ``pip``)::
|
|
70
70
|
|
|
71
71
|
$ pip install nox
|
|
72
72
|
$ cd cmake-python-distributions/
|
|
73
73
|
|
|
74
|
+
Alternatively, ``uv run noxfile.py`` runs ``nox`` without installing it.
|
|
75
|
+
|
|
74
76
|
4. Create a branch for local development::
|
|
75
77
|
|
|
76
|
-
$ git
|
|
78
|
+
$ git switch -c name-of-your-bugfix-or-feature
|
|
77
79
|
|
|
78
80
|
Now you can make your changes locally.
|
|
79
81
|
|
|
@@ -98,13 +100,11 @@ Before you submit a pull request, check that it meets these guidelines:
|
|
|
98
100
|
|
|
99
101
|
1. The pull request should include tests.
|
|
100
102
|
|
|
101
|
-
2. If the pull request adds functionality, the docs should be updated.
|
|
102
|
-
your new functionality into a function with a docstring, and add the
|
|
103
|
-
feature to the list in `README.rst`.
|
|
103
|
+
2. If the pull request adds functionality, the docs should be updated.
|
|
104
104
|
|
|
105
|
-
3. The pull request should work for Python
|
|
105
|
+
3. The pull request should work for Python 3.8+.
|
|
106
106
|
Check `GitHub Actions <https://github.com/scikit-build/cmake-python-distributions/actions/workflows/build.yml>`_
|
|
107
|
-
and make sure that the tests pass for all supported
|
|
107
|
+
and make sure that the tests pass for all supported platforms.
|
|
108
108
|
|
|
109
109
|
|
|
110
110
|
Tips
|
|
@@ -112,6 +112,6 @@ Tips
|
|
|
112
112
|
|
|
113
113
|
To run a subset of tests::
|
|
114
114
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
$ nox -s tests -- -k test_cmake_main
|
|
116
|
+
|
|
117
|
+
The tests run against the built wheel, so ``nox -s tests`` rebuilds it first.
|
|
@@ -4,5 +4,5 @@ History
|
|
|
4
4
|
-------
|
|
5
5
|
|
|
6
6
|
cmake-python-distributions was initially developed in September 2016 by
|
|
7
|
-
Jean-Christophe Fillion-Robin to facilitate the distribution of
|
|
7
|
+
Jean-Christophe Fillion-Robin to facilitate the distribution of projects using
|
|
8
8
|
`scikit-build <https://scikit-build.readthedocs.io/>`_ and depending on CMake.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cmake
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.4.2
|
|
4
4
|
Summary: CMake is an open-source, cross-platform family of tools designed to build, test and package software
|
|
5
5
|
Keywords: CMake,build,c++,fortran,cross-platform,cross-compilation
|
|
6
6
|
Author-Email: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
|
|
@@ -37,7 +37,19 @@ The suite of CMake tools were created by Kitware in response to the need
|
|
|
37
37
|
for a powerful, cross-platform build environment for open-source projects
|
|
38
38
|
such as ITK and VTK.
|
|
39
39
|
|
|
40
|
-
The CMake python wheels provide `CMake 4.
|
|
40
|
+
The CMake python wheels provide `CMake 4.4.2 <https://cmake.org/cmake/help/v4.4/index.html>`_.
|
|
41
|
+
|
|
42
|
+
Installation
|
|
43
|
+
------------
|
|
44
|
+
|
|
45
|
+
.. code:: console
|
|
46
|
+
|
|
47
|
+
pip install cmake
|
|
48
|
+
|
|
49
|
+
The ``cmake``, ``ccmake``, ``cpack``, and ``ctest`` executables are then
|
|
50
|
+
available on ``PATH`` (``ccmake`` is not included on Windows). The package is
|
|
51
|
+
also commonly used as a build-time dependency, for example in a
|
|
52
|
+
``pyproject.toml`` ``build-system.requires`` list.
|
|
41
53
|
|
|
42
54
|
Latest Release
|
|
43
55
|
--------------
|
|
@@ -123,7 +135,8 @@ Miscellaneous
|
|
|
123
135
|
License
|
|
124
136
|
-------
|
|
125
137
|
|
|
126
|
-
This project
|
|
138
|
+
This project was created by Jean-Christophe Fillion-Robin from Kitware Inc. and
|
|
139
|
+
is maintained by the `scikit-build <https://github.com/scikit-build>`_ community.
|
|
127
140
|
It is covered by the `Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>`_.
|
|
128
141
|
|
|
129
142
|
CMake is distributed under the OSI-approved BSD 3-clause License.
|
|
@@ -11,7 +11,19 @@ The suite of CMake tools were created by Kitware in response to the need
|
|
|
11
11
|
for a powerful, cross-platform build environment for open-source projects
|
|
12
12
|
such as ITK and VTK.
|
|
13
13
|
|
|
14
|
-
The CMake python wheels provide `CMake 4.
|
|
14
|
+
The CMake python wheels provide `CMake 4.4.2 <https://cmake.org/cmake/help/v4.4/index.html>`_.
|
|
15
|
+
|
|
16
|
+
Installation
|
|
17
|
+
------------
|
|
18
|
+
|
|
19
|
+
.. code:: console
|
|
20
|
+
|
|
21
|
+
pip install cmake
|
|
22
|
+
|
|
23
|
+
The ``cmake``, ``ccmake``, ``cpack``, and ``ctest`` executables are then
|
|
24
|
+
available on ``PATH`` (``ccmake`` is not included on Windows). The package is
|
|
25
|
+
also commonly used as a build-time dependency, for example in a
|
|
26
|
+
``pyproject.toml`` ``build-system.requires`` list.
|
|
15
27
|
|
|
16
28
|
Latest Release
|
|
17
29
|
--------------
|
|
@@ -97,7 +109,8 @@ Miscellaneous
|
|
|
97
109
|
License
|
|
98
110
|
-------
|
|
99
111
|
|
|
100
|
-
This project
|
|
112
|
+
This project was created by Jean-Christophe Fillion-Robin from Kitware Inc. and
|
|
113
|
+
is maintained by the `scikit-build <https://github.com/scikit-build>`_ community.
|
|
101
114
|
It is covered by the `Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>`_.
|
|
102
115
|
|
|
103
116
|
CMake is distributed under the OSI-approved BSD 3-clause License.
|
|
@@ -3,9 +3,9 @@ Understanding the Build-system
|
|
|
3
3
|
==============================
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
The build system is described by
|
|
7
|
-
for a specific task. Once configured, the `Outer Project`
|
|
8
|
-
composed of multiple
|
|
6
|
+
The build system is described by ``CMakeLists.txt`` and is composed of a few projects, each responsible
|
|
7
|
+
for a specific task. Once configured, the `Outer Project` drives the overall build, which is
|
|
8
|
+
composed of multiple `external projects`:
|
|
9
9
|
|
|
10
10
|
* ``CMakeProject-src-download``
|
|
11
11
|
* ``CMakeProject-binary-download``
|
|
@@ -21,7 +21,7 @@ options and describes the role of each one:
|
|
|
21
21
|
flowchart LR
|
|
22
22
|
subgraph OP[Outer Project]
|
|
23
23
|
style OP fill:#FFF0D7
|
|
24
|
-
configure["CMakeLists.
|
|
24
|
+
configure["CMakeLists.txt"]
|
|
25
25
|
ask_download{"Download source?"}
|
|
26
26
|
download_source["Download Source archive"]
|
|
27
27
|
reuse_source_dir["Re-use source directory"]
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
===============================
|
|
2
|
+
Building the CMake Python wheel
|
|
3
|
+
===============================
|
|
4
|
+
|
|
5
|
+
Overview
|
|
6
|
+
--------
|
|
7
|
+
|
|
8
|
+
This project is built with `scikit-build-core <https://scikit-build-core.readthedocs.io/>`_,
|
|
9
|
+
using a custom build backend (in ``_build_backend``) that removes the ``cmake``
|
|
10
|
+
and ``ninja`` build requirements and can bootstrap CMake if it is not already
|
|
11
|
+
available on the system.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Prerequisites
|
|
15
|
+
-------------
|
|
16
|
+
|
|
17
|
+
Building the wheel requires ``Git`` and ``Python``. Building with
|
|
18
|
+
``BUILD_CMAKE_FROM_SOURCE`` set to ``ON`` also requires a C++ compiler and a
|
|
19
|
+
make program. An existing `CMake <https://cmake.org>`_ installation is used if
|
|
20
|
+
found; otherwise one is bootstrapped automatically (built from source on POSIX
|
|
21
|
+
systems, or downloaded as a prebuilt binary on Windows).
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
Quick start
|
|
25
|
+
-----------
|
|
26
|
+
|
|
27
|
+
Build the CMake Python wheel with the following commands::
|
|
28
|
+
|
|
29
|
+
python3 -m venv .venv
|
|
30
|
+
source .venv/bin/activate
|
|
31
|
+
pip install build
|
|
32
|
+
python -m build --wheel
|
|
33
|
+
|
|
34
|
+
Or, using `uv <https://docs.astral.sh/uv/>`_::
|
|
35
|
+
|
|
36
|
+
uv build --wheel
|
|
37
|
+
|
|
38
|
+
Note that wheels produced this way are only usable locally; the redistributable
|
|
39
|
+
wheels on PyPI are produced with `cibuildwheel <https://cibuildwheel.pypa.io>`_
|
|
40
|
+
(see ``.github/workflows/build.yml``).
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
Source distribution (sdist)
|
|
44
|
+
---------------------------
|
|
45
|
+
|
|
46
|
+
The source distribution contains only this project's sources; the CMake source
|
|
47
|
+
or binary archive listed in ``CMakeUrls.cmake`` is downloaded when the wheel is
|
|
48
|
+
built. The source distribution is generated using the following command::
|
|
49
|
+
|
|
50
|
+
python -m build --sdist
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
Binary distribution (wheel)
|
|
54
|
+
---------------------------
|
|
55
|
+
|
|
56
|
+
The project has two modes of operation:
|
|
57
|
+
|
|
58
|
+
#. build CMake from source (``BUILD_CMAKE_FROM_SOURCE`` set to ``ON``)
|
|
59
|
+
#. download CMake binaries (``BUILD_CMAKE_FROM_SOURCE`` set to ``OFF``)
|
|
60
|
+
|
|
61
|
+
The binary distribution is generated using the following
|
|
62
|
+
command::
|
|
63
|
+
|
|
64
|
+
python -m build --wheel
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
Changing the default mode is achieved by explicitly passing the option
|
|
68
|
+
to CMake::
|
|
69
|
+
|
|
70
|
+
python -m build --wheel -Ccmake.define.BUILD_CMAKE_FROM_SOURCE=ON
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
Default value for ``BUILD_CMAKE_FROM_SOURCE``
|
|
74
|
+
---------------------------------------------
|
|
75
|
+
|
|
76
|
+
Depending on the platform, option ``BUILD_CMAKE_FROM_SOURCE`` has
|
|
77
|
+
a different default:
|
|
78
|
+
|
|
79
|
+
- Linux: ``ON``
|
|
80
|
+
- macOS: ``OFF``
|
|
81
|
+
- Windows: ``OFF``
|
|
82
|
+
|
|
83
|
+
Controlling verbosity
|
|
84
|
+
---------------------
|
|
85
|
+
|
|
86
|
+
By default, the output associated with the configure and build steps of the
|
|
87
|
+
``CMakeProject-build`` external project is displayed, along with download
|
|
88
|
+
progress. Setting ``BUILD_VERBOSE`` to ``OFF`` logs the configure and build
|
|
89
|
+
output to files instead::
|
|
90
|
+
|
|
91
|
+
python -m build --wheel -Ccmake.define.BUILD_VERBOSE=OFF
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
Optimizations
|
|
95
|
+
-------------
|
|
96
|
+
|
|
97
|
+
On a given platform, when building different "flavors" of CMake python wheels
|
|
98
|
+
(one for each ``<python tag>-<abi>`` tag), the whole process can be made faster
|
|
99
|
+
in two ways.
|
|
100
|
+
|
|
101
|
+
Caching downloads
|
|
102
|
+
^^^^^^^^^^^^^^^^^
|
|
103
|
+
|
|
104
|
+
To avoid the re-download of CMake sources and/or binary packages, passing the
|
|
105
|
+
option ``-Ccmake.define.CMakePythonDistributions_ARCHIVE_DOWNLOAD_DIR=/path/to/cache``
|
|
106
|
+
enables successive builds to re-use existing archives instead of re-downloading them.
|
|
107
|
+
|
|
108
|
+
Re-using the build tree
|
|
109
|
+
^^^^^^^^^^^^^^^^^^^^^^^
|
|
110
|
+
|
|
111
|
+
And finally, on a given platform, to avoid rebuilding CMake, the idea is to
|
|
112
|
+
first create a standalone build of the CMake project and then build the
|
|
113
|
+
wheel using it.
|
|
114
|
+
|
|
115
|
+
Step 1: Standalone build::
|
|
116
|
+
|
|
117
|
+
mkdir -p standalone-build && cd $_
|
|
118
|
+
cmake -DCMakePythonDistributions_ARCHIVE_DOWNLOAD_DIR:PATH=/path/to/cache -G Ninja ../
|
|
119
|
+
|
|
120
|
+
Step 2: Faster build reusing download and build directories::
|
|
121
|
+
|
|
122
|
+
python -m build --wheel \
|
|
123
|
+
-Ccmake.define.CMakePythonDistributions_ARCHIVE_DOWNLOAD_DIR=/path/to/cache \
|
|
124
|
+
-Ccmake.define.CMakeProject_BINARY_DIR=/path/to/standalone-build
|
cmake-4.4.2/docs/conf.py
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Configuration file for the Sphinx documentation builder.
|
|
2
|
+
#
|
|
3
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
4
|
+
|
|
5
|
+
import sys
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
if sys.version_info < (3, 11):
|
|
9
|
+
import tomli as tomllib
|
|
10
|
+
else:
|
|
11
|
+
import tomllib
|
|
12
|
+
|
|
13
|
+
DIR = Path(__file__).parent.resolve()
|
|
14
|
+
|
|
15
|
+
# -- Project information ----------------------------------------------------
|
|
16
|
+
|
|
17
|
+
project = 'CMake Python Distributions'
|
|
18
|
+
copyright = '2016, Jean-Christophe Fillion-Robin and contributors'
|
|
19
|
+
author = 'Jean-Christophe Fillion-Robin'
|
|
20
|
+
|
|
21
|
+
# The full version, including alpha/beta/rc tags, read from pyproject.toml.
|
|
22
|
+
with (DIR.parent / "pyproject.toml").open('rb') as f:
|
|
23
|
+
release = tomllib.load(f)["project"]["version"]
|
|
24
|
+
|
|
25
|
+
# A shorter version
|
|
26
|
+
version = ".".join(release.split(".")[:2])
|
|
27
|
+
|
|
28
|
+
# -- General configuration --------------------------------------------------
|
|
29
|
+
|
|
30
|
+
extensions = ['sphinxcontrib.mermaid']
|
|
31
|
+
|
|
32
|
+
language = 'en'
|
|
33
|
+
|
|
34
|
+
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
|
35
|
+
|
|
36
|
+
# -- Options for HTML output ------------------------------------------------
|
|
37
|
+
|
|
38
|
+
html_theme = 'furo'
|
|
39
|
+
|
|
40
|
+
html_theme_options = {
|
|
41
|
+
"source_repository": "https://github.com/scikit-build/cmake-python-distributions",
|
|
42
|
+
"source_branch": "main",
|
|
43
|
+
"source_directory": "docs/",
|
|
44
|
+
"footer_icons": [
|
|
45
|
+
{
|
|
46
|
+
"name": "GitHub",
|
|
47
|
+
"url": "https://github.com/scikit-build/cmake-python-distributions",
|
|
48
|
+
"html": """
|
|
49
|
+
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16">
|
|
50
|
+
<path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path>
|
|
51
|
+
</svg>
|
|
52
|
+
""",
|
|
53
|
+
"class": "",
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
}
|
|
57
|
+
html_copy_source = False
|
|
58
|
+
html_show_sourcelink = False
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
You can adapt this file completely to your liking, but it should at least
|
|
4
|
-
contain the root `toctree` directive.
|
|
5
|
-
|
|
6
|
-
Welcome to CMake Python Distributions's documentation!
|
|
7
|
-
======================================================
|
|
1
|
+
CMake Python Distributions
|
|
2
|
+
==========================
|
|
8
3
|
|
|
9
4
|
`CMake <https://cmake.org>`_ is used to control the software compilation
|
|
10
5
|
process using simple platform and compiler independent configuration files,
|
|
@@ -15,7 +10,7 @@ The suite of CMake tools were created by Kitware in response to the need
|
|
|
15
10
|
for a powerful, cross-platform build environment for open-source projects
|
|
16
11
|
such as `ITK <https://itk.org>`_ and `VTK <https://vtk.org>`_.
|
|
17
12
|
|
|
18
|
-
The CMake python wheels provide `CMake 4.
|
|
13
|
+
The CMake python wheels provide `CMake 4.4.2 <https://cmake.org/cmake/help/v4.4/index.html>`_.
|
|
19
14
|
|
|
20
15
|
.. toctree::
|
|
21
16
|
:maxdepth: 2
|
|
@@ -48,7 +43,8 @@ Indices and tables
|
|
|
48
43
|
Resources
|
|
49
44
|
=========
|
|
50
45
|
|
|
51
|
-
This project
|
|
46
|
+
This project was created by Jean-Christophe Fillion-Robin from Kitware Inc. and
|
|
47
|
+
is maintained by the `scikit-build <https://github.com/scikit-build>`_ community.
|
|
52
48
|
It is covered by the `Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>`_.
|
|
53
49
|
|
|
54
50
|
CMake is distributed under the OSI-approved BSD 3-clause License.
|