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.
Files changed (49) hide show
  1. {cmake-4.3.4 → cmake-4.4.2}/.github/dependabot.yml +4 -0
  2. {cmake-4.3.4 → cmake-4.4.2}/.github/workflows/build.yml +38 -26
  3. {cmake-4.3.4 → cmake-4.4.2}/.github/workflows/update-dependencies.yml +17 -6
  4. {cmake-4.3.4 → cmake-4.4.2}/.pre-commit-config.yaml +9 -3
  5. cmake-4.4.2/CMakeUrls.cmake +29 -0
  6. {cmake-4.3.4 → cmake-4.4.2}/CONTRIBUTING.rst +11 -11
  7. {cmake-4.3.4 → cmake-4.4.2}/HISTORY.rst +1 -1
  8. {cmake-4.3.4 → cmake-4.4.2}/PKG-INFO +16 -3
  9. {cmake-4.3.4 → cmake-4.4.2}/README.rst +15 -2
  10. {cmake-4.3.4 → cmake-4.4.2}/docs/build_system.rst +4 -4
  11. cmake-4.4.2/docs/building.rst +124 -0
  12. cmake-4.4.2/docs/conf.py +58 -0
  13. {cmake-4.3.4 → cmake-4.4.2}/docs/index.rst +5 -9
  14. {cmake-4.3.4 → cmake-4.4.2}/docs/make_a_release.rst +2 -2
  15. cmake-4.4.2/docs/update_cmake_version.rst +42 -0
  16. cmake-4.4.2/docs/usage.rst +15 -0
  17. {cmake-4.3.4 → cmake-4.4.2}/noxfile.py +5 -0
  18. {cmake-4.3.4 → cmake-4.4.2}/pyproject.toml +19 -8
  19. {cmake-4.3.4 → cmake-4.4.2}/scripts/update_cmake_version.py +3 -4
  20. {cmake-4.3.4 → cmake-4.4.2}/src/cmake/__init__.py +2 -2
  21. {cmake-4.3.4 → cmake-4.4.2}/tests/test_cmake.py +2 -2
  22. cmake-4.3.4/CMakeUrls.cmake +0 -29
  23. cmake-4.3.4/docs/building.rst +0 -120
  24. cmake-4.3.4/docs/conf.py +0 -209
  25. cmake-4.3.4/docs/update_cmake_version.rst +0 -57
  26. cmake-4.3.4/docs/usage.rst +0 -7
  27. cmake-4.3.4/scripts/install-static-clang.sh +0 -90
  28. {cmake-4.3.4 → cmake-4.4.2}/.coveragerc +0 -0
  29. {cmake-4.3.4 → cmake-4.4.2}/.git_archival.txt +0 -0
  30. {cmake-4.3.4 → cmake-4.4.2}/.gitattributes +0 -0
  31. {cmake-4.3.4 → cmake-4.4.2}/.github/release.yml +0 -0
  32. {cmake-4.3.4 → cmake-4.4.2}/.gitignore +0 -0
  33. {cmake-4.3.4 → cmake-4.4.2}/.readthedocs.yaml +0 -0
  34. {cmake-4.3.4 → cmake-4.4.2}/AUTHORS.rst +0 -0
  35. {cmake-4.3.4 → cmake-4.4.2}/CMakeLists.txt +0 -0
  36. {cmake-4.3.4 → cmake-4.4.2}/LICENSE_Apache_20 +0 -0
  37. {cmake-4.3.4 → cmake-4.4.2}/LICENSE_BSD_3 +0 -0
  38. {cmake-4.3.4 → cmake-4.4.2}/_build_backend/backend.py +0 -0
  39. {cmake-4.3.4 → cmake-4.4.2}/docs/authors.rst +0 -0
  40. {cmake-4.3.4 → cmake-4.4.2}/docs/contributing.rst +0 -0
  41. {cmake-4.3.4 → cmake-4.4.2}/docs/history.rst +0 -0
  42. {cmake-4.3.4 → cmake-4.4.2}/docs/installation.rst +0 -0
  43. {cmake-4.3.4 → cmake-4.4.2}/scripts/manylinux-build-and-install-openssl.sh +0 -0
  44. {cmake-4.3.4 → cmake-4.4.2}/scripts/update_openssl_version.py +0 -0
  45. {cmake-4.3.4 → cmake-4.4.2}/scripts/utils.sh +0 -0
  46. {cmake-4.3.4 → cmake-4.4.2}/src/cmake/__main__.py +0 -0
  47. {cmake-4.3.4 → cmake-4.4.2}/src/cmake/_version.pyi +0 -0
  48. {cmake-4.3.4 → cmake-4.4.2}/src/cmake/py.typed +0 -0
  49. {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
- - uses: actions/setup-python@v6
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-latest
62
+ - os: ubuntu-24.04-arm
59
63
  arch: "ppc64le"
60
64
  build: "manylinux_"
61
- - os: ubuntu-latest
65
+ - os: ubuntu-24.04-arm
62
66
  arch: "ppc64le"
63
67
  build: "musllinux_"
64
- - os: ubuntu-latest
68
+ - os: ubuntu-24.04-arm
65
69
  arch: "s390x"
66
70
  build: "manylinux_"
67
- - os: ubuntu-latest
71
+ - os: ubuntu-24.04-arm
68
72
  arch: "s390x"
69
73
  build: "musllinux_"
70
- - os: ubuntu-latest
74
+ - os: ubuntu-24.04-arm
71
75
  arch: "riscv64"
72
76
  build: "manylinux_"
73
- - os: ubuntu-latest
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@v8.2.0
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.1.0
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
- - uses: astral-sh/setup-uv@v8.2.0
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
- - uses: actions/setup-python@v6
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 '${{ steps.python.outputs.python-path }}' build --sdist
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@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
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@release/v1
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
- - uses: wntrblm/nox@2026.04.10
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 ${{ steps.bump.outputs.version }}"
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
- app-id: ${{ secrets.SCIKIT_BUILD_BOT_APP_ID }}
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: "v0.15.15"
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: "v2.1.0"
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 (preferably use ``pipx`` or ``brew``
69
- (macOS) if you have those)::
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 checkout -b name-of-your-bugfix-or-feature
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. Put
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 2.7, and 3.6+.
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 Python versions.
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
- $ pytest tests/test_cmake.py
116
- # OR
117
- $ nox -s tests -- tests/test_cmake.py
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 project using
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.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.3.4 <https://cmake.org/cmake/help/v4.3/index.html>`_.
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 is maintained by Jean-Christophe Fillion-Robin from Kitware Inc.
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.3.4 <https://cmake.org/cmake/help/v4.3/index.html>`_.
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 is maintained by Jean-Christophe Fillion-Robin from Kitware Inc.
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 the ``CMakeLists.txt`` and is composed of few projects each responsible
7
- for a specific task. Once configured, the `Outer Project` is responsible for driving the overall build
8
- composed of multiple project called `external project`. Here is the list of `external project`:
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.tct"]
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
@@ -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
- .. CMake Python Distributions documentation main file, created by
2
- sphinx-quickstart on Wed Nov 9 02:28:46 2016.
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.3.4 <https://cmake.org/cmake/help/v4.3/index.html>`_.
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 is maintained by Jean-Christophe Fillion-Robin from Kitware Inc.
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.