Compare commits

..

946 Commits

Author SHA1 Message Date
Timo Röhling 057d50741e Update changelog for 3.31.1-1 release
1 month ago
Timo Röhling acf785b580 Update patches
1 month ago
Timo Röhling 065c1e7cdd Update upstream source from tag 'upstream/3.31.1'
1 month ago
Timo Röhling 63888ed0f6 New upstream version 3.31.1
1 month ago
Timo Röhling 4a3def9a17 Update changelog for 3.31.0-2 release
1 month ago
Timo Röhling 7ca4d47e63 Avoid LLD linker regression on archive deduplication
1 month ago
Timo Röhling b897bf2df1 Update changelog for 3.31.0-1 release
1 month ago
Timo Röhling d314b44018 Update patches
1 month ago
Timo Röhling 6d77f15746 Update upstream source from tag 'upstream/3.31.0'
1 month ago
Timo Röhling f5761cd947 New upstream version 3.31.0
1 month ago
Timo Röhling 9ba63b1dbb Update changelog for 3.30.5-1 release
3 months ago
Timo Röhling 674c1f1f5a Update upstream source from tag 'upstream/3.30.5'
3 months ago
Timo Röhling 9db793febd Update changelog for 3.30.4-1 release
3 months ago
Timo Röhling 43dd558436 Wrap and sort Debian package files
3 months ago
Timo Röhling de43766828 Refresh patch (no functional changes)
3 months ago
Timo Röhling c89c6efa53 Update upstream source from tag 'upstream/3.30.4'
3 months ago
Timo Röhling d2db543d15 Update changelog for 3.30.3-1 release
4 months ago
Timo Röhling bc4877c928 Update patches
4 months ago
Timo Röhling 65e026725f Update upstream source from tag 'upstream/3.30.3'
4 months ago
Timo Röhling 4fe988fa95 Update changelog for 3.30.2-2 release
4 months ago
Timo Röhling 03442b6526 Support finding libjvm.so for all OpenJDK variants
4 months ago
Timo Röhling 0273566558 Update changelog for 3.30.2-1 release
5 months ago
Timo Röhling fc6ae7798c Refresh patches (no functional changes)
5 months ago
Timo Röhling d53a21289e Update upstream source from tag 'upstream/3.30.2'
5 months ago
Timo Röhling 06d26a6e5d Update changelog for 3.30.1-1 release
5 months ago
Timo Röhling c83915b6d6 Update upstream source from tag 'upstream/3.30.1'
5 months ago
Timo Röhling 2eafcdcc08 Update changelog for 3.30.0-1 release
6 months ago
Timo Röhling 6023cc1acf Test suite needs working Git now
6 months ago
Timo Röhling 6aad157473 Refresh patch (no functional changes)
6 months ago
Timo Röhling 6aca2ce44e Update upstream source from tag 'upstream/3.30.0'
6 months ago
Timo Röhling a413974cf1 Update changelog for 3.29.6-1 release
6 months ago
Timo Röhling a218d501ff Update upstream source from tag 'upstream/3.29.6'
6 months ago
Timo Röhling bd62e9adfc Remove obsolete CMAKE_USE_RELATIVE_PATHS=ON from build
6 months ago
Timo Röhling cfd1a0f35f Bump Standards-Version to 4.7.0
6 months ago
Timo Röhling 4e3cfb4e52 Update changelog for 3.29.5-1 release
7 months ago
Timo Röhling 05a95c7066 Update upstream source from tag 'upstream/3.29.5'
7 months ago
Timo Röhling f42b6f0167 Update changelog for 3.29.4-1 release
7 months ago
Timo Röhling 02943a985e Update upstream source from tag 'upstream/3.29.4'
7 months ago
Timo Röhling 2cf9254138 Merge branch 'master' into 'master'
7 months ago
Aurelien Jarno 7b849a5f87 Drop kfreebsd-* specific build-depends, the ports have been removed
7 months ago
Timo Röhling 5afac7fca1 Update changelog for 3.29.3-1 release
8 months ago
Timo Röhling 5d30de3088 Update upstream source from tag 'upstream/3.29.3'
8 months ago
Timo Röhling 254658a146 Update changelog for 3.29.2-2 release
8 months ago
Timo Röhling 6916e8a480 Update changelog for 3.29.2-1 release
8 months ago
Timo Röhling 9dcdd63be9 Update upstream source from tag 'upstream/3.29.2'
8 months ago
Timo Röhling 69be8738ee Update changelog for 3.28.3-1 release
11 months ago
Timo Röhling 758004f573 Update upstream source from tag 'upstream/3.28.3'
11 months ago
Timo Röhling a11c9a5e36 Update changelog for 3.28.2-1 release
11 months ago
Timo Röhling b90b3c6c70 Update upstream source from tag 'upstream/3.28.2'
11 months ago
Timo Röhling 07a1ab4240 Update changelog for 3.28.1-1 release
1 year ago
Timo Röhling c512c6d3b1 Drop 0002-Do-not-expect-EINTR-when-sleep-is-interrupted-on-GNU.patch (applied upstream)
1 year ago
Timo Röhling 50ff29688e Update upstream source from tag 'upstream/3.28.1'
1 year ago
Timo Röhling b21470339a Do not expect EINTR when sleep is interrupted on GNU/HUrd
1 year ago
Timo Röhling b5acfe386a Update changelog for 3.28.0-1 release
1 year ago
Timo Röhling b48e8f4e6b Install new cmake-cxxmodules(7) man page
1 year ago
Timo Röhling 4af5ee8ef6 Refresh patches (no functional changes)
1 year ago
Timo Röhling 1d6b45be38 Update upstream source from tag 'upstream/3.28.0'
1 year ago
Timo Röhling 65096aee45 Update changelog for 3.27.9-1 release
1 year ago
Timo Röhling 03dc5ddc31 Update upstream source from tag 'upstream/3.27.9'
1 year ago
Timo Röhling 72404df6f6 Update changelog for 3.27.8-1 release
1 year ago
Timo Röhling 33285ca53a Update upstream source from tag 'upstream/3.27.8'
1 year ago
Timo Röhling f33bc56bba Update changelog for 3.27.7-1 release
1 year ago
Timo Röhling 0c620d364b Update upstream source from tag 'upstream/3.27.7'
1 year ago
Timo Röhling 04690f5b11 Update changelog for 3.27.6-1 release
1 year ago
Timo Röhling 53d7186fc9 Update upstream source from tag 'upstream/3.27.6'
1 year ago
Timo Röhling 7aa8ada2c2 Update changelog for 3.27.5-1 release
1 year ago
Timo Röhling 8213a25fc3 Update upstream source from tag 'upstream/3.27.5'
1 year ago
Timo Röhling 3b5f961334 Update changelog for 3.27.4-1 release
1 year ago
Timo Röhling d1a63f4893 Update upstream source from tag 'upstream/3.27.4'
1 year ago
Timo Röhling d7688c038e Update changelog for 3.27.3-1 release
1 year ago
Timo Röhling f8b0ca5cd9 Refresh patch
1 year ago
Timo Röhling a3a9ffc058 Update upstream source from tag 'upstream/3.27.3'
1 year ago
Timo Röhling 6fecb1cb0b Clean __pycache__ from source tree
1 year ago
Timo Röhling 9b5f3a3447 Update changelog for 3.27.2-1 release
1 year ago
Timo Röhling 6b8fe05b7e Refresh patch
1 year ago
Timo Röhling e0471bbdfe Update upstream source from tag 'upstream/3.27.2'
1 year ago
Timo Röhling 05a89929bf Update changelog for 3.27.1-2 release
1 year ago
Timo Röhling 2eb5b3db3a Fix pkg.cmake.bootstrap profile
1 year ago
Timo Röhling 8aa21f4d1e Update changelog for 3.27.1-1 release
1 year ago
Timo Röhling e7af41c74d Update patches
1 year ago
Timo Röhling 949cc2ec29 Update upstream source from tag 'upstream/3.27.1'
1 year ago
Timo Röhling f0aca29c7b Update changelog for 3.27.0-2 release
1 year ago
Timo Röhling 98e9760213 Fix regressions with Fortran
1 year ago
Timo Röhling f02b6ed046 Update changelog for 3.27.0-1 release
1 year ago
Timo Röhling 7837c17c10 Update upstream source from tag 'upstream/3.27.0'
1 year ago
Timo Röhling 5c412d7000 Merge branch 'experimental'
1 year ago
Timo Röhling 8847e49bd4 Update changelog for 3.27.0~rc5-1 release
1 year ago
Timo Röhling f447191d92 Drop 0002-Fix-regression-in-FindProtobuf.cmake.patch
1 year ago
Timo Röhling c6c16d67fc Update upstream source from tag 'upstream/3.27.0_rc5'
1 year ago
Timo Röhling 66e4d94c56 Update changelog for 3.27.0~rc4-3 release
1 year ago
Timo Röhling 176de7c7c8 Fix regression in FindProtobuf.cmake
1 year ago
Timo Röhling 739dce790e Update changelog for 3.27.0~rc4-2 release
1 year ago
Timo Röhling e02ca35a79 Remove obsolete PythonInterp and PythonLibs from autopkgtest
1 year ago
Timo Röhling 3f29ed6910 Update changelog for 3.27.0~rc4-1 release
1 year ago
Timo Röhling 056f067d85 New Build-Depend on libcppdap-dev
1 year ago
Timo Röhling af607abda8 Fix cmake_minimum_required() in findmodules test
1 year ago
Timo Röhling 502a3068af Refresh patches
1 year ago
Timo Röhling c0e0ccb431 Update upstream source from tag 'upstream/3.27.0_rc4'
1 year ago
Timo Röhling df7d703ff0 Publish pre-release in experimental
1 year ago
Timo Röhling 4d5387724b Update changelog for 3.26.4-4 release
2 years ago
Timo Röhling 038ad3ba41 Update changelog for 3.26.4-3 release
2 years ago
Timo Röhling 2de17a77c1 Fix lintian override
2 years ago
Timo Röhling 485718a199 Renumber patches
2 years ago
Timo Röhling 7c6265845e Merge remote-tracking branch 'origin/master'
2 years ago
Timo Röhling 176ebc390f Merge branch 'fix-hip-lang' into 'master'
2 years ago
Cordell Bloor 7d3e6a7163 Update d/p/0004-Fix-hip-implicit-include-dirs.patch
2 years ago
Cordell Bloor f99a170d60 New patches to fix search for hip-lang
2 years ago
Timo Röhling 33e1a5a04f Update changelog for 3.26.4-2 release
2 years ago
Timo Röhling 8d77acc002 Tolerate empty /proc/cpuinfo
2 years ago
Timo Röhling 1bdd0dc870 Update changelog for 3.26.4-1 release
2 years ago
Timo Röhling 3942daf3a1 Enable hardening flags
2 years ago
Timo Röhling 6ef4c02145 Refresh patches
2 years ago
Timo Röhling 45c4fa3965 Install new cmake-configure-log manual page
2 years ago
Timo Röhling 22c7838963 Update upstream source from tag 'upstream/3.26.4'
2 years ago
Timo Röhling 9daa142460 Bump Standards-Version to 4.6.2
2 years ago
Timo Röhling 104e707ec9 Fix obsolete Build-Depend on libncurses5-dev
2 years ago
Timo Röhling e62fa5e532 Do not build with link-time optimization
2 years ago
Timo Röhling 09077c3f06 Update changelog for 3.25.1-1 release
2 years ago
Timo Röhling 9d5e505643 Update upstream source from tag 'upstream/3.25.1'
2 years ago
Timo Röhling c5c1747d4a Update changelog for 3.25.0-3 release
2 years ago
Timo Röhling 892d2b529b Prefer default Python version regardless of CMP0094
2 years ago
Timo Röhling 76e8ed1d99 Update changelog for 3.25.0-2 release
2 years ago
Timo Röhling 436713a495 Stop shipping emacs cmake mode
2 years ago
Timo Röhling 5df34a7a98 Refactor and improve d/control
2 years ago
Timo Röhling c03c18ef5d New patch to prefer Python default version
2 years ago
Timo Röhling 2099fb84ce Update changelog for 3.25.0-1 release
2 years ago
Timo Röhling 54d7d18f67 Drop ancient d/NEWS
2 years ago
Timo Röhling cbba0e5fc6 Override lintian false positive
2 years ago
Timo Röhling c9a819d09e Drop obsolete 0001-Prefer-Debian-default-version-of-Python.patch
2 years ago
Timo Röhling d0ed1a49c0 Update upstream source from tag 'upstream/3.25.0'
2 years ago
Timo Röhling c7fabb4c75 Ignore release candidates for d/watch
2 years ago
Timo Röhling 21658a6481 Update changelog for 3.24.3-1 release
2 years ago
Timo Röhling a44be7f98e Update upstream source from tag 'upstream/3.24.3'
2 years ago
Timo Röhling b807084346 Update changelog for 3.24.2-2 release
2 years ago
Timo Röhling d76385e96b Improve discovery for Debian default version of Python
2 years ago
Timo Röhling b0906ae4ae Update changelog for 3.24.2-1 release
2 years ago
Timo Röhling 38932fb652 Update upstream source from tag 'upstream/3.24.2'
2 years ago
Timo Röhling 5829f9ce69 Update changelog for 3.24.1-1 release
2 years ago
Timo Röhling 985d4aa8f9 Update upstream source from tag 'upstream/3.24.1'
2 years ago
Timo Röhling 5efa3e0072 Update changelog for 3.24.0-1 release
2 years ago
Timo Röhling d49f2256c7 Refresh patches
2 years ago
Timo Röhling 99c46c07e6 Update upstream source from tag 'upstream/3.24.0'
2 years ago
Timo Röhling 30f5722806 Update changelog for 3.23.3-1 release
2 years ago
Timo Röhling 2cf1ddcf91 wip
2 years ago
Timo Röhling 99e7212fac Update Lintian overrides
2 years ago
Timo Röhling 5357d00bbf Update upstream source from tag 'upstream/3.23.3'
2 years ago
Timo Röhling 685622b632 Update changelog for 3.23.2-1 release
3 years ago
Timo Röhling 314e149f33 Refresh patches
3 years ago
Timo Röhling b46fe4adf6 Update upstream source from tag 'upstream/3.23.2'
3 years ago
Timo Röhling bf1431f217 Bump Standards-Version to 4.6.1
3 years ago
Timo Röhling 970d30225f Update changelog for 3.23.1-2 release
3 years ago
Timo Röhling b5d27a6182 Address hints from AppStream Report
3 years ago
Timo Röhling db7a57b9cb Work around regression with qa=+canary
3 years ago
Timo Röhling cb77366e12 Update changelog for 3.23.1-1 release
3 years ago
Timo Röhling 4be80644cd Update d/copyright
3 years ago
Timo Röhling 63e96e614c Update upstream source from tag 'upstream/3.23.1'
3 years ago
Timo Röhling d22b4fa3c2 Add AppStream metadata for cmake-qt-gui
3 years ago
Timo Röhling e6172b2d9f Update changelog for 3.23.0-1 release
3 years ago
Timo Röhling 16f988eb91 Refresh patches
3 years ago
Timo Röhling 90a73662d8 Update d/copyright
3 years ago
Timo Röhling 7d9ab5a7e9 Update upstream source from tag 'upstream/3.23.0'
3 years ago
Timo Röhling 8c4a946f1c Update changelog for 3.22.1-1 release
3 years ago
Timo Röhling abcc735897 Update upstream source from tag 'upstream/3.22.1'
3 years ago
Timo Röhling 12361d7682 Merge branch 'suggest-cmake-format' into 'master'
3 years ago
Mathieu Malaterre adfdd7262c d/control: Add cmake-format to Suggests: line
3 years ago
Timo Röhling 6c8520b3e7 Update changelog for 3.22.0-1 release
3 years ago
Timo Röhling 5b109dc0bd Refresh patches
3 years ago
Timo Röhling e413d8a739 Update upstream source from tag 'upstream/3.22.0'
3 years ago
Timo Röhling 1865b9397e Add lintian overrides for various false positives
3 years ago
Timo Röhling 54acfc4e17 Update changelog for 3.21.4-1 release
3 years ago
Timo Röhling 92f827e3de Refresh patches
3 years ago
Timo Röhling 9d9b9b9642 Update upstream source from tag 'upstream/3.21.4'
3 years ago
Timo Röhling 9fc4d8e0c0 Backport upstream fix for MPI patch
3 years ago
Timo Röhling e66f1bdbc9 Also unset _proxy variables for ninja autopkgtest
3 years ago
Timo Röhling d1b9457769 Update changelog for 3.21.3-5 release
3 years ago
Timo Röhling ee751ac767 Fix check_symbols_exists() with -pedantic-errors
3 years ago
Timo Röhling a668eb2118 Make FindFLTK safe to include multiple times
3 years ago
Timo Röhling 48485866d2 Package can be cross-compiled now
3 years ago
Timo Röhling 2405883a61 Update changelog for 3.21.3-4 release
3 years ago
Timo Röhling 13f3126ea2 New build profile: cmake.pkg.nogui
3 years ago
Timo Röhling 2c9606f87c Remove Built-Using from cmake-doc again
3 years ago
Timo Röhling e9bc13a918 Fix misinterpretation of Debian Policy on LIBEXECDIR
3 years ago
Timo Röhling 99fa2a4de1 Update changelog for 3.21.3-3 release
3 years ago
Timo Röhling 97f9f985c0 Fix FTBFS on hurd-i386
3 years ago
Timo Röhling eeb9cf83fb Update changelog for 3.21.3-2 release
3 years ago
Timo Röhling f295ff4db7 New build profile: pkg.cmake.bootstrap
3 years ago
Timo Röhling 103ee1dd26 Skip spuriously failing tests on kfreebsd-*
3 years ago
Timo Röhling fbea66871f Fix Depends
3 years ago
Timo Röhling 92bb89a83e Make dh_elpa B-D-Indep
3 years ago
Timo Röhling 4dd1d21549 Prevent dh_elpha from disabling the test suite
3 years ago
Timo Röhling e79776dd1b Update changelog for 3.21.3-1 release
3 years ago
Timo Röhling 89c1c846a8 Update maintscript
3 years ago
Timo Röhling e226cc0dc5 Update patches
3 years ago
Timo Röhling 13afa71e65 Update upstream source from tag 'upstream/3.21.3'
3 years ago
Timo Röhling 7481dfdfbf dh_elpa fixes another bug
3 years ago
Timo Röhling 3057883b7b Add Forwarded: headers to the patches
3 years ago
Timo Röhling cfbd7a040f Update d/watch to version 4
3 years ago
Timo Röhling 744ff27882 Migrate emacsen helpers to dh_elpa
3 years ago
Timo Röhling fa67c1189b Revert move to Build-Depends-Indep
3 years ago
Timo Röhling c7524087ea Move not cross-satisfiable dependencies to B-D-Indep
3 years ago
Timo Röhling 9d70e31c39 Make tests run in parallel again
3 years ago
Timo Röhling f064727af9 Update d/copyright
3 years ago
Timo Röhling 6f78d1a7f4 Mark cmake-doc as Multi-Arch: foreign
3 years ago
Timo Röhling 4c0f680391 Update changelog for 3.21.2-1 release
3 years ago
Timo Röhling a7888941b0 Add myself to uploaders
3 years ago
Timo Röhling c0e175be5e Prefer Debian's default Python 3 version in FindPython.cmake
3 years ago
Timo Röhling 4ae247c9e4 Unset *_proxy variables in autopkgtest
3 years ago
Timo Röhling c597d480b3 Update lintian overrides
3 years ago
Timo Röhling e0d153b934 Install new man page
3 years ago
Timo Röhling 28fca03a49 Switch to debhelper version 13
3 years ago
Timo Röhling 4efe3c6e9a Bump Standards-Version to 4.6.0
3 years ago
Timo Röhling 274e688012 Update patches
3 years ago
Timo Röhling 7702a7c26c Document fixed bugs from new upstream release
3 years ago
Timo Röhling 1f305b0624 Update upstream source from tag 'upstream/3.21.2'
3 years ago
Felix Geyer d22343548f Merge branch 'lintian-fixes' into 'master'
3 years ago
Debian Janitor 4b9210355b Drop transition for old debug package migration.
3 years ago
Debian Janitor 3f3533a96b Fix day-of-week for changelog entries 1.2-1, 1.0-1, 1.2-1, 1.0-1.
3 years ago
Debian Janitor 1ae105b647 Trim trailing whitespace.
3 years ago
Felix Geyer 02270eb4ca Release to unstable.
4 years ago
Felix Geyer 93bf7432ed Mark cmake-data as Multi-Arch: foreign.
4 years ago
Felix Geyer d9e4f5b754 Drop unused Build-Depends: libbz2-dev and liblzma-dev.
4 years ago
Felix Geyer 4c80d61a42 Release to unstable
4 years ago
Felix Geyer 15a52f669d Ignore some source-contains-cmake-cache-file lintian checks
4 years ago
Felix Geyer f56e23e90b Update not-installed file for moved docdir
4 years ago
Felix Geyer d42666f6e0 Cherry-pick commit to build with -D_FILE_OFFSET_BITS=64 on 32bit archs.
4 years ago
Felix Geyer 5d657d6d13 New upstream release
4 years ago
Felix Geyer 96d9723647 Update upstream source from tag 'upstream/3.18.4'
4 years ago
Felix Geyer f6e4137c89 Add changelog entries
4 years ago
Felix Geyer d568813c8d Merge branch 'bug-972252' into 'master'
4 years ago
Felix Geyer 6ae20df324 Merge branch 'fix-doc-path' into 'master'
4 years ago
Tobias Frost 5314c3c64f B-D on libarchive >=3.3.3 (Closes: #972252)
4 years ago
Kyle Edwards 297094e070 Set --docdir to actual destination
4 years ago
Felix Geyer 2e4702f156 Release to unstable.
4 years ago
Felix Geyer cdbe32ea97 Update install files.
4 years ago
Felix Geyer 1bd875710c Drop FindPkgConfig_also_handle_isystem.patch, applied upstream.
4 years ago
Felix Geyer a0bfc57b0c New upstream release.
4 years ago
Felix Geyer 06be8a22a4 Update upstream source from tag 'upstream/3.18.2'
4 years ago
Felix Geyer 273e39ca6f Release to unstable.
5 years ago
Felix Geyer 9e83145922 Explicity build-depend on python3-sphinx again.
5 years ago
Felix Geyer d43308f431 Handle -isystem from pkg-config correctly.
5 years ago
Felix Geyer 6ccbf19744 Release to unstable.
5 years ago
Felix Geyer 79675c9256 Swap sphinx build-dep alternatives
5 years ago
Felix Geyer f759497dac Build-depend on python3-sphinxcontrib.qthelp for sphinx >= 2.0
5 years ago
Felix Geyer 0fe9fc10a1 Release to unstable.
5 years ago
Felix Geyer ea3d87ec5a New upstream release.
5 years ago
Felix Geyer b0d92329b8 Update upstream source from tag 'upstream/3.16.3'
5 years ago
Felix Geyer d9d23e1578 Release to unstable.
5 years ago
Felix Geyer 51cea565b5 Close bug requesting new upstream version.
5 years ago
Felix Geyer 81a45a4313 Pass --fail-missing to dh_missing.
5 years ago
Felix Geyer b1391a24aa Switch to debhelper compat level 12.
5 years ago
Felix Geyer 308f30b893 Disable FIleAPI json-extra test for now as it doesn't seem critical and fails with libjsoncpp 1.7.4.
5 years ago
Felix Geyer 3272d46942 Replace deprecated ADTTMP variable in autopkgtests.
5 years ago
Felix Geyer 70238b5cee Install new manpage.
5 years ago
Felix Geyer 6f69e63cc0 New upstream release.
5 years ago
Felix Geyer beeca2de62 Update upstream source from tag 'upstream/3.15.4'
5 years ago
Felix Geyer df6e46f2ab Release to unstable.
6 years ago
Felix Geyer f8b73d2ed1 New upstream release.
6 years ago
Felix Geyer c00e608d92 Update upstream source from tag 'upstream/3.13.4'
6 years ago
Felix Geyer 2aa5a59bee Release to unstable.
6 years ago
Felix Geyer 5c76e62aa5 New upstream release.
6 years ago
Felix Geyer eace5a15e8 Update upstream source from tag 'upstream/3.13.2'
6 years ago
Felix Geyer beae0d647a Release to unstable.
6 years ago
Felix Geyer 3ff5677656 Close bug fixed in upstream release.
6 years ago
Felix Geyer 1dd73b21bb Remove duplicate BSD-2-clause copyright section.
6 years ago
Felix Geyer b4a2aa2845 Drop FindBoost_add_-lpthread_#563479.diff, fixed upstream.
6 years ago
Felix Geyer a056325156 New upstream release.
6 years ago
Felix Geyer c26ad67258 Update upstream source from tag 'upstream/3.13.1'
6 years ago
Felix Geyer 0cb70a0f7b Update changelog.
6 years ago
Felix Geyer 3cf5a2808e Merge branch 'experimental'
6 years ago
Felix Geyer f58803466f Merge branch 'cmake_toolchain_file' into 'master'
6 years ago
Lisandro Damián Nicanor Pérez Meyer 8951796741 Print a usage message when invoked without parameters.
6 years ago
Lisandro Damián Nicanor Pérez Meyer 6bde31bd62 Also set QMAKE_EXECUTABLE.
6 years ago
Lisandro Damián Nicanor Pérez Meyer 098b7be968 Add copyright entry in debian/copyright.
6 years ago
Lisandro Damián Nicanor Pérez Meyer 448b721421 Add year of copyright in license.
6 years ago
Lisandro Damián Nicanor Pérez Meyer 2effed0989 Add Helmut Grohne's script to generate toolchain files
6 years ago
Lisandro Damián Nicanor Pérez Meyer 72f673b0a3 Merge branch 'lintian-fixes' into 'master'
6 years ago
Felix Geyer a640d12917 Release to experimental.
6 years ago
Felix Geyer 0c2e7dda2f Install cpack-generators(7) man page.
6 years ago
Jelmer Vernooij 6ff6a33024 Trim trailing whitespace.
6 years ago
Jelmer Vernooij 7479e394e7 Use secure copyright file specification URI.
6 years ago
Felix Geyer cbdb05ae2f Drop patches that have been applied upstream.
6 years ago
Felix Geyer 0adc4700dd New upstream release candidate.
6 years ago
Felix Geyer da15f08165 Update upstream source from tag 'upstream/3.13.0_rc2'
6 years ago
Felix Geyer 0c3aa46e7d Fix info and man page install directories on kFreeBSD.
6 years ago
Felix Geyer 0f9985d923 Release to unstable.
6 years ago
Felix Geyer 55aa058f6c Increase timeout of tests from 2000s to 5000s.
6 years ago
Felix Geyer bb5a50a069 Release to unstable.
6 years ago
Felix Geyer 5694160b47 Make shared libraries non-executable on hurd.
6 years ago
Felix Geyer 5d56dbb856 New upstream release.
6 years ago
Felix Geyer 6bcf7a2112 Update upstream source from tag 'upstream/3.12.3'
6 years ago
Mattia Rizzolo 6ebc8f49e3 Import Debian changes 3.12.1-1.1
6 years ago
Felix Geyer d209a4e6e3 Release to unstable.
6 years ago
Felix Geyer df99e7c840 Refresh patches.
6 years ago
Felix Geyer 33ec571d43 Drop qt_import_dir_variable.diff, not needed anymore.
6 years ago
Felix Geyer 12de5624a1 New upstream release.
6 years ago
Felix Geyer 31dfd4f103 Update upstream source from tag 'upstream/3.12.1'
6 years ago
Felix Geyer 88b76a3545 Release to unstable.
7 years ago
Felix Geyer 30a6705989 New upstream release.
7 years ago
Felix Geyer dfaa762e65 Update upstream source from tag 'upstream/3.11.2'
7 years ago
Felix Geyer 285de11973 Release to unstable.
7 years ago
Felix Geyer 193594637e Bump minimum libuv version to 1.10.
7 years ago
Felix Geyer 0a7ab6c153 New upstream release.
7 years ago
Felix Geyer c21c3d42d5 Update upstream source from tag 'upstream/3.11.1'
7 years ago
Felix Geyer 170581e4ac Release to unstable.
7 years ago
Felix Geyer 590748b73c Remove unnecessary dpkg Pre-Depends.
7 years ago
Felix Geyer 83c4a6d533 Make cmake suggest cmake-doc.
7 years ago
Felix Geyer 6e41d2f679 Work around bug related to running ctests thorugh make test.
7 years ago
Felix Geyer f20dd846b8 Switch to debhelper compat level 10.
7 years ago
Felix Geyer 0c007169c9 Declare compatbility with policy 4.1.3.
7 years ago
Felix Geyer e0820a4dec Point Vcs-* control fields to the new repo on salsa.
7 years ago
Felix Geyer 00bf99667c Disable CTestTestUpload in autopkgtest.
7 years ago
Felix Geyer a73d12c683 New upstream release.
7 years ago
Felix Geyer b920e2bbe3 Update upstream source from tag 'upstream/3.10.2'
7 years ago
Felix Geyer 0dfd505bc8 Release to unstable.
7 years ago
Felix Geyer c2df33f5a3 Set Rules-Requires-Root: no
7 years ago
Felix Geyer 2063012cb8 New upstream release.
7 years ago
Felix Geyer 7a51ba197c Update upstream source from tag 'upstream/3.9.5'
7 years ago
Felix Geyer bb3d731aa3 Release to unstable.
7 years ago
Felix Geyer 0cd64bfc8e Remove upgrade maintainer scripts from before stretch.
7 years ago
Felix Geyer a31b79ca97 Switch to python3 sphinx.
7 years ago
Felix Geyer 37e49b8aaf Increase test timeout to 2000s.
7 years ago
Felix Geyer 3fd5f19814 New upstream release.
7 years ago
Felix Geyer 3fb48daea6 Updated version 3.9.3 from 'upstream/3.9.3'
7 years ago
Felix Geyer d25f051ee4 Release to unstable.
7 years ago
Felix Geyer 542a7fbb13 Remove fix-java9-detection.patch, applied upstream.
7 years ago
Felix Geyer be8435d872 New upstream release.
7 years ago
Felix Geyer 60286bc9bc Updated version 3.9.1 from 'upstream/3.9.1'
7 years ago
Felix Geyer 4a684befbe Release to unstable.
8 years ago
Felix Geyer 8b36be9871 Fix detection of OpenJDK 9 early access builds.
8 years ago
Felix Geyer 1c988fd87e Add Python and Java to findmodules autopkgtest.
8 years ago
Felix Geyer 5d285c330c Update copyright file.
8 years ago
Felix Geyer 982c4a855e No longer suggest eclipse and codeblocks. (Closes: #750465)
8 years ago
Felix Geyer c48387dce6 Drop ancient Breaks/Replaces/Conflicts.
8 years ago
Felix Geyer a1c61232aa Include pkg-info.mk instead of calling dpkg-parsechangelog.
8 years ago
Felix Geyer 8bd7b748bf Update path to desktop file.
8 years ago
Felix Geyer 687237d732 Refresh patches.
8 years ago
Felix Geyer 1970102e39 New upstream release.
8 years ago
Felix Geyer b8719a1807 Updated version 3.9.0 from 'upstream/3.9.0'
8 years ago
Felix Geyer c5db38078e Release to experimental.
8 years ago
Felix Geyer 02688b8b93 Close bug fixed by new upstream release.
8 years ago
Felix Geyer 31f8ee6b0c Add librhash-dev to Build-Depends.
8 years ago
Felix Geyer 648ef319d7 Drop mips-rld-map-rel.patch, merged upstream.
8 years ago
Felix Geyer 2130d9a98a Refresh fix-ftbfs-on-kfreebsd.patch
8 years ago
Felix Geyer e567ae1c00 Upstream version 3.8.0
8 years ago
Felix Geyer 0fae41be31 New upstream release.
8 years ago
Felix Geyer 6808981443 Upstream version 3.7.2
8 years ago
Felix Geyer 3a4d9fd268 Release to unstable.
8 years ago
Felix Geyer 66832068c1 Don't try to link against libuv on hurd.
8 years ago
Felix Geyer e40ae4382e New upstream release.
8 years ago
Felix Geyer fea1626102 Upstream version 3.7.1
8 years ago
Felix Geyer 7dff13d9d5 Release to unstable.
8 years ago
Felix Geyer 898120ef86 Remove libjapser from the autopkgtest, the package has been removed from the archive.
8 years ago
Felix Geyer 099320abdf New upstream release.
8 years ago
Felix Geyer 2923bc0a1b Upstream version 3.7.0
8 years ago
Felix Geyer 30138cdb4f Release to experimental.
8 years ago
Felix Geyer 7e26832e72 Add not-installed file.
8 years ago
Felix Geyer 168f2d4f02 New upstream release.
8 years ago
Felix Geyer b142cb87b9 Upstream version 3.7.0~rc3
8 years ago
Felix Geyer d15aa77ca1 Release to experimental
8 years ago
Felix Geyer f67e858b03 Drop Qt version number from package description.
8 years ago
Felix Geyer 2306eb4f41 Install new manpage.
8 years ago
Felix Geyer b47f7389e5 Add libuv1-dev to Build-Depends, required by new release.
8 years ago
Felix Geyer 56fea84d31 Refresh patches.
8 years ago
Felix Geyer dd471dee20 Drop CMakeParseImplicitLinkInfo_Exclude_libclang_rt.patch.
8 years ago
Felix Geyer c25f674e0b New upstream release.
8 years ago
Felix Geyer 12a8cefb80 Upstream version 3.7.0~rc2
8 years ago
Felix Geyer 59a65b5798 Update Uploaders. (Closes: #840858)
8 years ago
Lisandro Damián Nicanor Pérez Meyer 8c54837f36 Release to unstable.
8 years ago
Lisandro Damián Nicanor Pérez Meyer 38f2951d7d Refresh patches.
8 years ago
Lisandro Damián Nicanor Pérez Meyer a68d32f152 Add mips-rld-map-rel.patch.
8 years ago
Lisandro Damián Nicanor Pérez Meyer 9476fc6f90 New changelog entry.
8 years ago
Felix Geyer 21ad4992db Release to unstable.
8 years ago
Felix Geyer bee75f6baa Fix broken binaries when using clang with -fsanitize.
8 years ago
Felix Geyer e3dddc1652 New upstream release.
8 years ago
Felix Geyer 6b0e8dc9bd Upstream version 3.6.2
8 years ago
Felix Geyer 7f85701265 Release to unstable.
8 years ago
Felix Geyer 58a70f017b Drop FindImageMagick_find_program.patch, the underlying issue has been fixed upstream.
8 years ago
Felix Geyer ac081f98a8 New upstream release.
8 years ago
Felix Geyer c6213f749c Upstream version 3.6.1
8 years ago
Felix Geyer 5aef43d7e0 Upload to experimental.
9 years ago
Felix Geyer 397fc3f087 Add new autopkgtest which checks if various Find modules are wokring,
9 years ago
Felix Geyer 37d857fb9e Quote paths in shell scripts.
9 years ago
Felix Geyer 264cae9389 Fix detection of ImageMagick.
9 years ago
Felix Geyer 3fae3a4f36 Drop patches that have been applied upstream.
9 years ago
Felix Geyer 3d4ffa67af New upstream release.
9 years ago
Felix Geyer 288265a54d Upstream version 3.6.0
9 years ago
Felix Geyer 5bf6884e40 Release to unstable.
9 years ago
Felix Geyer 2e9e55ed25 Backport patch to make file(GLOB) order deterministic.
9 years ago
Felix Geyer 18ca9bac2d Make FindLibArchive compatible with libarchive 3.2.
9 years ago
Felix Geyer 68d40c97b6 Release to unstable.
9 years ago
Felix Geyer e08ac58ca0 Add cvs to autopkgtest Depends.
9 years ago
Felix Geyer 490def8500 New upstream release.
9 years ago
Felix Geyer 5fe7682f3d Upstream version 3.5.2
9 years ago
Felix Geyer 2600f8c4ff Release to unstable.
9 years ago
Felix Geyer 4dd56bea3b Update copyright file.
9 years ago
Felix Geyer 62f9824e42 Refresh patches.
9 years ago
Felix Geyer e3ed219285 New upstream release.
9 years ago
Felix Geyer 1fe9e70aa8 Upstream version 3.5.1
9 years ago
Felix Geyer 6a00ae1860 Release to unstable.
9 years ago
Felix Geyer d60a38d65a Migrate to dbgsym debug package.
9 years ago
Felix Geyer 0ab9bb1454 New upstream release.
9 years ago
Felix Geyer daf8f217f9 Upstream version 3.5.0
9 years ago
Felix Geyer abd9aa8ed5 Change Vcs-* and Homepage to https URLs.
9 years ago
Felix Geyer 603835610b Pass correct buildsystem to dh_auto_test, fixes FTBFS.
9 years ago
Felix Geyer a8f1f4046a Upload to unstable.
9 years ago
Felix Geyer 35d5305303 New upstream release.
9 years ago
Felix Geyer 41ee6af42d Upstream version 3.4.1
9 years ago
Felix Geyer cda54584b0 Release to experimental.
9 years ago
Felix Geyer 9a6962b582 Allow backports of the debhelper/dpkg-dev build-deps.
9 years ago
Felix Geyer 0967ff44bd set -v for testsuite scripts.
9 years ago
Felix Geyer 3831aa6791 Remove upgrade maintainer scripts from before wheezy.
9 years ago
Felix Geyer 8eccd4586e Stop hardcoding the major version in cmake-data.install.
9 years ago
Felix Geyer 399f5fbd0e Drop patches that have been applied upstream.
9 years ago
Felix Geyer 334223b492 Point watch file to the https URL.
9 years ago
Felix Geyer aaae2fff3f New upstream release.
9 years ago
Felix Geyer 333d155101 Upstream version 3.4.0
9 years ago
Felix Geyer 5396701011 Release to unstable.
9 years ago
Felix Geyer 203a07283f Add tighter build-depends on dpkg-dev and debhelper for Build-Profiles support.
9 years ago
Felix Geyer 38b31e81ff Search for Python 3.5 and 3.6.
9 years ago
Felix Geyer 063a3e5f29 Upload to unstable.
9 years ago
Felix Geyer 82ce64b0a1 Drop unused xpm icon.
9 years ago
Felix Geyer 7008abe231 Remove inactive uploaders from the list.
9 years ago
Felix Geyer f6c4ef7488 Fix FindPkgConfig when no minimum version has been set.
9 years ago
Felix Geyer 80d095468a Make compiler feature testing more reliable.
9 years ago
Felix Geyer db2c55b506 New upstream release.
9 years ago
Felix Geyer 0ea2f7c235 Upstream version 3.3.2
9 years ago
Felix Geyer 4ffe518f92 Drop Debian menu entries.
9 years ago
Felix Geyer 8952ea3073 Release to experimental.
9 years ago
Felix Geyer d0f87869ac Fix syntax of Uploaders field.
9 years ago
Felix Geyer a06921530e Fix DEB_BUILD_PROFILES check.
9 years ago
Felix Geyer 8b5a68bf90 Close bug #738161, no further changes seem necessary.
9 years ago
Felix Geyer 0e757b0ee0 Add support for x32 in FindJNI. (Closes: #792262)
9 years ago
Felix Geyer 55b1b64fe3 Add autopkgtests which run the upstream testsuite against the system cmake.
9 years ago
Felix Geyer 20e463128f Use filter to detect the build profile.
9 years ago
Felix Geyer a8bc51cb82 Add a stage1 build profile that disables building cmake-qt-gui.
9 years ago
Felix Geyer e7305144e9 Update Git repository location.
9 years ago
Felix Geyer be5c6c9ea2 Set the team mailing list as maintainer.
9 years ago
Felix Geyer 8f0301f4e6 Release to experimental.
9 years ago
Felix Geyer 5570d27ac2 Update install path for new version.
9 years ago
Felix Geyer a673332f17 Drop patch that have been applied upstream.
9 years ago
Felix Geyer 73c6679b20 New upstream release.
9 years ago
Felix Geyer 7dae6a3540 Upstream version 3.3.1
9 years ago
Felix Geyer 6a3df7db44 Move bash_completion from /etc to /usr/share.
10 years ago
Lisandro Damián Nicanor Pérez Meyer cb8ba5d864 Release to unstable.
10 years ago
Lisandro Damián Nicanor Pérez Meyer 8955055c54 Make cmake.bash-completion use wildcards for the minor version
10 years ago
Lisandro Damián Nicanor Pérez Meyer 9279efc334 New changelog entry.
10 years ago
Felix Geyer 8626e0f375 Release to unstable.
10 years ago
Felix Geyer 7356dd492b Fix detection of openjdk 8.
10 years ago
Felix Geyer 4878e2db55 Properly detect mipsel as little endian architecture.
10 years ago
Felix Geyer 00f3d8d22e Add libcurl-ssl-dev as an alternative build-dependency to libcurl4-openssl-dev.
10 years ago
Felix Geyer eca3fa3bbc Close bug #784443, fixed in new upstream release.
10 years ago
Felix Geyer 8bc5eacc3a Make builds reproducible.
10 years ago
Felix Geyer 1b15e7b57b Install CMakeSetup.png icons.
10 years ago
Felix Geyer a6e2dd639f Add protect-tests-from-makeflags.patch, cherry-picked from upstream.
10 years ago
Felix Geyer 7c7e569c4a Sort Build-Depends.
10 years ago
Felix Geyer 7ee10ea872 Build cmake-qt-gui against Qt 5 again.
10 years ago
Mario Lang 829e5cb013 Install new manpage cmake-compile-features.7.
10 years ago
Mario Lang ca75aed246 New upstream release.
10 years ago
Mario Lang 824dd175df Merge tag 'upstream/3.2.2'
10 years ago
Felix Geyer 602c0f73d5 Release to unstable.
10 years ago
Felix Geyer 4fbca59fd9 Revert "Build cmake-qt-gui against Qt 5."
10 years ago
Felix Geyer 114994b110 Detect the processor when running on Hurd.
10 years ago
Felix Geyer 4822fb610c New upstream release.
10 years ago
Felix Geyer 5b785fe619 Imported Upstream version 3.0.2
10 years ago
Felix Geyer 2fe7065951 Merge branch 'master' into experimental
10 years ago
Felix Geyer d85dbd1d6f Release to unstable.
10 years ago
Felix Geyer 36fbe1dde9 Move the rm_conffile calls to cmake.maintscript.
10 years ago
Felix Geyer b53e877de7 Don't create docs symlinks from arch-dep to arch-indep packages.
10 years ago
Felix Geyer 36de5ba0ce Search for Python 3.4 in FindPython{Interp,Libs}.
10 years ago
Felix Geyer b51697c0a7 Release to experimental.
11 years ago
Felix Geyer 3d1c4afc8e Drop patches (fixed upstream):
11 years ago
Felix Geyer 80f663fb22 New upstream release.
11 years ago
Felix Geyer 526cc4f69b Upstream version 3.0.1
11 years ago
Felix Geyer 4a4e6ddfa7 Release to unstable.
11 years ago
Felix Geyer 73619f3ba6 cmake Debian release 2.8.12.2-1
11 years ago
Felix Geyer 62653e6664 Release to unstable.
11 years ago
Lisandro Damián Nicanor Pérez Meyer 57e7cf84b7 No-op wrap-and-sort.
11 years ago
Lisandro Damián Nicanor Pérez Meyer a7e67175df Add ISC license.
11 years ago
Lisandro Damián Nicanor Pérez Meyer b60993f2b7 Add ISC license.
11 years ago
Lisandro Damián Nicanor Pérez Meyer b92fee523e Merge branch 'master' into experimental
11 years ago
Lisandro Damián Nicanor Pérez Meyer b718daf2cd No-op wrap-and-sort.
11 years ago
Lisandro Damián Nicanor Pérez Meyer 49880c9b98 Add zlib license.
11 years ago
Lisandro Damián Nicanor Pérez Meyer ebac48db5f Finish updating debian/copyright.
11 years ago
Lisandro Damián Nicanor Pérez Meyer 8cee525b2b Yet another update to debian/copyright.
11 years ago
Lisandro Damián Nicanor Pérez Meyer cc588ced07 Two mor eupdates to debian/copyright.
11 years ago
Lisandro Damián Nicanor Pérez Meyer 1b9e0b8462 WIP: update of debian/copyright.
11 years ago
Felix Geyer 81f9ce9764 Merge branch 'master' into experimental
11 years ago
Felix Geyer 1769e4ab61 Drop multiarch_findgtk2_fix.diff, was already fixed upstream in 2.8.11.
11 years ago
Felix Geyer aefe3e65af Update doc-base config for the new manual.
11 years ago
Felix Geyer d0d653e964 Closes bugs that are fixed in cmake 3.0.
11 years ago
Felix Geyer d2bc8ee49c Update the copyright file.
11 years ago
Felix Geyer 9cc8b4e1b7 Drop obsolete lintian override cmake-data: extra-license-file.
11 years ago
Felix Geyer d3b54e4365 Build cmake-qt-gui against Qt 5.
11 years ago
Felix Geyer dc33971b21 Fix path of bash completion files.
11 years ago
Felix Geyer aed6c629d1 Drop custom cmake-gui manpage, upstream provides one now.
11 years ago
Felix Geyer 53df475c27 Add -Wl,--as-needed to LDFLAGS to avoid overlinking.
11 years ago
Felix Geyer 4c2506bfcb Use sphinxdoc debhelper sequence.
11 years ago
Felix Geyer e7e27bc5e1 Pass --list-missing to dh_install.
11 years ago
Felix Geyer 8f96e29ae4 Update install files.
11 years ago
Felix Geyer 1af78b6571 Build the sphinx documentation and man pages.
11 years ago
Felix Geyer 2a3514be35 Fix running the test suite.
11 years ago
Felix Geyer c8df114fc5 Patch refresh.
11 years ago
Felix Geyer dc514a9dfa New upstream release.
11 years ago
Felix Geyer d63f6671ff Upstream version 3.0.0
11 years ago
Felix Geyer 8bbb2337e9 Drop some redundant build options from debian/rules.
11 years ago
Felix Geyer 7669821758 Add lintian override for source-is-missing tags.
11 years ago
Felix Geyer c8388089fb New upstream release.
11 years ago
Felix Geyer 1f93066d8b Upstream version 2.8.12.2
11 years ago
Felix Geyer b97ba38647 Drop ancient Breaks/Replaces.
11 years ago
Felix Geyer 19811e3d1d Fix JNI detection on ppc64el.
11 years ago
Felix Geyer 4cc3e0c89d Suggest ninja-build as cmake provides a generator for ninja.
11 years ago
Felix Geyer bf9c0c2a76 Correctly pass CXXFLAGS with CPPFLAGS to bootstrap.
11 years ago
Felix Geyer c551cd3b80 Add Lisandro and myself to uploaders.
11 years ago
Gilles Filippini 4de62b31d9 Imported Debian patch 2.8.12.1-1.6
11 years ago
Felix Geyer b353df6d1c Imported Debian patch 2.8.12.1-1.5
11 years ago
Anibal Monsalve Salazar 68a9b85cc3 Imported Debian patch 2.8.12.1-1.4
11 years ago
Anibal Monsalve Salazar 5f578c6c76 Imported Debian patch 2.8.12.1-1.3
11 years ago
Lisandro Damián Nicanor Pérez Meyer ff11487c59 Merge branch 'bas-master'
11 years ago
Bas Couwenberg df9a615962 Merge changes from 2.8.12.1-1.1 Non-maintainer upload.
11 years ago
Bas Couwenberg 08b16aff7d Also fixes #730095.
11 years ago
Bas Couwenberg e267451441 releasing package cmake version 2.8.12.1-1.2
11 years ago
Bas Couwenberg 7f2eb9ad34 Backport patch to support Ruby 2.0 and 2.1 in FindRuby.cmake.
11 years ago
Bas Couwenberg ee6e1488d0 Merge changes from 2.8.12.1-1.1 Non-maintainer upload.
11 years ago
Modestas Vainius c622599359 Release to unstable.
11 years ago
Modestas Vainius b041fb2d6b Drop fixup_manpages.diff patch: merged upstream.
11 years ago
Modestas Vainius ae3904aade New upstream release.
11 years ago
Modestas Vainius 7fcbec3931 Merge tag 'upstream/2.8.12.1'
11 years ago
Modestas Vainius ba06007573 Migrate to emacs policy v2.0.
11 years ago
Modestas Vainius 1faa7693cc New changelog entry.
11 years ago
Modestas Vainius d89108a4eb Release to unstable.
11 years ago
Modestas Vainius d01605906a Fix FTBFS on kFreeBSD (fix-ftbfs-on-kfreebsd.patch).
11 years ago
Modestas Vainius 64a8150a38 New changelog entry.
11 years ago
Modestas Vainius 71dc60548c Release to unstable.
11 years ago
Modestas Vainius de7cc524f3 Fix spelling mistakes in manpages.
11 years ago
Modestas Vainius 47d5f8bb6f Bump Standards-Version to 3.9.5: no further changes needed.
11 years ago
Modestas Vainius d872a16def Properly find Java when kernel is 64bit, userland - 32bit (amd64/ppc64).
11 years ago
Modestas Vainius 4a008406a5 Fix a code typo in PHP4 (patch FindPHP4_fix_typo.diff).
11 years ago
Modestas Vainius 01e348a127 Bump revision.
11 years ago
Modestas Vainius a18f69b89d Remove the whole emacs compiled directory...
11 years ago
Modestas Vainius d2afae7e18 Add compiled cmake-mode.elc to load-path and do not barf when cmake-data was removed.
11 years ago
Modestas Vainius 9ea4ef6d81 Link cmake-mode.el source file next to compiled one.
11 years ago
Modestas Vainius 22dd7d866e Switch to using libcurl4-openssl-dev rather than GnuTLS variant.
11 years ago
Modestas Vainius a05eb9f259 Enable bash-completion.
11 years ago
Modestas Vainius eec0b282de New upstream release.
11 years ago
Modestas Vainius fa77fe79e0 Merge tag 'upstream/2.8.12'
11 years ago
Modestas Vainius f99d2d2480 New upstream release.
12 years ago
Modestas Vainius d2a097b96c Merge tag 'upstream/2.8.11.2'
12 years ago
Modestas Vainius 9b3ea8d829 Use canonical URL in the Vcs-Git control field.
12 years ago
Modestas Vainius c6a5d71e3b New changelog entry.
12 years ago
Modestas Vainius 8ba5ba6d0b Release to unstable.
12 years ago
Modestas Vainius caa317beae Drop fix-regexp-chars-in-the-build-path patch.
12 years ago
Modestas Vainius 89c2d87809 New upstream tweak release.
12 years ago
Modestas Vainius ce3556a1e8 Merge tag 'upstream/2.8.11.1'
12 years ago
Modestas Vainius 66a4be6c8d Merge tag 'upstream/2.8.11'
12 years ago
Modestas Vainius 43d1f32370 Make tests pass when cmake build path contains regex metacharacters.
12 years ago
Modestas Vainius f5f605b6a8 New changelog entry.
12 years ago
Modestas Vainius c60892ed1e Release to unstable.
12 years ago
Modestas Vainius 178d8221d0 Bump Standards-Version to 3.9.4: no changes needed.
12 years ago
Modestas Vainius ff5ad40b88 Build with BZip2 support, thanks to Pino Toscano for heads up!
12 years ago
Modestas Vainius 103dafcec8 New changelog entry.
12 years ago
Modestas Vainius 60ff7e864d Add Bug/Forwarded fields to recent patches.
12 years ago
Modestas Vainius f45400e33b Release to unstable.
12 years ago
Modestas Vainius c5b5a65178 FindQt4: define QT_IMPORTS_DIR variable even if it is not present on the system.
12 years ago
Modestas Vainius d73e641691 Support multi-arch capable python.
12 years ago
Modestas Vainius 9441ea5e77 New upstream release.
12 years ago
Modestas Vainius 8bad2bfad4 Imported Upstream version 2.8.11
12 years ago
Modestas Vainius 605faadf5a Release to experimental.
12 years ago
Modestas Vainius a6f0f58d3a New upstream release.
12 years ago
Modestas Vainius 553faecfa4 Merge tag 'upstream/2.8.11-rc3'
12 years ago
Modestas Vainius 8d9a639309 Release to experimental.
12 years ago
Modestas Vainius d34976f247 Refresh multiarch_findgtk2_fix.diff patch.
12 years ago
Modestas Vainius 816c0623f3 Drop FindPostgreSQL_665721.diff patch, merged upstream.
12 years ago
Modestas Vainius 73b3dfd44f Replace FindBoost_add_-lpthread_#563479.diff patch with a better version.
12 years ago
Modestas Vainius 5ed48a7cba Bump Standards-Version to 3.9.4: no changes needed.
12 years ago
Modestas Vainius d8d22555b9 Drop XMLrpc support.
12 years ago
Modestas Vainius 1481f4b1ea New upstream release.
12 years ago
Modestas Vainius f9aa447b4a Merge tag 'upstream/2.8.11-rc1'
12 years ago
Modestas Vainius 7a0d160766 Make cmake suggest codeblocks and eclipse.
12 years ago
Modestas Vainius 1a8939b79f Make cmake recommend make and gcc rather than suggest them.
12 years ago
Modestas Vainius e69f0c24d4 New changelog entry.
12 years ago
Modestas Vainius 5c45a82af3 Release to unstable.
13 years ago
Modestas Vainius 8f01d6797f Install to multiarch libdir on kFreeBSD and Hurd like on Linux.
13 years ago
Modestas Vainius 89ed41c79f Refresh patches.
13 years ago
Modestas Vainius e0c125be38 Make FindPostgreSQL find headers on Debian.
13 years ago
Modestas Vainius 3af716b9d5 New upstream release
13 years ago
Modestas Vainius 5698d327ba Merge tag 'upstream/2.8.9'
13 years ago
Modestas Vainius 82fce4fc9e Release to unstable.
13 years ago
Modestas Vainius 4d01187680 Remove obsolete /etc/emacs/site-start.d/50cmake.el conffile.
13 years ago
Modestas Vainius f75d520ccb New upstream release.
13 years ago
Modestas Vainius 4c5253aa21 Merge tag 'upstream/2.8.9_rc3'
13 years ago
Modestas Vainius 3e1242bab7 Release to unstable.
13 years ago
Modestas Vainius c7fdd6058e Enable hardening flags (by appending CPPFLAGS to C(XX)FLAGS).
13 years ago
Modestas Vainius 251354e65e Drop cmake-{qt,curses}-gui.lintian-overrides, not needed with newer lintian.
13 years ago
Modestas Vainius ca14e008bc Remove patches, merged upstream.
13 years ago
Modestas Vainius c254aa0364 New upstream release.
13 years ago
Modestas Vainius 6ee6599e0c Merge tag 'upstream/2.8.9-rc1'
13 years ago
Modestas Vainius 4cc08db4c1 Release to unstable.
13 years ago
Modestas Vainius ed90284d35 Backport a no-soname feature from CMake (2.8.9) master tree.
13 years ago
Modestas Vainius 1962ee40b6 New changelog entry.
13 years ago
Modestas Vainius fa325af1f6 Release to unstable.
13 years ago
Modestas Vainius c3b31313bb FindPkgConfig.cmake: properly set documented PKG_CONFIG_FOUND variable.
13 years ago
Modestas Vainius 1546ea7e02 Start new changelog entry.
13 years ago
Modestas Vainius 38318a08f9 Release to unstable.
13 years ago
Modestas Vainius 71d036b662 Readd manpage_fixes.diff patch with new man page fixes.
13 years ago
Modestas Vainius b8fb0b61f7 The bug #666456 has been fixed upstream.
13 years ago
Modestas Vainius 13a056ae6f Refresh FindBoost_add_-lpthread_#563479.diff patch.
13 years ago
Modestas Vainius 04c0477c56 Remove patches merged/backported from upstream.
13 years ago
Modestas Vainius edcb95fa19 New upstream release.
13 years ago
Modestas Vainius aae2559508 Merge tag 'upstream/2.8.8'
13 years ago
Modestas Vainius 3a3a8eef8b Release to unstable.
13 years ago
Modestas Vainius 3e4a6a50c6 Mark cmake Multi-Arch: foreign.
13 years ago
Modestas Vainius 2f0e775356 Bump Standards-Version to 3.9.3: no changes needed.
13 years ago
Modestas Vainius 36c3f31c63 Add support for CxxTest 4 in FindCxxTest.
13 years ago
Modestas Vainius 93e74a456e Backport a bunch of FindRuby improvements from cmake master.
13 years ago
Modestas Vainius f0b0b0d2f4 Backport a bunch of FindPython* related commits from cmake master.
13 years ago
Modestas Vainius a3781fa318 New changelog entry.
13 years ago
Modestas Vainius c4fa16d8e6 Release to unstable.
13 years ago
Modestas Vainius 74bc2b76d2 Drop support_cppflags.diff patch.
13 years ago
Modestas Vainius 8c098f5507 Fix some tests not to fail if absolute build path contains regex metacharacters like +.
13 years ago
Modestas Vainius d0d4b6ab8f New changelog entry.
13 years ago
Modestas Vainius 89d032b6d7 Release to unstable.
13 years ago
Modestas Vainius 96fe6a55ce Bump debhelper compat level to 9...
13 years ago
Modestas Vainius 8ee033a02e manpage_fixes.diff has been applied upstream.
13 years ago
Modestas Vainius 4f2ae6f526 Properly detect mipsel as little endian architecture.
13 years ago
Modestas Vainius 12552d374a New changelog entry.
13 years ago
Modestas Vainius b1272b5afc Release to unstable.
13 years ago
Modestas Vainius c0d3a195e1 Update install files: add usr/share/aclocal/cmake.m4.
13 years ago
Modestas Vainius 11cd193c55 Fix various typos and formatting errors in manpages
13 years ago
Modestas Vainius 6a10d7b694 Respect CPPFLAGS environment variable.
13 years ago
Modestas Vainius 3079cf95fd Refresh other patches.
13 years ago
Modestas Vainius b896b4e6b7 Remove multiarch_lib_dirs_should_be_implicit.diff patch, merged upstream.
13 years ago
Modestas Vainius e203e95a86 New upstream release. (Closes: #658427)
13 years ago
Modestas Vainius 01c7ce2076 Merge tag 'upstream/2.8.7'
13 years ago
Modestas Vainius 6b9e5b72a9 Close bug.
14 years ago
Modestas Vainius 6428c45b6b Disable CTestTestUpload test because it requires Internet access.
14 years ago
Modestas Vainius 6300e634a5 New changelog entry.
14 years ago
Modestas Vainius 24a0a5dfb0 Add the bug multiarch_lib_dirs_should_be_implicit.diff is forwarded to.
14 years ago
Modestas Vainius 8abc9c9fc6 Release to unstable.
14 years ago
Modestas Vainius ff1d6a0c3f Refresh FindBoost_add_-lpthread_#563479.diff patch.
14 years ago
Modestas Vainius 97296f5ce6 Make sure CMake considers /lib/<arch> as implicit.
14 years ago
Modestas Vainius 3dabc0c10b Drop merged patches.
14 years ago
Modestas Vainius ad6e5b4c3d New upstream release.
14 years ago
Modestas Vainius 93dc73859d Merge commit 'upstream/2.8.5'
14 years ago
Modestas Vainius b565ebc466 Release to unstable.
14 years ago
Modestas Vainius e402face25 Override incorrect menu-icon-missing lintian warning properly.
14 years ago
Modestas Vainius 49ef65c97c Fix a couple of new spelling / formatting errors.
14 years ago
Modestas Vainius 18b00dd65e Refresh screen-256color-bce.diff patch.
14 years ago
Modestas Vainius 05b13d548a Drop patches which are no longer needed.
14 years ago
Modestas Vainius f44af35ffe No longer repack upstream tarball.
14 years ago
Modestas Vainius e668ca9384 New upstream release.
14 years ago
Modestas Vainius 73497febcf Merge commit 'upstream/2.8.5_rc2'
14 years ago
Modestas Vainius aa9612fd0d Release to unstable.
14 years ago
Modestas Vainius 8d9ddd6dae Urgency=medium.
14 years ago
Modestas Vainius ffb5fc4662 Support multiarch paths on kfreebsd and hurd
14 years ago
Modestas Vainius 46f54f9bc9 Fix multiarch regex to support arm*
14 years ago
Modestas Vainius f2a8b2428a New changelog entry.
14 years ago
Modestas Vainius 24168df217 Release to unstable.
14 years ago
Modestas Vainius 7bd05267e2 Adapt multiarch_findgtk2_fix.diff for new multiarch impl.
14 years ago
Modestas Vainius 392f6fb9bc Add multiarch implementation from upstream.
14 years ago
Modestas Vainius db159fb2cc Revert "Fix find_library() to find libraries in multiarch library paths."
14 years ago
Modestas Vainius 4389cd02f2 New changelog entry.
14 years ago
Modestas Vainius 7cc204592f Release to unstable.
14 years ago
Modestas Vainius d387f1b70e Make FindGTK2.cmake work with Debian multiarch.
14 years ago
Modestas Vainius 3220ba5539 Fix find_library() to find libraries in multiarch library paths.
14 years ago
Modestas Vainius 497d3f1c08 Switch Vcs-* debian/control fields to anonscm.debian.org.
14 years ago
Modestas Vainius 972e40fae7 Bump Standards-Version to 3.9.2: no changes needed.
14 years ago
Modestas Vainius 6c17a2a3a8 Add libxmlrpc-core-c3-dev | libxmlrpc-c3-dev to Build-Depends.
14 years ago
Modestas Vainius f28541d7ef Generate colour Makefiles if $TERM is 'screen-256color-bce'.
14 years ago
Modestas Vainius 15b5bee169 Do not start cmake description synopsis with an article.
14 years ago
Modestas Vainius a052450265 Merge 2.8.2+dfsg.1-0+squeeze1 changes.
14 years ago
Modestas Vainius b1b68d5608 New changelog entry.
14 years ago
Modestas Vainius 51f0058d36 Merge branch 'squeeze'
14 years ago
Modestas Vainius 56564af3bb Release to stable-proposed-updates (#615091).
14 years ago
Modestas Vainius da33f9c547 Add changelog and copyright entries about removal of undistributable files.
14 years ago
Modestas Vainius 5b370e5ccc Add changelog entry.
14 years ago
Modestas Vainius fad488f456 Merge commit 'upstream/2.8.2+dfsg.1' into squeeze
14 years ago
Brad King 9b120a82c4 libarchive: Remove unused build/windows directory (#11885)
14 years ago
Modestas Vainius df5dc3811d Release to unstable.
14 years ago
Modestas Vainius 7b26c06e09 Backport patch to fix test order (broken in 2.8.4).
14 years ago
Modestas Vainius d9ef5a1629 New changelog entry.
14 years ago
Modestas Vainius 0d7599a242 Release to unstable.
14 years ago
Modestas Vainius 1ed02acad3 Remove files licensed under proprietary licence from the original tarball.
14 years ago
Modestas Vainius dac99656c2 Ship DFSG version.
14 years ago
Modestas Vainius 8006863444 Merge commit 'upstream/2.8.4+dfsg.1'
14 years ago
Modestas Vainius d761130ae7 2.8.4-2 ended up in unstable by accident :-(
14 years ago
Modestas Vainius 9d6a2e14b9 Open new changelog entry.
14 years ago
Modestas Vainius 498dc50af9 Release to experimental.
14 years ago
Modestas Vainius bd569b269e Add changelog entry for 2.8.3-5 merge.
14 years ago
Modestas Vainius d113753ebb Merge commit 'debian/2.8.3-5'
14 years ago
Modestas Vainius 6e4c8812cc Release to unstable.
14 years ago
Modestas Vainius 6fe5af4146 Check if /usr/share/doc/$pkgname is a directory before attempting to remove it.
14 years ago
Modestas Vainius 0852e51f90 Open new changelog.
14 years ago
Kai Wasserbäch 3c41277f30 debian/watch: Remove trailing backslash.
14 years ago
Modestas Vainius f920624239 Fix year in the fix_manpages.patch. It's 2011 :)
14 years ago
Modestas Vainius b1fecd4c99 Release to experimental.
14 years ago
Modestas Vainius 6ad73237d6 Add abort-on-upstream-changes to local-options.
14 years ago
Modestas Vainius 66984ac0dd Add more spelling fixes to fixup_manpages.diff patch.
14 years ago
Modestas Vainius 7ff5617b50 Enable more verbosiness when bootstraping.
14 years ago
Modestas Vainius 279d948efe Support parallel building at bootstrap phase.
14 years ago
Modestas Vainius a4444332f3 Fix alignment in changelog.
14 years ago
Modestas Vainius 0caf5d6098 Remove obsolete build flags from debian/rules.
14 years ago
Modestas Vainius e4f8e910f8 Add verify-build-flags target to debian/rules.
14 years ago
Modestas Vainius f8418777dd Do not set MINGW_CC_LINUX2WIN_EXECUTABLE build flag.
14 years ago
Modestas Vainius 42d7957a6a Use less error-prone way of setting build flags.
14 years ago
Modestas Vainius 735ba71997 New upstream release.
14 years ago
Modestas Vainius c9a620eda1 Imported Upstream version 2.8.4
14 years ago
Kai Wasserbäch a7f4002a0c debian/{compat,control,rules}: Updated for debhelper v8.
14 years ago
Modestas Vainius 740a82699e Disable git-import-orig in debian/watch.
14 years ago
Modestas Vainius f6ac242807 Merge commit 'debian/2.8.3-4'
14 years ago
Modestas Vainius ef77582739 Release to unstable.
14 years ago
Kai Wasserbäch 87b7c51afb debian/changelog: reflect the import of RC2.
14 years ago
Kai Wasserbäch 2ebd96f1c8 Merge commit 'upstream/2.8.4_rc2'
14 years ago
Kai Wasserbäch fc2389b92d debian/control: Changed my E-Mail address.
14 years ago
Kai Wasserbäch e257aa2945 debian/README.source: Deleted, not needed with "3.0 (quilt)".
14 years ago
Kai Wasserbäch f28c1c00eb debian/README.Debian: Deleted.
14 years ago
Kai Wasserbäch 327cbf5bbf Added Forwarded information.
14 years ago
Kai Wasserbäch cdd8ec7b95 debian/patches/FindBoost_add_-lpthread_#563479.diff: Added. (Closes: #563479)
14 years ago
Kai Wasserbäch c17a90bf49 Dropped obsolete patch: FindPython_fix_#569321_and_#580503.diff
14 years ago
Kai Wasserbäch ed365f7923 Dropped obsolete patch: FindTCL_fix_#600245.diff
14 years ago
Kai Wasserbäch 192311b428 Dropped obsolete patche: backport_fix_asm_support.diff
14 years ago
Kai Wasserbäch 7b4f183cd5 Merge commit 'upstream/2.8.4_rc1'
14 years ago
Kai Wasserbäch 7bca51398e Reverting the last two commits.
14 years ago
Kai Wasserbäch 65f2b045e3 Added Forwarded: field.
14 years ago
Kai Wasserbäch d63a84bd7b debian/patches/FindVTK_fix_#600889.diff: Added. (Closes: #600889)
14 years ago
Modestas Vainius 7f0a058bc0 Fix typos in *.postinst scripts.
14 years ago
Modestas Vainius 5325092121 Release to experimental.
14 years ago
Modestas Vainius 52c2882e9c Fix upgrades from << 2.8.3-3 (directories to symlinks).
14 years ago
Modestas Vainius ee670935f7 Install documentation to /usr/share/cmake-data instead.
14 years ago
Modestas Vainius 07a902b0fc New changelog entry.
14 years ago
Modestas Vainius ddb528cdce Release to experimental.
14 years ago
Modestas Vainius 9643b76229 Backport a patch from 2.8.4 to fix ASM support.
14 years ago
Modestas Vainius 2f19fc7ece Use common documentation directory for all binary packages.
14 years ago
Modestas Vainius daa238878d Install cmake documentation into /usr/share/doc/cmake-doc/
14 years ago
Kai Wasserbäch e13c2dbf96 Added Applied-Upstream header.
14 years ago
Kai Wasserbäch 154d9b5b2f Added Forwarded DEP-3 header to FindTCL_fix_#600245.diff.
14 years ago
Kai Wasserbäch f56a1e051a debian/patches/FindTCL_fix_#600245.diff: Added. (Closes: #600245)
14 years ago
Modestas Vainius 95dd4ecd87 Merge branch 'experimental'
14 years ago
Modestas Vainius 5c05612a4d Merge branch 'master' into experimental
14 years ago
Kai Wasserbäch e908d5d056 debian/watch: Added git-import-orig invocation.
14 years ago
Kai Wasserbäch 99d31c8da7 Added debian/source/local-options with "unapply-patches".
14 years ago
Kai Wasserbäch 5051b71f43 Added .gitignore
14 years ago
Modestas Vainius f05b7d41f7 Release to experimental.
14 years ago
Modestas Vainius 3f23321ee1 Add fixup_manpages.diff patch to fix small issues with cmake mangpages.
14 years ago
Modestas Vainius 391b38cddc Bump libarchive-dev Build-Depends to 2.8.0.
14 years ago
Modestas Vainius b2c2f1d509 Adapt FindPython_fix_#569321_and_#580503.diff patch to upstream changes.
14 years ago
Modestas Vainius 0ac23dc6b7 Drop patches which were merged upstream.
14 years ago
Modestas Vainius f5291c6a6d New upstream release.
14 years ago
Modestas Vainius 7bb8b01cd6 Move our .gitattributes to debian/ subdir.
14 years ago
Modestas Vainius 530e7bd66c Merge commit 'upstream/2.8.3' into experimental
14 years ago
Kai Wasserbäch d56f651767 FindJNI_fix_libarch_determination.diff was applied upstream (cmake-next).
15 years ago
Kai Wasserbäch d5e9a298c2 FindGTK2_pangommconfig.diff was forwarded upstream.
15 years ago
Kai Wasserbäch 34fb6e8e38 cpack_installed_size.diff was applied upstream (cmake-next).
15 years ago
Kai Wasserbäch 32b777e281 add_libarchive_script.patch was applied upstream (cmake-next).
15 years ago
Kai Wasserbäch 04f8211130 hurd_platform.diff was applied upstream (cmake-next).
15 years ago
Kai Wasserbäch 25a23405e9 debian/control: Bumped Standards-Version to 3.9.1, no further changes needed.
15 years ago
Kai Wasserbäch e39f23fb1d debian/patches/fix_spelling_errors.patch: Added Applied-Upstream header.
15 years ago
Modestas Vainius cb6d59a845 Revert "Close old Ubuntu bug which is fixed by 2.8.0. (LP: #156403)"
15 years ago
Kai Wasserbäch 4644703179 Close old Ubuntu bug which is fixed by 2.8.0. (LP: #156403)
15 years ago
Modestas Vainius 1ee83cfba3 Release to unstable.
15 years ago
Modestas Vainius 4404c4eef6 Start package synopsis with lowercase letter where applicable.
15 years ago
Modestas Vainius 99fca3d508 Move Section field up a bit.
15 years ago
Modestas Vainius b8f9e12c48 Add cmake to cmake-doc Suggests.
15 years ago
Modestas Vainius 8d3ef94fd6 Add cmake-dbg package.
15 years ago
Kai Wasserbäch ba7301b565 Add the proper Breaks/Replaces stuff to cmake-doc.
15 years ago
Kai Wasserbäch ccdfdf47a6 Renamed cmake-docs to cmake-doc.
15 years ago
Kai Wasserbäch 626a79638c Added new binary package cmake-docs.
15 years ago
Kai Wasserbäch a0f2851e04 Fix spelling mistakes in CMake and its documentation.
15 years ago
Kai Wasserbäch c4a2c601cf Fixed "W: cmake: spelling-error-in-changelog reenable re-enable".
15 years ago
Kai Wasserbäch 428e2a353a debian/control: Added Homepage field (no-homepage-field).
15 years ago
Modestas Vainius 491a593864 Cosmetics: alignment.
15 years ago
Modestas Vainius 4f3be47179 Build with CTEST_USE_XMLRPC to reenable XMLRPC support in CTest.
15 years ago
Modestas Vainius 7e9387624b Refresh add_libarchive_script.patch, add DEP-3 header.
15 years ago
Kai Wasserbäch 421c05967e Don't Depend on procps on Hurd (in addition to not B-D on it).
15 years ago
Kai Wasserbäch 9a050335e1 Add Findlibarchive.cmake to allow building with system's libarchive.
15 years ago
Kai Wasserbäch aab7e23c14 Don't B-D on procps on all Hurd architectures (hurd-any).
15 years ago
Kai Wasserbäch 2813fce600 Don't B-D on procps on hurd-i386.
15 years ago
Kai Wasserbäch 9aa0377cd2 Use the system libarchive and not the embedded copy.
15 years ago
Modestas Vainius 062b68662d Release to unstable.
15 years ago
Modestas Vainius 013e63c47d Include copyright information for Utilities/xml/* in the debian/copyright.
15 years ago
Modestas Vainius f0a873ac13 Add packaging copyright to debian/copyright.
15 years ago
Modestas Vainius 2b6cff9065 Remove deprecated references to /usr/share/common-licenses/BSD from debian/copyright.
15 years ago
Modestas Vainius 8ca2273454 Bump Standards-Version to 3.9.0.
15 years ago
Modestas Vainius f10ecbd03f New upstream release.
15 years ago
Modestas Vainius 7fb37f9036 Merge branch 'upstream'
15 years ago
Modestas Vainius 3507c5708b Merge branch 'experimental'
15 years ago
Modestas Vainius 2fb50529e6 New upstream closes #560693.
15 years ago
Modestas Vainius 93078db9bb Update patches for new upstream release.
15 years ago
Modestas Vainius e41a7b9007 New upstream release.
15 years ago
Modestas Vainius 1a85a18827 Merge branch 'upstream' into experimental
15 years ago
Kai Wasserbäch be1647b463 Updated header of debian/patches/FindPython_fix_#569321_and_#580503.diff.
15 years ago
Kai Wasserbäch 9b5a41a7c2 Incorporate ideas from Modestas into the Python patch.
15 years ago
Kai Wasserbäch 08958f98ad Expand debian/patches/FindPython_fix_#580503.diff to cover #569321 too.
15 years ago
Kai Wasserbäch 6ae03be2f1 debian/patches/FindPython_fix_#580503.diff: Added. (Closes: #580503)
15 years ago
Modestas Vainius a51820735d Release to unstable.
15 years ago
Modestas Vainius c65635d490 Improve changelog message.
15 years ago
Modestas Vainius 507469c7bf FindJNI patch: avoid using trick bits of cmake IF() command syntax.
15 years ago
Modestas Vainius 25b74ab247 Add procps to Build-Depends and cmake Depends.
15 years ago
Modestas Vainius 87f4187d0a Use dpkg-mergechangelogs.
15 years ago
Modestas Vainius c18e37da85 Remove useless changelog line.
15 years ago
Kai Wasserbäch 83c34b5d00 debian/control: added myself to Uploaders with Modestas' permission.
15 years ago
Modestas Vainius b679dbe50e Release to unstable.
15 years ago
Modestas Vainius 86797b8024 Add cpack_installed_size.diff to fix generation of Installed-Size field for deb packages.
15 years ago
Modestas Vainius 9b4acc149d Further improve FinJNI.cmake. This should fix some inconsistencies on s390.
15 years ago
Modestas Vainius 91c0433883 New changelog entry.
15 years ago
Modestas Vainius da740086e0 Release to unstable.
15 years ago
Modestas Vainius f87fbec650 Rename (to kFreeBSD_Hurd_fixes.diff) and improve kFreeBSD_fixes.diff to fix FTBFS on GNU/Hurd as well.
15 years ago
Modestas Vainius 65cfd99254 Add gcc and make to cmake Suggests (Closes: #577516).
15 years ago
Modestas Vainius 5dc3acd737 Add FindGTK2_pangommconfig.diff patch.
15 years ago
Modestas Vainius 351ff1be0f Improve FindJNI_fix_libarch_determination.diff patch.
15 years ago
Modestas Vainius e9e236776c Rewrite _java_libarch determination code in FindJNI.cmake (based on new code in OpenJDK 1.6.0_18).
15 years ago
Modestas Vainius 330dd330ba New changelog entry.
15 years ago
Modestas Vainius fbe3d22bec Release to unstable
15 years ago
Modestas Vainius 9a1918d166 Add kFreeBSD_fixes.diff patch to fix FTBFS on kfreebsd-*
15 years ago
Modestas Vainius 8baf7dfb9b New changelog entry.
15 years ago
Modestas Vainius 891d43093a Release to unstable.
15 years ago
Modestas Vainius 562ef85d0f Change my email address to modax@debian.org.
15 years ago
Modestas Vainius b4efd2cbb7 Update Standards-Version to 3.8.4: no changes needed.
15 years ago
Modestas Vainius b1347db5cf Update install files.
15 years ago
Modestas Vainius 6aa49d1ab6 Forcefully disable ccache for tests.
15 years ago
Modestas Vainius 27b3dd912d Update debian/patches.
15 years ago
Modestas Vainius ab1c813d3f New upstream release.
15 years ago
Modestas Vainius 43766a40fb Merge branch 'upstream'
15 years ago
Modestas Vainius f7c12c50a6 Enable building in parallel (--parallel).
15 years ago
Modestas Vainius 9260bad776 Remove DMUA entry from debian/control. No longer needed.
15 years ago
Modestas Vainius 0a7e832038 New changelog entry.
15 years ago
Modestas Vainius 96e03f5dfb Skip the unpredictably long and rather pointless BootstrapTest (Closes: #558001).
15 years ago
Modestas Vainius 8e9e113728 New changelog entry
15 years ago
Modestas Vainius 3ac3163ceb Release to unstable.
15 years ago
Modestas Vainius b157013310 It should build on hppa now (Closes: #556653). So urgency=medium.
15 years ago
Modestas Vainius c51514dbe7 Better wording in changelog.
15 years ago
Modestas Vainius 3116cd3bbc Remove obsolete hack for parisc64 from debian/rules.
15 years ago
Modestas Vainius ba67bab3be Reformat changelog.
15 years ago
Modestas Vainius ec4053983e Revert "Build with g++-4.4 on hppa."
15 years ago
Modestas Vainius 35ca1848e4 Update bootstraptest_increase_timeout.diff with upstream version.
15 years ago
Modestas Vainius 05d008ccad New changelog entry.
15 years ago
Modestas Vainius 2e31b97599 Release to unstable.
15 years ago
Modestas Vainius be352cd544 Urgency medium due to likely RC bug fix (#556653).
15 years ago
Modestas Vainius c8c01e62b6 Build with g++-4.4 on hppa.
15 years ago
Modestas Vainius 46e2dd5af8 Fix GNU.cmake file used on Hurd.
15 years ago
Modestas Vainius 0e1661310d Increase timeout of BootstrapTest to 2 hours.
15 years ago
Modestas Vainius b20572bded Set HOME to current build directory when running test suite.
15 years ago
Modestas Vainius 25137d0575 New changelog entry.
15 years ago
Modestas Vainius 0582a4933c Release to experimental.
15 years ago
Modestas Vainius 1bdd159196 Reenable test suite.
15 years ago
Modestas Vainius d5875dfb8c New changelog entry.
15 years ago
Modestas Vainius 9cfcf4c413 Release to unstable.
15 years ago
Modestas Vainius ac58c4012b Disable test suite for now.
15 years ago
Modestas Vainius a06d20c9d7 New upstream release.
15 years ago
Modestas Vainius 1c4693c302 Merge branch 'upstream'
15 years ago
Modestas Vainius 38e5302dc6 Release to experimental.
15 years ago
Modestas Vainius 60377b242d Add myself as Maintainer, A. Maitland Bottoms as Uploader (with permission).
15 years ago
Modestas Vainius 5041c90525 Switch debian/rules to use dh.
15 years ago
Modestas Vainius 1f72aa40e1 New upstream development release.
15 years ago
Modestas Vainius a825841a12 Merge branch 'upstream' into experimental
15 years ago
Modestas Vainius 99d7103d3e Release to experimental.
15 years ago
Modestas Vainius fac301ca91 Reformat Build-Depends line.
15 years ago
Modestas Vainius 3c08c66cc3 Drop tcp8.4 from build depends. Not needed.
15 years ago
Modestas Vainius 6f4e84221b Build with CMAKE_USE_RELATIVE_PATHS=ON.
15 years ago
Modestas Vainius 491878bef6 Switch to dpkg-source format 3.0 (quilt).
15 years ago
Modestas Vainius 7fd9ec147f New upstream development release.
15 years ago
Modestas Vainius 1307deacd9 Merge branch 'upstream' into experimental
15 years ago
Modestas Vainius c636890cec Release to experimental.
15 years ago
Modestas Vainius 9e3a16bc05 cmake-curses-gui should not provide cmake-gui.
15 years ago
Modestas Vainius d8fcc4f4dc Update to new upstream release, drop all patches.
15 years ago
Modestas Vainius 1bac40f3e7 Merge branch 'upstream' into experimental
15 years ago
Modestas Vainius f83f673a65 Add Closes for #528530.
15 years ago
Modestas Vainius 75a361fded Remove obsolete README.Debian.
15 years ago
Modestas Vainius c745f424ca Bump revision to 2.8~rc2-0r3.
15 years ago
Modestas Vainius 579dddb1fe Fixes a couple issues with scripts from Modules/ and Templates/
15 years ago
Modestas Vainius 92f9902681 Remove deprecated Enconding field from CMake.desktop.
15 years ago
Modestas Vainius 4f28604338 Readd manpage_friendly_docs.diff with new fixes.
15 years ago
Modestas Vainius 558841b27a Fix lintian override cmake-data: extra-license-file.
15 years ago
Modestas Vainius a1703edf13 Call dpkg with --print-architecture.
15 years ago
Modestas Vainius 2975f67740 Bump revision.
15 years ago
Modestas Vainius b2587717b5 Fix syntax error in kfreebsd-Platform.diff patch.
15 years ago
Modestas Vainius d5f8c4f99b Update install files.
15 years ago
Modestas Vainius 20dcca63ad Use _PREFIX in kfreebsd-Platform.diff patch.
15 years ago
Modestas Vainius b152287dce Update patches.
15 years ago
Modestas Vainius ac9aeb918f New upstream development release.
15 years ago
Modestas Vainius a5b7b94ef4 Merge branch 'upstream' into experimental
15 years ago
Modestas Vainius 68100cdca5 Release to unstable.
15 years ago
Modestas Vainius d7a058d647 Make cmake-curses-gui and cmake-qt-gui packages provide 'cmake-gui'.
15 years ago
Modestas Vainius 145665d7f9 More copyright updates.
15 years ago
Modestas Vainius dfdfb1a584 Update debian/copyright with more details.
15 years ago
Modestas Vainius 28b71b44ee FindVTK.cmake: support VTK 5.4.
15 years ago
Modestas Vainius 92419bfe3b FindJNI.cmake: find java library directory on all linux arches.
15 years ago
Modestas Vainius 8ac1bb6eb8 Remove Pierre Habouzit from Uploaders by his own request.
15 years ago
Modestas Vainius 64db6e37ac Improve debian/watch.
15 years ago
Modestas Vainius 9d3f3805e3 Add ${misc:Depends} to Depends fields of packages.
16 years ago
Modestas Vainius 2e53735663 Bump Standards-Version to 3.8.3, no changes needed.
16 years ago
Modestas Vainius 1be1ea8a45 Open changelog for the next release.
16 years ago
Modestas Vainius f4cb105d9e Release to unstable.
16 years ago
Modestas Vainius 8a04ff5d82 Support perl 5.10 support in FindPerlLibs.cmake
16 years ago
Modestas Vainius 4bc798c21f Support dpkg-buildpackage -jX parallel DEB_BUILD_OPTIONS.
16 years ago
Modestas Vainius 857598fc78 Use quilt.make rather than custom quilt patch implementation.
16 years ago
Modestas Vainius a58c400f44 Merge in 2.6.0-6 debian/changelog.
16 years ago
Modestas Vainius fac340bd9e Fix bashisms in CMake scripts (Closes: #530056).
16 years ago
Modestas Vainius e22f8f344b Prefer *-qt3 binary names to generic ones in FinqQt3.cmake.
16 years ago
Modestas Vainius dab02991b2 Update manpage_friendly_docs.diff to fix lintian warnings.
16 years ago
Modestas Vainius 804005a79c Prepare for upload to unstable.
16 years ago
Modestas Vainius c14754bf86 Remove deprecated dh_desktop from debian/rules.
16 years ago
Modestas Vainius 502806b74c Bump Standards-Version.
16 years ago
Modestas Vainius 559249fc3e Resync patches.
16 years ago
Modestas Vainius 92478967d6 New upstream release (2.6.4).
16 years ago
Modestas Vainius 36827fe8a6 Merge branch 'upstream'
16 years ago
Modestas Vainius bfbf86f956 Forgot to commit 2.6.3-2 upload to unstable.
16 years ago
Modestas Vainius 8b90e5a9a4 Remove reinstate-arm.diff, merged upstream.
16 years ago
Modestas Vainius 4ec47262ef Remove do-not-use-lib64.diff.
16 years ago
Modestas Vainius 55b90942c7 Fix installation of lintian overrides.
16 years ago
Modestas Vainius 4a17e859f2 Fixup some docs to make them manpage friendly.
16 years ago
Modestas Vainius 7c059fd175 Fix binary-indep target.
16 years ago
Modestas Vainius 1dc6f58d1b Install cmake-gui docs.
16 years ago
Modestas Vainius b80645fe15 Try building cmake 2.6.3-1
16 years ago
Modestas Vainius a71d619a5f Merge branch 'upstream'
16 years ago
Modestas Vainius 70ea4a6e63 Call dh_desktop in the install target.
16 years ago
Modestas Vainius 1b204b6933 Use dh_prep instead of deprecated dh_clean -k
16 years ago
Modestas Vainius dd7382a109 Merge commit 'master/2.6.2-4'
16 years ago
Modestas Vainius 7475f44346 Release to unstable.
16 years ago
Modestas Vainius 334aa05c68 Update debian/patches
16 years ago
Modestas Vainius 644048f7a8 Merge branch 'upstream'
16 years ago
Modestas Vainius 6b90ded273 Release -3 to experimental.
16 years ago
Modestas Vainius 0decdee3c8 Versionize libqt4-dev build depend as (>= 4.4.0).
16 years ago
Modestas Vainius 58ae442c9e Add support for <prefix>/lib/cmake/ search paths to find_package()
16 years ago
Modestas Vainius c750b4cc0b Fix typo in cmake-qt-gui description.
16 years ago
Modestas Vainius c0e41a67ec 2.6.2-2 should be ready for experimental upload now.
16 years ago
Modestas Vainius 46efca79fe Update debian/copyright and debian/changelog.
16 years ago
Modestas Vainius 2b714f9bde Remove useless ${shlibs:Depends} from cmake-data Depends.
16 years ago
Modestas Vainius a90b4e05dd Install ccmake docs to /usr/share/doc/cmake-curses-gui
16 years ago
Modestas Vainius 9a610a7a96 Clean up docs.
16 years ago
Modestas Vainius 28d07f9679 Drop left-over debian/doxygen.config
16 years ago
Modestas Vainius c4cd4b365a Use non-localized date in the cmake-gui manual page.
16 years ago
Modestas Vainius 8f47c41f85 Dynamically link against system libraries (security).
16 years ago
Modestas Vainius 9e85fc7746 Split cmake into more packages
16 years ago
Modestas Vainius c3e85fe2a8 Use cat instead of echo to output the message.
16 years ago
Modestas Vainius 94be7b2326 Rewrite cache init code + build verbosity.
16 years ago
Modestas Vainius f6096a8ba5 Merge branch 'upstream'
16 years ago
Modestas Vainius fce6357ff4 Try sorting out emacsen mess once again (Closes: #481391).
16 years ago
Modestas Vainius 76ff64d3c7 Fix FindSQL include in the MPEG2 module.
16 years ago
Modestas Vainius b164021d95 Add patch to prefer lupdate-qt4 to lupdate and lrelease to lrelease-qt4
16 years ago
Modestas Vainius 1fcf79a251 Add Vcs fields.
16 years ago
Modestas Vainius 28a7693d0a Make quilt b-d unversioned again.
16 years ago
Modestas Vainius 44d57e49f5 cmake 2.6.2-1 targets experimental.
16 years ago
Modestas Vainius c0f9e81925 CMake 2.6.2 packaging
16 years ago
Modestas Vainius e1924f08a4 CMake 2.6.2 packaging (p1): delete/rename files.
16 years ago
Modestas Vainius b4cbbe68d0 Merge branch 'upstream'
16 years ago
Pierre Habouzit 6b0ed18677 import cmake 2.6.0-5
16 years ago

@ -2,6 +2,7 @@
Checks: "-*,\
bugprone-*,\
-bugprone-assignment-in-if-condition,\
-bugprone-crtp-constructor-accessibility,\
-bugprone-easily-swappable-parameters,\
-bugprone-empty-catch,\
-bugprone-implicit-widening-of-multiplication-result,\
@ -10,19 +11,23 @@ bugprone-*,\
-bugprone-misplaced-widening-cast,\
-bugprone-multi-level-implicit-pointer-conversion,\
-bugprone-narrowing-conversions,\
-bugprone-return-const-ref-from-parameter,\
-bugprone-suspicious-stringview-data-usage,\
-bugprone-switch-missing-default-case,\
-bugprone-too-small-loop-variable,\
-bugprone-unchecked-optional-access,\
-bugprone-unused-local-non-trivial-variable,\
-bugprone-unused-return-value,\
-bugprone-use-after-move,\
misc-*,\
-misc-confusable-identifiers,\
-misc-const-correctness,\
-misc-include-cleaner,\
-misc-no-recursion,\
-misc-non-private-member-variables-in-classes,\
-misc-no-recursion,\
-misc-static-assert,\
-misc-use-anonymous-namespace,\
-misc-use-internal-linkage,\
modernize-*,\
-modernize-avoid-c-arrays,\
-modernize-macro-to-enum,\
@ -36,13 +41,14 @@ modernize-*,\
performance-*,\
-performance-avoid-endl,\
-performance-enum-size,\
-performance-inefficient-vector-operation,\
-performance-noexcept-swap,\
-performance-unnecessary-copy-initialization,\
-performance-unnecessary-value-param,\
readability-*,\
-readability-avoid-nested-conditional-operator,\
-readability-avoid-return-with-void-value,\
-readability-avoid-unconditional-preprocessor-if,\
-readability-convert-member-functions-to-static,\
-readability-enum-initial-value,\
-readability-function-cognitive-complexity,\
-readability-function-size,\
-readability-identifier-length,\
@ -51,6 +57,7 @@ readability-*,\
-readability-inconsistent-declaration-parameter-name,\
-readability-magic-numbers,\
-readability-make-member-function-const,\
-readability-math-missing-parentheses,\
-readability-named-parameter,\
-readability-redundant-casting,\
-readability-redundant-declaration,\
@ -61,6 +68,7 @@ readability-*,\
-readability-static-accessed-through-instance,\
-readability-suspicious-call-argument,\
-readability-uppercase-literal-suffix,\
-readability-use-std-min-max,\
cmake-*,\
-cmake-ostringstream-use-cmstrcat,\
-cmake-string-concatenation-use-cmstrcat,\

@ -173,7 +173,9 @@ _cmake()
printf -v quoted %q "$cur"
if [[ ! "${IFS}${COMP_WORDS[*]}${IFS}" =~ "${IFS}--build${IFS}" ]]; then
COMPREPLY=( $( compgen -W "configure${IFS}build${IFS}test${IFS}all" -- "$quoted" ) )
COMPREPLY=(
$( compgen -W "configure${IFS}build${IFS}package${IFS}test${IFS}workflow${IFS}all" -- "$quoted" )
)
fi
return
;;
@ -182,12 +184,16 @@ _cmake()
local quoted
printf -v quoted %q "$cur"
local build_or_configure="configure"
if [[ "${IFS}${COMP_WORDS[*]}${IFS}" =~ "${IFS}--build${IFS}" ]]; then
build_or_configure="build"
local preset_type
if [[ "${IFS}${COMP_WORDS[*]}${IFS}" =~ "${IFS}--workflow${IFS}" ]]; then
preset_type="workflow"
elif [[ "${IFS}${COMP_WORDS[*]}${IFS}" =~ "${IFS}--build${IFS}" ]]; then
preset_type="build"
else
preset_type="configure"
fi
local presets=$( cmake --list-presets="$build_or_configure" 2>/dev/null |
local presets=$( cmake --list-presets="$preset_type" 2>/dev/null |
grep -o "^ \".*\"" | sed \
-e "s/^ //g" \
-e "s/\"//g" \
@ -195,6 +201,24 @@ _cmake()
COMPREPLY=( $( compgen -W "$presets" -- "$quoted" ) )
return
;;
--workflow)
local quoted
printf -v quoted %q "$cur"
# Options allowed right after `--workflow`
local workflow_options='--preset --list-presets --fresh'
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W "$workflow_options" -- "$quoted" ) )
else
local presets=$( cmake --list-presets=workflow 2>/dev/null |
grep -o "^ \".*\"" | sed \
-e "s/^ //g" \
-e "s/\"//g" \
-e 's/ /\\\\ /g' )
COMPREPLY=( $( compgen -W "$presets $workflow_options" -- "$quoted" ) )
fi
return
;;
esac
if ($is_old_completion || $is_init_completion); then
@ -204,6 +228,8 @@ _cmake()
fi
if [[ "$cur" == -* ]]; then
# FIXME(#26100): `cmake --help` is missing some options and does not
# have any mode-specific options like `cmake --build`'s `--config`.
COMPREPLY=( $(compgen -W '$( _parse_help "$1" --help )' -- ${cur}) )
[[ $COMPREPLY == *= ]] && compopt -o nospace
[[ $COMPREPLY ]] && return

@ -183,7 +183,7 @@ set the path with these commands:
)
(defun cmake-point-in-indendation ()
(string-match "^[ \\t]*$" (buffer-substring (point-at-bol) (point))))
(string-match "^[ \\t]*$" (buffer-substring (line-beginning-position) (point))))
(defun cmake-indent-line-to (column)
"Indent the current line to COLUMN.

@ -416,6 +416,7 @@ syn keyword cmakeProperty contained
\ VS_DOTNET_STARTUP_OBJECT
\ VS_DOTNET_TARGET_FRAMEWORK_VERSION
\ VS_DPI_AWARE
\ VS_FRAMEWORK_REFERENCES
\ VS_GLOBAL_KEYWORD
\ VS_GLOBAL_PROJECT_TYPES
\ VS_GLOBAL_ROOTNAMESPACE

@ -1,7 +1,7 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
cmake_minimum_required(VERSION 3.13...3.28 FATAL_ERROR)
cmake_minimum_required(VERSION 3.13...3.29 FATAL_ERROR)
set(CMAKE_USER_MAKE_RULES_OVERRIDE_C ${CMAKE_CURRENT_SOURCE_DIR}/Source/Modules/OverrideC.cmake)
set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX ${CMAKE_CURRENT_SOURCE_DIR}/Source/Modules/OverrideCXX.cmake)
@ -267,9 +267,7 @@ macro(CMAKE_SETUP_TESTING)
endif()
# configure some files for testing
configure_file(Templates/CTestScript.cmake.in CTestScript.cmake @ONLY)
configure_file(Tests/.NoDartCoverage Tests/.NoDartCoverage)
configure_file(Tests/.NoDartCoverage Modules/.NoDartCoverage)
configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY)
endmacro()

@ -26,7 +26,8 @@ To contribute patches:
#. Fork the upstream `CMake Repository`_ into a personal account.
#. Run `Utilities/SetupForDevelopment.sh`_ for local git configuration.
#. See `Building CMake`_ for building CMake locally.
#. See the `CMake Source Code Guide`_ for coding guidelines.
#. See the `CMake Source Code Guide`_ for coding guidelines
and the `CMake Testing Guide`_ for testing instructions.
#. Create a topic branch named suitably for your work.
Base all new work on the upstream ``master`` branch.
Base work on the upstream ``release`` branch only if it fixes a
@ -49,6 +50,7 @@ The merge request will enter the `CMake Review Process`_ for consideration.
.. _`Utilities/SetupForDevelopment.sh`: Utilities/SetupForDevelopment.sh
.. _`Building CMake`: README.rst#building-cmake
.. _`CMake Source Code Guide`: Help/dev/source.rst
.. _`CMake Testing Guide`: Help/dev/testing.rst
.. _`commit messages`: Help/dev/review.rst#commit-messages
.. _`CMake Review Process`: Help/dev/review.rst
@ -61,10 +63,10 @@ drive testing and submit results to the `CMake CDash Page`_. Anyone is
welcome to provide testing machines in order to help keep support for their
platforms working.
See documentation on `CMake Testing Process`_ for more information.
See documentation on `CMake Integration Testing`_ for more information.
.. _`CMake CDash Page`: https://open.cdash.org/index.php?project=CMake
.. _`CMake Testing Process`: Help/dev/testing.rst
.. _`CMake Integration Testing`: Help/dev/integration-testing.rst
License
=======

@ -86,7 +86,7 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
"[0-9]+ Warning\\(s\\) detected" # SunPro
# Ignore false positive on `cm::optional` usage from GCC
"cmFileCommand.cxx:[0-9]*:[0-9]*: warning: '\\*\\(\\(void\\*\\)& tls_verify \\+2\\)' may be used uninitialized in this function \\[-Wmaybe-uninitialized\\]"
"cmFileCommand.cxx:[0-9]*:[0-9]*: warning: '\\*\\(\\(void\\*\\)& tlsVerifyOpt \\+2\\)' may be used uninitialized in this function \\[-Wmaybe-uninitialized\\]"
"cmGlobalNinjaGenerator.cxx:[0-9]*:[0-9]*: warning: '.*cm::optional<CxxModuleMapFormat>::_mem\\)\\)' may be used uninitialized \\[-Wmaybe-uninitialized\\]"
"cmGlobalNinjaGenerator.cxx:[0-9]*:[0-9]*: note: '.*cm::optional<CxxModuleMapFormat>::_mem\\)\\)' was declared here"
"cmGlobalNinjaGenerator.cxx:[0-9]*:[0-9]*: warning: '\\*\\(\\(void\\*\\)& modmap_fmt \\+4\\)' may be used uninitialized in this function \\[-Wmaybe-uninitialized\\]"
@ -101,6 +101,7 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
"libuv/src/.*:[0-9]+:[0-9]+: warning: 1st function call argument is an uninitialized value"
"libuv/src/.*:[0-9]+:[0-9]+: warning: Dereference of null pointer"
"libuv/src/.*:[0-9]+:[0-9]+: warning: The left operand of '[^']+' is a garbage value"
"libuv/src/.*:[0-9]+:[0-9]+: warning: Value of '[^']+' was not checked and may be overwritten by function '[^']+'"
"nghttp2/lib/.*:[0-9]+:[0-9]+: warning: Access to field '[^']+' results in a dereference of a null pointer"
"nghttp2/lib/.*:[0-9]+:[0-9]+: warning: Dereference of null pointer"
"nghttp2/lib/.*:[0-9]+:[0-9]+: warning: Value stored to '[^']+' is never read"

@ -37,7 +37,13 @@ elseif(_CLANG_MSVC_WINDOWS AND "x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUA
string(APPEND CMAKE_EXE_LINKER_FLAGS " -Xlinker -stack:20000000")
endif()
#silence duplicate symbol warnings on AIX
# Silence "Additional optimization may be attained by recompiling and
# specifying MAXMEM option" warning on XLC (AIX)
if(CMAKE_CXX_COMPILER_ID MATCHES "^(XL|XLClang)$")
string(APPEND CMAKE_CXX_FLAGS " -qmaxmem=-1")
endif()
# Silence duplicate symbol warnings on AIX
if(CMAKE_SYSTEM_NAME MATCHES "AIX")
if(NOT CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -bhalt:5 ")

@ -1,3 +1,11 @@
.. versionchanged:: 3.31
Compatibility with versions of CMake older than 3.10 is deprecated.
Calls to :command:`cmake_minimum_required(VERSION)` or
:command:`cmake_policy(VERSION)` that do not specify at least
3.10 as their policy version (optionally via ``...<max>``)
will produce a deprecation warning in CMake 3.31 and above.
.. versionchanged:: 3.27
Compatibility with versions of CMake older than 3.5 is deprecated.

@ -5,6 +5,8 @@ Add a custom build rule to the generated build system.
There are two main signatures for ``add_custom_command``.
.. _`add_custom_command(OUTPUT)`:
Generating Files
^^^^^^^^^^^^^^^^
@ -26,6 +28,7 @@ The first signature is for adding a custom command to produce an output:
[JOB_POOL job_pool]
[JOB_SERVER_AWARE <bool>]
[VERBATIM] [APPEND] [USES_TERMINAL]
[CODEGEN]
[COMMAND_EXPAND_LISTS]
[DEPENDS_EXPLICIT_ONLY])
@ -53,7 +56,7 @@ The options are:
the appended commands and dependencies apply to all configurations.
The ``COMMENT``, ``MAIN_DEPENDENCY``, and ``WORKING_DIRECTORY``
options are currently ignored when APPEND is given, but may be
options are currently ignored when ``APPEND`` is given, but may be
used in the future.
``BYPRODUCTS``
@ -81,6 +84,10 @@ The options are:
The :ref:`Makefile Generators` will remove ``BYPRODUCTS`` and other
:prop_sf:`GENERATED` files during ``make clean``.
This keyword cannot be used with ``APPEND`` (see policy :policy:`CMP0175`).
All byproducts must be set in the first call to
``add_custom_command(OUTPUT...)`` for the output files.
.. versionadded:: 3.20
Arguments to ``BYPRODUCTS`` may use a restricted set of
:manual:`generator expressions <cmake-generator-expressions(7)>`.
@ -94,11 +101,15 @@ The options are:
``COMMAND``
Specify the command-line(s) to execute at build time.
If more than one ``COMMAND`` is specified they will be executed in order,
At least one ``COMMAND`` would normally be given, but certain patterns
may omit it, such as adding commands in separate calls using `APPEND`.
If more than one ``COMMAND`` is specified, they will be executed in order,
but *not* necessarily composed into a stateful shell or batch script.
(To run a full script, use the :command:`configure_file` command or the
To run a full script, use the :command:`configure_file` command or the
:command:`file(GENERATE)` command to create it, and then specify
a ``COMMAND`` to launch it.)
a ``COMMAND`` to launch it.
The optional ``ARGS`` argument is for backward compatibility and
will be ignored.
@ -143,7 +154,8 @@ The options are:
``COMMENT``
Display the given message before the commands are executed at
build time.
build time. This will be ignored if ``APPEND`` is given, although a future
version may use it.
.. versionadded:: 3.26
Arguments to ``COMMENT`` may use
@ -203,6 +215,26 @@ The options are:
``${CC} "-I$<JOIN:$<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>,;-I>" foo.cc``
to be properly expanded.
This keyword cannot be used with ``APPEND`` (see policy :policy:`CMP0175`).
If the appended commands need this option to be set, it must be set on the
first call to ``add_custom_command(OUTPUT...)`` for the output files.
``CODEGEN``
.. versionadded:: 3.31
Adds the custom command to a global ``codegen`` target that can be
used to execute the custom command while avoiding the majority of the
build graph.
This option is supported only by :ref:`Ninja Generators` and
:ref:`Makefile Generators`, and is ignored by other generators.
Furthermore, this option is allowed only if policy :policy:`CMP0171`
is set to ``NEW``.
This keyword cannot be used with ``APPEND`` (see policy :policy:`CMP0175`).
It can only be set on the first call to ``add_custom_command(OUTPUT...)``
for the output files.
``IMPLICIT_DEPENDS``
Request scanning of implicit dependencies of an input file.
The language given specifies the programming language whose
@ -227,6 +259,10 @@ The options are:
Using a pool that is not defined by :prop_gbl:`JOB_POOLS` causes
an error by ninja at build time.
This keyword cannot be used with ``APPEND`` (see policy :policy:`CMP0175`).
Job pools can only be specified in the first call to
``add_custom_command(OUTPUT...)`` for the output files.
``JOB_SERVER_AWARE``
.. versionadded:: 3.28
@ -238,6 +274,10 @@ The options are:
This option is silently ignored by other generators.
This keyword cannot be used with ``APPEND`` (see policy :policy:`CMP0175`).
Job server awareness can only be specified in the first call to
``add_custom_command(OUTPUT...)`` for the output files.
.. _`GNU Make Documentation`: https://www.gnu.org/software/make/manual/html_node/MAKE-Variable.html
``MAIN_DEPENDENCY``
@ -249,6 +289,9 @@ The options are:
library or an executable) counts as an implicit main dependency which
gets silently overwritten by a custom command specification.
This option is currently ignored if ``APPEND`` is given, but a future
version may use it.
``OUTPUT``
Specify the output files the command is expected to produce.
Each output file will be marked with the :prop_sf:`GENERATED`
@ -293,6 +336,10 @@ The options are:
With the :generator:`Ninja` generator, this places the command in
the ``console`` :prop_gbl:`pool <JOB_POOLS>`.
This keyword cannot be used with ``APPEND`` (see policy :policy:`CMP0175`).
If the appended commands need access to the terminal, it must be set on
the first call to ``add_custom_command(OUTPUT...)`` for the output files.
``VERBATIM``
All arguments to the commands will be escaped properly for the
build tool so that the invoked command receives each argument
@ -303,11 +350,18 @@ The options are:
is platform specific because there is no protection of
tool-specific special characters.
This keyword cannot be used with ``APPEND`` (see policy :policy:`CMP0175`).
If the appended commands need to be treated as ``VERBATIM``, it must be set
on the first call to ``add_custom_command(OUTPUT...)`` for the output files.
``WORKING_DIRECTORY``
Execute the command with the given current working directory.
If it is a relative path it will be interpreted relative to the
If it is a relative path, it will be interpreted relative to the
build tree directory corresponding to the current source directory.
This option is currently ignored if ``APPEND`` is given, but a future
version may use it.
.. versionadded:: 3.13
Arguments to ``WORKING_DIRECTORY`` may use
:manual:`generator expressions <cmake-generator-expressions(7)>`.
@ -393,6 +447,10 @@ The options are:
:ref:`Makefile Generators`, :ref:`Visual Studio Generators`,
and the :generator:`Xcode` generator.
This keyword cannot be used with ``APPEND`` (see policy :policy:`CMP0175`).
Depfiles can only be set on the first call to
``add_custom_command(OUTPUT...)`` for the output files.
``DEPENDS_EXPLICIT_ONLY``
.. versionadded:: 3.27
@ -408,6 +466,10 @@ The options are:
This option can be enabled on all custom commands by setting
:variable:`CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY` to ``ON``.
This keyword cannot be used with ``APPEND`` (see policy :policy:`CMP0175`).
It can only be set on the first call to ``add_custom_command(OUTPUT...)``
for the output files.
Only the :ref:`Ninja Generators` actually use this information to remove
unnecessary implicit dependencies.
@ -454,6 +516,25 @@ will re-run whenever ``in.txt`` changes.
where ``<config>`` is the build configuration, and then compile the generated
source as part of a library.
.. versionadded:: 3.31
Use the ``CODEGEN`` option to add a custom command's outputs to the builtin
``codegen`` target. This is useful to make generated code available for
static analysis without building the entire project. For example:
.. code-block:: cmake
add_executable(someTool someTool.c)
add_custom_command(
OUTPUT out.c
COMMAND someTool -o out.c
CODEGEN)
add_library(myLib out.c)
A user may build the ``codegen`` target to generate ``out.c``.
``someTool`` is built as dependency, but ``myLib`` is not built at all.
Example: Generating Files for Multiple Targets
""""""""""""""""""""""""""""""""""""""""""""""
@ -518,7 +599,8 @@ target is already built, the command will not execute.
[WORKING_DIRECTORY dir]
[COMMENT comment]
[VERBATIM]
[COMMAND_EXPAND_LISTS])
[COMMAND_EXPAND_LISTS]
[USES_TERMINAL])
This defines a new command that will be associated with building the
specified ``<target>``. The ``<target>`` must be defined in the current
@ -543,15 +625,17 @@ of the following is specified:
Run after all other rules within the target have been executed.
Projects should always specify one of the above three keywords when using
the ``TARGET`` form. For backward compatibility reasons, ``POST_BUILD`` is
assumed if no such keyword is given, but projects should explicitly provide
one of the keywords to make clear the behavior they expect.
the ``TARGET`` form. See policy :policy:`CMP0175`.
All other keywords shown in the signature above have the same meaning as they
do for the :command:`add_custom_command(OUTPUT)` form of the command.
At least one ``COMMAND`` must be given, see policy :policy:`CMP0175`.
.. note::
Because generator expressions can be used in custom commands,
it is possible to define ``COMMAND`` lines or whole custom commands
which evaluate to empty strings for certain configurations.
For **Visual Studio 12 2013 (and newer)** generators these command
For :ref:`Visual Studio Generators` these command
lines or custom commands will be omitted for the specific
configuration and no "empty-string-command" will be added.

@ -20,48 +20,49 @@ It processes the arguments given to that macro or function,
and defines a set of variables which hold the values of the
respective options.
The first signature reads processes arguments passed in the ``<args>...``.
The first signature reads arguments passed in the ``<args>...``.
This may be used in either a :command:`macro` or a :command:`function`.
.. versionadded:: 3.7
The ``PARSE_ARGV`` signature is only for use in a :command:`function`
body. In this case the arguments that are parsed come from the
body. In this case, the arguments that are parsed come from the
``ARGV#`` variables of the calling function. The parsing starts with
the ``<N>``-th argument, where ``<N>`` is an unsigned integer.
This allows for the values to have special characters like ``;`` in them.
The ``<options>`` argument contains all options for the respective macro,
i.e. keywords which can be used when calling the macro without any value
following, like e.g. the ``OPTIONAL`` keyword of the :command:`install`
command.
The ``<options>`` argument contains all options for the respective function
or macro. These are keywords that have no value following them, like the
``OPTIONAL`` keyword of the :command:`install` command.
The ``<one_value_keywords>`` argument contains all keywords for this macro
which are followed by one value, like e.g. ``DESTINATION`` keyword of the
:command:`install` command.
The ``<one_value_keywords>`` argument contains all keywords for this function
or macro which are followed by one value, like the ``DESTINATION`` keyword of
the :command:`install` command.
The ``<multi_value_keywords>`` argument contains all keywords for this
macro which can be followed by more than one value, like e.g. the
function or macro which can be followed by more than one value, like the
``TARGETS`` or ``FILES`` keywords of the :command:`install` command.
.. versionchanged:: 3.5
All keywords shall be unique. I.e. every keyword shall only be specified
once in either ``<options>``, ``<one_value_keywords>`` or
All keywords must be unique. Each keyword can only be specified
once in any of the ``<options>``, ``<one_value_keywords>``, or
``<multi_value_keywords>``. A warning will be emitted if uniqueness is
violated.
When done, ``cmake_parse_arguments`` will consider for each of the
keywords listed in ``<options>``, ``<one_value_keywords>`` and
``<multi_value_keywords>`` a variable composed of the given ``<prefix>``
followed by ``"_"`` and the name of the respective keyword. These
variables will then hold the respective value from the argument list
or be undefined if the associated option could not be found.
For the ``<options>`` keywords, these will always be defined,
to ``TRUE`` or ``FALSE``, whether the option is in the argument list or not.
keywords listed in ``<options>``, ``<one_value_keywords>``, and
``<multi_value_keywords>``, a variable composed of the given ``<prefix>``
followed by ``"_"`` and the name of the respective keyword. For
``<one_value_keywords>`` and ``<multi_value_keywords>``, these variables
will then hold the respective value(s) from the argument list, or be undefined
if the associated keyword was not given (policy :policy:`CMP0174` can also
affect the behavior for ``<one_value_keywords>``). For the ``<options>``
keywords, these variables will always be defined, and they will be set to
``TRUE`` if the keyword is present, or ``FALSE`` if it is not.
All remaining arguments are collected in a variable
``<prefix>_UNPARSED_ARGUMENTS`` that will be undefined if all arguments
were recognized. This can be checked afterwards to see
whether your macro was called with unrecognized parameters.
whether your macro or function was called with unrecognized parameters.
.. versionadded:: 3.15
``<one_value_keywords>`` and ``<multi_value_keywords>`` that were given no
@ -70,8 +71,47 @@ whether your macro was called with unrecognized parameters.
received values. This can be checked to see if there were keywords without
any values given.
Consider the following example macro, ``my_install()``, which takes similar
arguments to the real :command:`install` command:
.. versionchanged:: 3.31
If a ``<one_value_keyword>`` is followed by an empty string as its value,
policy :policy:`CMP0174` controls whether a corresponding
``<prefix>_<keyword>`` variable is defined or not.
Choose a ``<prefix>`` carefully to avoid clashing with existing variable names.
When used inside a function, it is usually suitable to use the prefix ``arg``.
There is a very strong convention that all keywords are fully uppercase, so
this prefix results in variables of the form ``arg_SOME_KEYWORD``. This makes
the code more readable, and it minimizes the chance of clashing with cache
variables, which also have a strong convention of being all uppercase.
.. code-block:: cmake
function(my_install)
set(options OPTIONAL FAST)
set(oneValueArgs DESTINATION RENAME)
set(multiValueArgs TARGETS CONFIGURATIONS)
cmake_parse_arguments(PARSE_ARGV 0 arg
"${options}" "${oneValueArgs}" "${multiValueArgs}"
)
# The above will set or unset variables with the following names:
# arg_OPTIONAL
# arg_FAST
# arg_DESTINATION
# arg_RENAME
# arg_TARGETS
# arg_CONFIGURATIONS
#
# The following will also be set or unset:
# arg_UNPARSED_ARGUMENTS
# arg_KEYWORDS_MISSING_VALUES
When used inside a macro, ``arg`` might not be a suitable prefix because the
code will affect the calling scope. If another macro also called in the same
scope were to use ``arg`` in its own call to ``cmake_parse_arguments()``,
and if there are any common keywords between the two macros, the later call's
variables can overwrite or remove those of the earlier macro's call.
Therefore, it is advisable to incorporate something unique from the macro name
in the ``<prefix>``, such as ``arg_lowercase_macro_name``.
.. code-block:: cmake
@ -79,40 +119,63 @@ arguments to the real :command:`install` command:
set(options OPTIONAL FAST)
set(oneValueArgs DESTINATION RENAME)
set(multiValueArgs TARGETS CONFIGURATIONS)
cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN} )
cmake_parse_arguments(arg_my_install
"${options}" "${oneValueArgs}" "${multiValueArgs}"
${ARGN}
)
# ...
endmacro()
macro(my_special_install)
# NOTE: Has the same keywords as my_install()
set(options OPTIONAL FAST)
set(oneValueArgs DESTINATION RENAME)
set(multiValueArgs TARGETS CONFIGURATIONS)
cmake_parse_arguments(arg_my_special_install
"${options}" "${oneValueArgs}" "${multiValueArgs}"
${ARGN}
)
# ...
endmacro()
Assume ``my_install()`` has been called like this:
Suppose the above macros are called one after the other, like so:
.. code-block:: cmake
my_install(TARGETS foo bar DESTINATION bin OPTIONAL blub CONFIGURATIONS)
After the ``cmake_parse_arguments`` call the macro will have set or undefined
the following variables::
MY_INSTALL_OPTIONAL = TRUE
MY_INSTALL_FAST = FALSE # was not used in call to my_install
MY_INSTALL_DESTINATION = "bin"
MY_INSTALL_RENAME <UNDEFINED> # was not used
MY_INSTALL_TARGETS = "foo;bar"
MY_INSTALL_CONFIGURATIONS <UNDEFINED> # was not used
MY_INSTALL_UNPARSED_ARGUMENTS = "blub" # nothing expected after "OPTIONAL"
MY_INSTALL_KEYWORDS_MISSING_VALUES = "CONFIGURATIONS"
# No value for "CONFIGURATIONS" given
You can then continue and process these variables.
Keywords terminate lists of values, e.g. if directly after a
``one_value_keyword`` another recognized keyword follows, this is
interpreted as the beginning of the new option. E.g.
``my_install(TARGETS foo DESTINATION OPTIONAL)`` would result in
``MY_INSTALL_DESTINATION`` set to ``"OPTIONAL"``, but as ``OPTIONAL``
is a keyword itself ``MY_INSTALL_DESTINATION`` will be empty (but added
to ``MY_INSTALL_KEYWORDS_MISSING_VALUES``) and ``MY_INSTALL_OPTIONAL`` will
therefore be set to ``TRUE``.
my_special_install(TARGETS barry DESTINATION sbin RENAME FAST)
After these two calls, the following describes the variables that will be
set or unset::
arg_my_install_OPTIONAL = TRUE
arg_my_install_FAST = FALSE # was not present in call to my_install
arg_my_install_DESTINATION = "bin"
arg_my_install_RENAME <UNSET> # was not present
arg_my_install_TARGETS = "foo;bar"
arg_my_install_CONFIGURATIONS <UNSET> # was not present
arg_my_install_UNPARSED_ARGUMENTS = "blub" # nothing expected after "OPTIONAL"
arg_my_install_KEYWORDS_MISSING_VALUES = "CONFIGURATIONS" # value was missing
arg_my_special_install_OPTIONAL = FALSE # was not present
arg_my_special_install_FAST = TRUE
arg_my_special_install_DESTINATION = "sbin"
arg_my_special_install_RENAME <UNSET> # value was missing
arg_my_special_install_TARGETS = "barry"
arg_my_special_install_CONFIGURATIONS <UNSET> # was not present
arg_my_special_install_UNPARSED_ARGUMENTS <UNSET>
arg_my_special_install_KEYWORDS_MISSING_VALUES = "RENAME"
Keywords terminate lists of values. If a keyword is given directly after a
``<one_value_keyword>``, that preceding ``<one_value_keyword>`` receives no
value and the keyword is added to the ``<prefix>_KEYWORDS_MISSING_VALUES``
variable. In the above example, the call to ``my_special_install()`` contains
the ``RENAME`` keyword immediately followed by the ``FAST`` keyword.
In this case, ``FAST`` terminates processing of the ``RENAME`` keyword.
``arg_my_special_install_FAST`` is set to ``TRUE``,
``arg_my_special_install_RENAME`` is unset, and
``arg_my_special_install_KEYWORDS_MISSING_VALUES`` contains the value
``RENAME``.
See Also
^^^^^^^^

@ -0,0 +1,263 @@
cmake_pkg_config
----------------
.. versionadded:: 3.31
.. only:: html
.. contents::
Process pkg-config format package files.
Synopsis
^^^^^^^^
.. parsed-literal::
cmake_pkg_config(EXTRACT <package> [<version>] [...])
Introduction
^^^^^^^^^^^^
This command generates CMake variables and targets from pkg-config format
package files natively, without needing to invoke or even require the presence
of a pkg-config implementation. A ``<package>`` is either an absolute path to a
package file, or a package name to be searched for using the typical pkg-config
search patterns. The optional ``<version>`` string has the same format and
semantics as a pkg-config style version specifier, with the exception that if
no comparison operator is specified ``=`` is assumed.
.. _`common options`:
There are multiple signatures for this command, and some of the options are
common between them. They are:
``EXACT`` / ``QUIET`` / ``REQUIRED``
The ``EXACT`` option requests that the version string be matched exactly
(including empty string, if no version is provided), overriding the typical
pkg-config version comparison algorithm. This will ignore any comparison
operator attached to the version string.
The ``QUIET`` option disables informational messages, including those
indicating that the package cannot be found if it is not ``REQUIRED``. The
``REQUIRED`` option stops processing with an error message if the package
cannot be found.
``STRICTNESS <mode>``
Specify how strictly the contents of the package files will be verified during
parsing and resolution. An invalid file, under the provided strictness mode,
will cause the command to fail. Possible modes are:
* ``STRICT``: Closely mirrors the behavior of the original FDO pkg-config.
Variables and keywords must be unique. Variables must be defined before
they are used. The Name, Description, and Version keywords must be present.
The overall structure of the file must be valid and parsable.
* ``PERMISSIVE``: Closely mirrors the behavior of the pkgconf implementation.
Duplicate variables are overridden. Duplicate keywords are appended.
Undefined variables resolve to empty strings. The Name, Description, and
Version keywords must be present. The overall structure of the file must be
valid and parsable.
* ``BEST_EFFORT``: Same behavior as ``PERMISSIVE`` with regards to duplicate
or uninitialized variables and keywords, but will not fail under any
conditions. Package files which require BEST_EFFORT will fail validation
under all other major implementations and should be fixed.
The default strictness is ``PERMISSIVE``.
``ENV_MODE``
Specifies which environment variables will be queried when running a given
command. Possible modes are:
* ``FDO``: Queries only the original set of ``PKG_CONFIG_*`` environment
variables used by the freedesktop.org ``pkg-config`` implementation.
* ``PKGCONF``: Queries the more extensive set of environment variables used
by the ``pkgconf`` implementation.
* ``IGNORE``: Ignores the presence, absence, and value of environment
variables entirely. In all cases an environment variable would be queried
its treated as defined, but with a value of empty string for the purpose
of the operation. This does not modify the current environment. For boolean
environment variables, such as ``PKG_CONFIG_ALLOW_*``, this means they are
evaluated as truthy.
``PKG_CONFIG_SYSROOT_PATH`` is a minor exception. When ``ENV_MODE IGNORE``
is used, no root path prepending will occur by default and ``pc_sysrootdir``
remains defaulted to ``/``.
Target-generating subcommands always ignore flag-filtering environment
variables. The default environment mode is ``PKGCONF``.
``PC_LIBDIR <path>...``
Overrides the default search location for package files; also used to derive
the ``pc_path`` package variable.
When this option is not provided, the default library directory is the first
available of the following values:
#. ``CMAKE_PKG_CONFIG_PC_LIB_DIRS``
#. The ``PKG_CONFIG_LIBDIR`` environment variable
#. The output of ``pkg-config --variable pc_path pkg-config``
#. A platform-dependent default value
``PC_PATH <path>...``
Overrides the supplemental package file directories which will be prepended
to the search path; also used to derive the ``pc_path`` package variable.
When this option is not provided, the default paths are the first available of
the following values:
#. ``CMAKE_PKG_CONFIG_PC_PATH``
#. The ``PKG_CONFIG_PATH`` environment variable
#. Empty list
``DISABLE_UNINSTALLED <bool>``
Overrides the search behavior for "uninstalled" package files. These are
package files with an "-uninstalled" suffix which describe packages integrated
directly from a build tree.
Normally such package files have higher priority than "installed" packages.
When ``DISABLE_UNINSTALLED`` is true, searching for "uninstalled" packages
is disabled.
When this option is not provided, the default search behavior is determined
by the first available of the following values:
#. ``CMAKE_PKG_CONFIG_DISABLE_UNINSTALLED``
#. If the ``PKG_CONFIG_DISABLE_UNINSTALLED`` environment variable is defined
the search is disabled, otherwise it is enabled.
``PC_SYSROOT_DIR <path>``
Overrides the root path which will be prepended to paths specified by ``-I``
compile flags and ``-L`` library search locations; also used to derive the
``pc_sysrootdir`` package variable.
When this option is not provided, the default root path is provided by the
first available of the following values:
#. ``CMAKE_PKG_CONFIG_SYSROOT_DIR``
#. The ``PKG_CONFIG_SYSROOT_DIR`` environment variable
#. If no root path is available, nothing will be prepended to include or
library directory paths and ``pc_sysrootdir`` will be set to ``/``
``TOP_BUILD_DIR <path>``
Overrides the top build directory path used to derived the ``pc_top_builddir``
package variable.
When this option is not provided, the default top build directory path is
the first available of the following values:
#. ``CMAKE_PKG_CONFIG_TOP_BUILD_DIR``
#. The ``PKG_CONFIG_TOP_BUILD_DIR`` environment variable
#. If no top build directory path is available, the ``pc_top_builddir``
package variable is not set
Signatures
^^^^^^^^^^
.. signature::
cmake_pkg_config(EXTRACT <package> [<version>] [...])
Extract the contents of the package into variables.
.. code-block:: cmake
cmake_pkg_config(EXTRACT <package> [<version>]
[REQUIRED] [EXACT] [QUIET]
[STRICTNESS <mode>]
[ENV_MODE <mode>]
[PC_LIBDIR <path>...]
[PC_PATH <path>...]
[DISABLE_UNINSTALLED <bool>]
[PC_SYSROOT_DIR <path>]
[TOP_BUILD_DIR <path>]
[SYSTEM_INCLUDE_DIRS <path>...]
[SYSTEM_LIBRARY_DIRS <path>...]
[ALLOW_SYSTEM_INCLUDES <bool>]
[ALLOW_SYSTEM_LIBS <bool>])
The following variables will be populated from the contents of package file:
==================================== ====== ========================================================================================
Variable Type Definition
==================================== ====== ========================================================================================
``CMAKE_PKG_CONFIG_NAME`` String Value of the ``Name`` keyword
``CMAKE_PKG_CONFIG_DESCRIPTION`` String Value of the ``Description`` keyword
``CMAKE_PKG_CONFIG_VERSION`` String Value of the ``Version`` keyword
``CMAKE_PKG_CONFIG_PROVIDES`` List Value of the ``Provides`` keyword
``CMAKE_PKG_CONFIG_REQUIRES`` List Value of the ``Requires`` keyword
``CMAKE_PKG_CONFIG_CONFLICTS`` List Value of the ``Conflicts`` keyword
``CMAKE_PKG_CONFIG_CFLAGS`` String Value of the ``CFlags`` / ``Cflags`` keyword
``CMAKE_PKG_CONFIG_INCLUDES`` List All ``-I`` prefixed flags from ``CMAKE_PKG_CONFIG_CFLAGS``
``CMAKE_PKG_CONFIG_COMPILE_OPTIONS`` List All flags not prefixed with ``-I`` from ``CMAKE_PKG_CONFIG_CFLAGS``
``CMAKE_PKG_CONFIG_LIBS`` String Value of the ``Libs`` keyword
``CMAKE_PKG_CONFIG_LIBDIRS`` List All ``-L`` prefixed flags from ``CMAKE_PKG_CONFIG_LIBS``
``CMAKE_PKG_CONFIG_LIBNAMES`` List All ``-l`` prefixed flags from ``CMAKE_PKG_CONFIG_LIBS``
``CMAKE_PKG_CONFIG_LINK_OPTIONS`` List All flags not prefixed with ``-L`` or ``-l`` from ``CMAKE_PKG_CONFIG_LIBS``
``CMAKE_PKG_CONFIG_*_PRIVATE`` \* ``CFLAGS`` / ``LIBS`` / ``REQUIRES`` and derived, but in their ``.private`` suffix forms
==================================== ====== ========================================================================================
``SYSTEM_INCLUDE_DIRS``
Overrides the "system" directories for the purpose of flag mangling include
directories in ``CMAKE_PKG_CONFIG_CFLAGS`` and derived variables.
When this option is not provided, the default directories are provided by the
first available of the following values:
#. ``CMAKE_PKG_CONFIG_SYS_INCLUDE_DIRS``
#. The ``PKG_CONFIG_SYSTEM_INCLUDE_PATH`` environment variable
#. The output of ``pkgconf --variable pc_system_includedirs pkg-config``
#. A platform-dependent default value
Additionally, when the ``ENV_MODE`` is ``PKGCONF`` the
``CMAKE_PKG_CONFIG_PKGCONF_INCLUDES`` variable will be concatenated to the
list if available. If it is not available, the following environment variables
will be queried and concatenated:
* ``CPATH``
* ``C_INCLUDE_PATH``
* ``CPLUS_INCLUDE_PATH``
* ``OBJC_INCLUDE_PATH``
* ``INCLUDE`` (Windows Only)
``SYSTEM_LIBRARY_DIRS``
Overrides the "system" directories for the purpose of flag mangling library
directories in ``CMAKE_PKG_CONFIG_LIBS`` and derived variables.
When this option is not provided, the default directories are provided by the
first available of the following values:
#. ``CMAKE_PKG_CONFIG_SYS_LIB_DIRS``
#. The ``PKG_CONFIG_SYSTEM_LIBRARY_PATH`` environment variable
#. The output of ``pkgconf --variable pc_system_libdirs pkg-config``
#. A platform-dependent default value
Additionally, when the ``ENV_MODE`` is ``PKGCONF`` the
``CMAKE_PKG_CONFIG_PKGCONF_LIB_DIRS`` variable will be concatenated to the
list if available. If it is not available, the ``LIBRARY_PATH`` environment
variable will be queried and concatenated.
``ALLOW_SYSTEM_INCLUDES``
Preserves "system" directories during flag mangling of include directories
in ``CMAKE_PKG_CONFIG_CFLAGS`` and derived variables.
When this option is not provided, the default value is determined by the first
available of the following values:
#. ``CMAKE_PKG_CONFIG_ALLOW_SYS_INCLUDES``
#. If the ``PKG_CONFIG_ALLOW_SYSTEM_CFLAGS`` environment variable is defined
the flags are preserved, otherwise they are filtered during flag mangling.
``ALLOW_SYSTEM_LIBS``
Preserves "system" directories during flag mangling of library directories
in ``CMAKE_PKG_CONFIG_LIBS`` and derived variables.
When this option is not provided, the default value is determined by the first
available of the following values:
#. ``CMAKE_PKG_CONFIG_ALLOW_SYS_LIBS``
#. If the ``PKG_CONFIG_ALLOW_SYSTEM_LIBS`` environment variable is defined
the flags are preserved, otherwise they are filtered during flag mangling.

@ -140,20 +140,32 @@ Options:
``NONE``
Perform no decoding. This assumes that the process output is encoded
in the same way as CMake's internal encoding (UTF-8).
This is the default.
This was the default in CMake 3.14 and older.
``AUTO``
Use the current active console's codepage or if that isn't
available then use ANSI.
This was the default in CMake 3.15 through 3.30.
``ANSI``
Use the ANSI codepage.
``OEM``
Use the original equipment manufacturer (OEM) code page.
``UTF8`` or ``UTF-8``
Use the UTF-8 codepage.
``UTF-8``
.. versionadded:: 3.11
Accept ``UTF-8`` spelling for consistency with the
`UTF-8 RFC <https://www.ietf.org/rfc/rfc3629>`_ naming convention.
Use the UTF-8 codepage.
This is the default. See policy :policy:`CMP0176`.
``UTF8``
Use the UTF-8 codepage. Use of this name is discouraged in favor
of ``UTF-8`` to match the `UTF-8 RFC <https://www.ietf.org/rfc/rfc3629>`_
naming convention.
``COMMAND_ERROR_IS_FATAL <ANY|LAST>``
.. versionadded:: 3.19

@ -400,10 +400,19 @@ Filesystem
============== ======================================================
.. signature::
file(MAKE_DIRECTORY <directories>...)
file(MAKE_DIRECTORY <directories>... [RESULT <result>])
Create the given directories and their parents as needed.
The options are:
``RESULT <result>``
.. versionadded:: 3.31
Set ``<result>`` variable to ``0`` on success or an error message
otherwise. If ``RESULT`` is not specified and the operation fails,
an error is emitted.
.. versionchanged:: 3.30
``<directories>`` can be an empty list. CMake 3.29 and earlier required
at least one directory to be given.
@ -802,10 +811,21 @@ Transfer
environment variable will be used instead.
See :variable:`CMAKE_TLS_VERSION` for allowed values.
.. versionchanged:: 3.31
The default is TLS 1.2.
Previously, no minimum version was enforced by default.
``TLS_VERIFY <ON|OFF>``
Specify whether to verify the server certificate for ``https://`` URLs.
The default is to *not* verify. If this option is not specified, the
value of the :variable:`CMAKE_TLS_VERIFY` variable will be used instead.
If this option is not specified, the value of the
:variable:`CMAKE_TLS_VERIFY` variable or :envvar:`CMAKE_TLS_VERIFY`
environment variable will be used instead.
If neither is set, the default is *on*.
.. versionchanged:: 3.31
The default is on. Previously, the default was off.
Users may set the :envvar:`CMAKE_TLS_VERIFY` environment
variable to ``0`` to restore the old default.
.. versionadded:: 3.18
Added support to ``file(UPLOAD)``.
@ -818,9 +838,7 @@ Transfer
.. versionadded:: 3.18
Added support to ``file(UPLOAD)``.
For ``https://`` URLs CMake must be built with OpenSSL support. ``TLS/SSL``
certificates are not checked by default. Set ``TLS_VERIFY`` to ``ON`` to
check certificates.
For ``https://`` URLs CMake must be built with SSL/TLS support.
Additional options to ``DOWNLOAD`` are:
@ -892,8 +910,9 @@ Archiving
PATHS <paths>...
[FORMAT <format>]
[COMPRESSION <compression>
[COMPRESSION_LEVEL <compression-level>]]
[COMPRESSION_LEVEL <compression-level>]]
[MTIME <mtime>]
[WORKING_DIRECTORY <dir>]
[VERBOSE])
:target: ARCHIVE_CREATE
:break: verbatim
@ -904,40 +923,55 @@ Archiving
listed in ``<paths>``. Note that ``<paths>`` must list actual files or
directories; wildcards are not supported.
Use the ``FORMAT`` option to specify the archive format. Supported values
for ``<format>`` are ``7zip``, ``gnutar``, ``pax``, ``paxr``, ``raw`` and
``zip``. If ``FORMAT`` is not given, the default format is ``paxr``.
The options are:
Some archive formats allow the type of compression to be specified.
The ``7zip`` and ``zip`` archive formats already imply a specific type of
compression. The other formats use no compression by default, but can be
directed to do so with the ``COMPRESSION`` option. Valid values for
``<compression>`` are ``None``, ``BZip2``, ``GZip``, ``XZ``, and ``Zstd``.
``FORMAT <format>``
Specify the archive format. Supported values for ``<format>`` are
``7zip``, ``gnutar``, ``pax``, ``paxr``, ``raw`` and ``zip``.
If ``FORMAT`` is not given, the default format is ``paxr``.
``COMPRESSION <compression>``
Some archive formats allow the type of compression to be specified.
The ``7zip`` and ``zip`` archive formats already imply a specific type of
compression. The other formats use no compression by default, but can be
directed to do so with the ``COMPRESSION`` option. Valid values for
``<compression>`` are ``None``, ``BZip2``, ``GZip``, ``XZ``, and ``Zstd``.
.. note::
With ``FORMAT`` set to ``raw``, only one file will be compressed
with the compression type specified by ``COMPRESSION``.
``COMPRESSION_LEVEL <compression-level>``
.. versionadded:: 3.19
.. versionadded:: 3.19
The compression level can be specified with the ``COMPRESSION_LEVEL``
option. The ``<compression-level>`` should be between 0-9, with the
default being 0. The ``COMPRESSION`` option must be present when
``COMPRESSION_LEVEL`` is given.
.. versionadded:: 3.26
The ``<compression-level>`` of the ``Zstd`` algorithm can be set
between 0-19.
.. versionadded:: 3.26
The ``<compression-level>`` of the ``Zstd`` algorithm can be set
between 0-19.
.. note::
With ``FORMAT`` set to ``raw``, only one file will be compressed with the
compression type specified by ``COMPRESSION``.
``MTIME <mtime>``
Specify the modification time recorded in tarball entries.
The ``VERBOSE`` option enables verbose output for the archive operation.
``WORKING_DIRECTORY <dir>``
.. versionadded:: 3.31
To specify the modification time recorded in tarball entries, use
the ``MTIME`` option.
Specify the directory in which the archive creation operation will
be executed. Paths in the ``<paths>`` argument can be relative to
this directory. If this option is not provided, the current working
directory will be used by default.
``VERBOSE``
Enable verbose output from the archive operation.
.. signature::
file(ARCHIVE_EXTRACT
INPUT <archive>
[DESTINATION <dir>]
[PATTERNS <patterns>...]
[PATTERNS <pattern>...]
[LIST_ONLY]
[VERBOSE]
[TOUCH])
@ -947,17 +981,30 @@ Archiving
Extracts or lists the content of the specified ``<archive>``.
The directory where the content of the archive will be extracted to can
be specified using the ``DESTINATION`` option. If the directory does not
exist, it will be created. If ``DESTINATION`` is not given, the current
binary directory will be used.
The options are:
``DESTINATION <dir>``
Specify the directory under which the content of the archive will be
extracted. If the directory does not exist, it will be created.
If ``DESTINATION`` is not given, the current binary directory will
be used.
If required, you may select which files and directories to list or extract
from the archive using the specified ``<patterns>``. Wildcards are
supported. If the ``PATTERNS`` option is not given, the entire archive will
be listed or extracted.
``PATTERNS <pattern>...``
Extract/list only files and directories that match one of the given
patterns. Wildcards are supported. If the ``PATTERNS`` option is
not given, the entire archive will be listed or extracted.
``LIST_ONLY`` will list the files in the archive rather than extract them.
``LIST_ONLY``
List the files in the archive rather than extract them.
``TOUCH``
.. versionadded:: 3.24
Give extracted files a current local timestamp instead of extracting
file timestamps from the archive.
``VERBOSE``
Enable verbose output from the extraction operation.
.. note::
The working directory for this subcommand is the ``DESTINATION`` directory
@ -966,12 +1013,6 @@ Archiving
``INPUT`` archives as they are unlikely to be extracted where a relative
path works.
.. versionadded:: 3.24
The ``TOUCH`` option gives extracted files a current local
timestamp instead of extracting file timestamps from the archive.
With ``VERBOSE``, the command will produce verbose output.
Handling Runtime Binaries
^^^^^^^^^^^^^^^^^^^^^^^^^
@ -1162,6 +1203,14 @@ Handling Runtime Binaries
5. Otherwise, the dependency is unresolved.
.. versionchanged:: 3.31
Resolution of each encountered library file name occurs at most once
while processing a given root ELF file (executable or shared object).
If a library file name is encountered again in the dependency tree,
the original resolution is assumed. This behavior more closely matches
the dynamic loader's behavior on Linux.
On Windows platforms, library resolution works as follows:
1. DLL dependency names are converted to lowercase for matching filters.

@ -503,6 +503,42 @@ The :variable:`CMAKE_IGNORE_PATH`, :variable:`CMAKE_IGNORE_PREFIX_PATH`,
:variable:`CMAKE_SYSTEM_IGNORE_PREFIX_PATH` variables can also cause some
of the above locations to be ignored.
Paths are searched in the order described above. The first viable package
configuration file found is used, even if a newer version of the package
resides later in the list of search paths.
For search paths which contain ``<name>*``, the order among matching paths
is unspecified unless the :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER` variable
is set. This variable, along with the
:variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION` variable, determines the order
in which CMake considers paths that match a single search path containing
``<name>*``. For example, if the file system contains the package
configuration files
::
<prefix>/example-1.2/example-config.cmake
<prefix>/example-1.10/example-config.cmake
<prefix>/share/example-2.0/example-config.cmake
it is unspecified (when the aforementioned variables are unset) whether
``find_package(example)`` will find ``example-1.2`` or ``example-1.10``
(assuming that both are viable), but ``find_package`` will *not* find
``example-2.0``, because one of the other two will be found first.
To control the order in which ``find_package`` searches directories that match
a glob expression, use :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER` and
:variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION`.
For instance, to cause the above example to select ``example-1.10``,
one can set
.. code-block:: cmake
SET(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
SET(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC)
before calling ``find_package``.
.. versionadded:: 3.16
Added the ``CMAKE_FIND_USE_<CATEGORY>`` variables to globally disable
various search locations.
@ -648,22 +684,6 @@ is acceptable the following variables are set:
Number of version components, 0 to 4
and the corresponding package configuration file is loaded.
When multiple package configuration files are available whose version files
claim compatibility with the version requested it is unspecified which
one is chosen: unless the variable :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER`
is set no attempt is made to choose a highest or closest version number.
To control the order in which ``find_package`` checks for compatibility use
the two variables :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER` and
:variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION`.
For instance in order to select the highest version one can set
.. code-block:: cmake
SET(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
SET(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC)
before calling ``find_package``.
Package File Interface Variables
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

@ -41,3 +41,23 @@ When more than one value is given to the ``NAMES`` option this command by
default will consider one name at a time and search every directory
for it. The ``NAMES_PER_DIR`` option tells this command to consider one
directory at a time and search for all names in it.
The set of files considered to be programs is platform-specific:
* On Windows, filename suffixes are considered in order ``.com``, ``.exe``,
and no suffix.
* On non-Windows systems, no filename suffix is considered, but files
must have execute permission (see policy :policy:`CMP0109`).
To search for scripts, specify an extension explicitly:
.. code-block:: cmake
if(WIN32)
set(_script_suffix .bat)
else()
set(_script_suffix .sh)
endif()
find_program(MY_SCRIPT NAMES my_script${_script_suffix})

@ -29,7 +29,7 @@ It must be one of the following:
Scope is unique and does not accept a name.
``DIRECTORY``
Scope defaults to the current directory but another
Scope defaults to the current directory, but another
directory (already processed by CMake) may be named by the
full or relative path ``<dir>``.
Relative paths are treated as relative to the current source directory.
@ -79,10 +79,10 @@ It must be one of the following:
``DIRECTORY <dir>``
The test property will be read from the ``<dir>`` directory's
scope. CMake must already know about the directory, either by having added
it through a call to :command:`add_subdirectory` or ``<dir>`` being the top
level directory. Relative paths are treated as relative to the current
source directory. ``<dir>`` may reference a binary directory.
scope. CMake must already know about the directory, either by having
added it through a call to :command:`add_subdirectory` or ``<dir>`` being
the top level directory. Relative paths are treated as relative to the
current source directory. ``<dir>`` may reference a binary directory.
``CACHE``
Scope must name one cache entry.
@ -91,19 +91,20 @@ It must be one of the following:
Scope is unique and does not accept a name.
The required ``PROPERTY`` option is immediately followed by the name of
the property to get. If the property is not set an empty value is
returned, although some properties support inheriting from a parent scope
if defined to behave that way (see :command:`define_property`).
the property to get. If the property is not set, the named ``<variable>``
will be unset in the calling scope upon return, although some properties
support inheriting from a parent scope if defined to behave that way
(see :command:`define_property`).
If the ``SET`` option is given the variable is set to a boolean
If the ``SET`` option is given, the variable is set to a boolean
value indicating whether the property has been set. If the ``DEFINED``
option is given the variable is set to a boolean value indicating
whether the property has been defined such as with the
option is given, the variable is set to a boolean value indicating
whether the property has been defined, such as with the
:command:`define_property` command.
If ``BRIEF_DOCS`` or ``FULL_DOCS`` is given then the variable is set to a
If ``BRIEF_DOCS`` or ``FULL_DOCS`` is given, then the variable is set to a
string containing documentation for the requested property. If
documentation is requested for a property that has not been defined
documentation is requested for a property that has not been defined,
``NOTFOUND`` is returned.
.. note::

@ -41,13 +41,15 @@ Compound conditions are evaluated in the following order of precedence:
1. `Parentheses`_.
2. Unary tests such as `EXISTS`_, `COMMAND`_, and `DEFINED`_.
2. Unary tests such as `COMMAND`_, `POLICY`_, `TARGET`_, `TEST`_,
`EXISTS`_, `IS_READABLE`_, `IS_WRITABLE`_, `IS_EXECUTABLE`_,
`IS_DIRECTORY`_, `IS_SYMLINK`_, `IS_ABSOLUTE`_, and `DEFINED`_.
3. Binary tests such as `EQUAL`_, `LESS`_, `LESS_EQUAL`_, `GREATER`_,
`GREATER_EQUAL`_, `STREQUAL`_, `STRLESS`_, `STRLESS_EQUAL`_,
`STRGREATER`_, `STRGREATER_EQUAL`_, `VERSION_EQUAL`_, `VERSION_LESS`_,
`VERSION_LESS_EQUAL`_, `VERSION_GREATER`_, `VERSION_GREATER_EQUAL`_,
`PATH_EQUAL`_, and `MATCHES`_.
`PATH_EQUAL`_, `IN_LIST`_, `IS_NEWER_THAN`_, and `MATCHES`_.
4. Unary logical operator `NOT`_.
@ -471,6 +473,10 @@ above-documented condition syntax accepts ``<variable|string>``:
variables. If so, their defined values are used otherwise the original value
is used.
* The left hand argument to `IN_LIST`_ is tested to see if it is a defined
variable. If so, the variable's value is used, otherwise the original
value is used.
* The right hand argument to `NOT`_ is tested to see if it is a boolean
constant. If so, the value is used, otherwise it is assumed to be a
variable and it is dereferenced.

@ -1,7 +1,8 @@
include_external_msproject
--------------------------
Include an external Microsoft project file in a workspace.
Include an external Microsoft project file in the solution file produced
by :ref:`Visual Studio Generators`. Ignored on other generators.
.. code-block:: cmake
@ -11,9 +12,9 @@ Include an external Microsoft project file in a workspace.
[PLATFORM platformName]
dep1 dep2 ...)
Includes an external Microsoft project in the generated workspace
file. Currently does nothing on UNIX. This will create a target
named ``[projectname]``. This can be used in the :command:`add_dependencies`
Includes an external Microsoft project in the generated solution file.
This will create a target named ``[projectname]``.
This can be used in the :command:`add_dependencies`
command to make things depend on the external project.
``TYPE``, ``GUID`` and ``PLATFORM`` are optional parameters that allow one to

@ -19,6 +19,7 @@ Synopsis
install(`SCRIPT`_ <file> [...])
install(`CODE`_ <code> [...])
install(`EXPORT`_ <export-name> [...])
install(`PACKAGE_INFO`_ <package-name> [...])
install(`RUNTIME_DEPENDENCY_SET`_ <set-name> [...])
Introduction
@ -38,6 +39,13 @@ are executed in order during installation.
The environment variable :envvar:`CMAKE_INSTALL_MODE` can override the
default copying behavior of ``install()``.
.. versionchanged:: 3.31
Projects can enable :prop_gbl:`INSTALL_PARALLEL` to enable a parallel
installation. When using the parallel install, subdirectories added by calls
to the :command:`add_subdirectory` command are installed independently
and the order that install rules added in different subdirectories will run is
not guaranteed.
.. _`common options`:
There are multiple signatures for this command. Some of them define
@ -50,7 +58,7 @@ signatures that specify them. The common options are:
``<dir>`` should be a relative path. An absolute path is allowed,
but not recommended.
When a relative path is given it is interpreted relative to the value
When a relative path is given, it is interpreted relative to the value
of the :variable:`CMAKE_INSTALL_PREFIX` variable.
The prefix can be relocated at install time using the ``DESTDIR``
mechanism explained in the :variable:`CMAKE_INSTALL_PREFIX` variable
@ -67,6 +75,11 @@ signatures that specify them. The common options are:
If an absolute path (with a leading slash or drive letter) is given
it is used verbatim.
.. versionchanged:: 3.31
``<dir>`` will be normalized according to the same
:ref:`normalization rules <Normalization>` as the
:command:`cmake_path` command.
``PERMISSIONS <permission>...``
Specify permissions for installed files. Valid permissions are
``OWNER_READ``, ``OWNER_WRITE``, ``OWNER_EXECUTE``, ``GROUP_READ``,
@ -104,11 +117,6 @@ signatures that specify them. The common options are:
Specify that the file is excluded from a full installation and only
installed as part of a component-specific installation
``RENAME <name>``
Specify a name for an installed file that may be different from the
original file. Renaming is allowed only when a single file is
installed by the command.
``OPTIONAL``
Specify that it is not an error if the file to be installed does
not exist.
@ -393,6 +401,12 @@ Signatures
If a relative path is specified, it is treated as relative to the
:genex:`$<INSTALL_PREFIX>`.
Unlike other ``DESTINATION`` arguments for the various ``install()``
subcommands, paths given after ``INCLUDES DESTINATION`` are used as
given. They are not normalized, nor assumed to be normalized, although
it is recommended that they are given in normalized form (see
:ref:`Normalization`).
``RUNTIME_DEPENDENCY_SET <set-name>``
.. versionadded:: 3.21
@ -536,6 +550,10 @@ Signatures
However, if any item begins in a generator expression it must evaluate
to a full path.
The optional ``RENAME <name>`` argument is used to specify a name for the
installed file that is different from the original file name. Renaming
is allowed only when a single file is installed by the command.
Either a ``TYPE`` or a ``DESTINATION`` must be provided, but not both.
A ``TYPE`` argument specifies the generic file type of the files being
installed. A destination will then be set automatically by taking the
@ -561,6 +579,7 @@ Signatures
``LOCALE`` ``${CMAKE_INSTALL_LOCALEDIR}`` ``<DATAROOT dir>/locale``
``MAN`` ``${CMAKE_INSTALL_MANDIR}`` ``<DATAROOT dir>/man``
``DOC`` ``${CMAKE_INSTALL_DOCDIR}`` ``<DATAROOT dir>/doc``
``LIBEXEC`` ``${CMAKE_INSTALL_LIBEXECDIR}`` ``libexec``
======================= ================================== =========================
Projects wishing to follow the common practice of installing headers into a
@ -599,6 +618,9 @@ Signatures
use "generator expressions" with the syntax ``$<...>``. See the
:manual:`cmake-generator-expressions(7)` manual for available expressions.
.. versionadded:: 3.31
The ``TYPE`` argument now supports type ``LIBEXEC``.
.. signature::
install(DIRECTORY <dir>... [...])
@ -713,6 +735,7 @@ Signatures
``LOCALE`` ``${CMAKE_INSTALL_LOCALEDIR}`` ``<DATAROOT dir>/locale``
``MAN`` ``${CMAKE_INSTALL_MANDIR}`` ``<DATAROOT dir>/man``
``DOC`` ``${CMAKE_INSTALL_DOCDIR}`` ``<DATAROOT dir>/doc``
``LIBEXEC`` ``${CMAKE_INSTALL_LIBEXECDIR}`` ``libexec``
======================= ================================== =========================
Note that some of the types' built-in defaults use the ``DATAROOT`` directory as
@ -736,6 +759,9 @@ Signatures
The list of ``dirs...`` given to ``DIRECTORY`` may use
"generator expressions" too.
.. versionadded:: 3.31
The ``TYPE`` argument now supports type ``LIBEXEC``.
.. signature::
install(SCRIPT <file> [...])
install(CODE <code> [...])
@ -800,6 +826,7 @@ Signatures
the generated file will be called ``<export-name>.cmake`` but the ``FILE``
option may be used to specify a different name. The value given to
the ``FILE`` option must be a file name with the ``.cmake`` extension.
If a ``CONFIGURATIONS`` option is given then the file will only be installed
when one of the named configurations is installed. Additionally, the
generated import file will reference only the matching target
@ -898,6 +925,61 @@ Signatures
executable from the installation tree using the imported target name
``mp_myexe`` as if the target were built in its own tree.
.. signature::
install(PACKAGE_INFO <package-name> [...])
.. versionadded:: 3.31
.. note::
Experimental. Gated by ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_INFO``.
Installs a |CPS|_ file exporting targets for dependent projects:
.. code-block:: cmake
install(PACKAGE_INFO <package-name> EXPORT <export-name>
[APPENDIX <appendix-name>]
[DESTINATION <dir>]
[LOWER_CASE_FILE]
[VERSION <version>
[COMPAT_VERSION <version>]
[VERSION_SCHEMA <string>]]
[DEFAULT_TARGETS <target>...]
[DEFAULT_CONFIGURATIONS <config>...]
[PERMISSIONS <permission>...]
[CONFIGURATIONS <config>...]
[COMPONENT <component>]
[EXCLUDE_FROM_ALL])
The ``PACKAGE_INFO`` form generates and installs a |CPS| file which describes
installed targets such that they can be consumed by another project.
Target installations are associated with the export ``<export-name>``
using the ``EXPORT`` option of the :command:`install(TARGETS)` signature
documented above. Unlike :command:`install(EXPORT)`, this information is not
expressed in CMake code, and can be consumed by tools other than CMake. When
imported into another CMake project, the imported targets will be prefixed
with ``<package-name>::``. By default, the generated file will be called
``<package-name>[-<appendix-name>].cps``. If ``LOWER_CASE_FILE`` is given,
the package name as it appears on disk (in both the file name and install
destination) will be first converted to lower case.
If ``DESTINATION`` is not specified, a platform-specific default is used.
If ``APPENDIX`` is specified, rather than generating a top level package
specification, the specified targets will be exported as an appendix to the
named package. Appendices may be used to separate less commonly used targets
(along with their external dependencies) from the rest of a package. This
enables consumers to ignore transitive dependencies for targets that they
don't use, and also allows a single logical "package" to be composed of
artifacts produced by multiple build trees.
Appendices are not permitted to change basic package metadata; therefore,
none of ``VERSION``, ``COMPAT_VERSION``, ``VERSION_SCHEMA``,
``DEFAULT_TARGETS`` or ``DEFAULT_CONFIGURATIONS`` may be specified in
combination with ``APPENDIX``. Additionally, it is strongly recommended that
use of ``LOWER_CASE_FILE`` should be consistent between the main package and
any appendices.
.. signature::
install(RUNTIME_DEPENDENCY_SET <set-name> [...])
@ -1090,3 +1172,6 @@ and by CPack. You can also invoke this script manually with
This is an environment variable rather than a CMake variable. It allows you
to change the installation prefix on UNIX systems. See :envvar:`DESTDIR` for
details.
.. _CPS: https://cps-org.github.io/cps/
.. |CPS| replace:: Common Package Specification

@ -44,27 +44,18 @@ Projects should not rely on ``<PROJECT-NAME>_SOURCE_DIR`` or
``<PROJECT-NAME>_BINARY_DIR`` holding a particular value outside of the scope
of the call to ``project()`` or one of its child scopes.
.. versionchanged:: 3.30.3
.. versionchanged:: 3.30
``<PROJECT-NAME>_SOURCE_DIR``, ``<PROJECT-NAME>_BINARY_DIR``, and
``<PROJECT-NAME>_IS_TOP_LEVEL`` are always set as non-cache variables by
``project(<PROJECT-NAME> ...)``.
.. versionchanged:: 3.30.4
The variables ``<PROJECT-NAME>_SOURCE_DIR``, ``<PROJECT-NAME>_BINARY_DIR``,
and ``<PROJECT-NAME>_IS_TOP_LEVEL`` are only set as non-cache variables if
they are already set as cache or non-cache variables when
``project(<PROJECT-NAME> ...)`` is called.
Note that this logic is flawed, as it can result in different behavior
between the first and subsequent runs because cache variables won't exist
on the first run, but they will on subsequent runs.
.. versionchanged:: 3.30.5
The variables ``<PROJECT-NAME>_SOURCE_DIR``, ``<PROJECT-NAME>_BINARY_DIR``,
and ``<PROJECT-NAME>_IS_TOP_LEVEL`` are only set as non-cache variables if
they are already set as non-cache variables when
``project(<PROJECT-NAME> ...)`` is called.
Unlike the flawed behavior of 3.30.4, non-cache variables will not be set
if only cache variables of the same name are set.
``<PROJECT-NAME>_IS_TOP_LEVEL``, if already set as normal variables when
``project(<PROJECT-NAME> ...)`` is called, are updated by the call.
Cache entries by the same names are always set as before.
See release notes for 3.30.3, 3.30.4, and 3.30.5 for details.
.. versionchanged:: 3.31
``<PROJECT-NAME>_SOURCE_DIR``, ``<PROJECT-NAME>_BINARY_DIR``, and
``<PROJECT-NAME>_IS_TOP_LEVEL`` are always set as normal variables by
``project(<PROJECT-NAME> ...)``. See policy :policy:`CMP0180`.
Cache entries by the same names are always set as before.
Options
^^^^^^^

@ -140,6 +140,11 @@ Items containing ``::``, such as ``Foo::Bar``, are assumed to be
target names and will cause an error if no such target exists.
See policy :policy:`CMP0028`.
See the :variable:`CMAKE_LINK_LIBRARIES_STRATEGY` variable and
corresponding :prop_tgt:`LINK_LIBRARIES_STRATEGY` target property
for details on how CMake orders direct link dependencies on linker
command lines.
See the :manual:`cmake-buildsystem(7)` manual for more on defining
buildsystem properties.

@ -91,14 +91,10 @@ CPack generators which are essentially archives at their core. These include:
.. versionadded:: 3.18
:Default: ``1``
:Default: value of :variable:`CPACK_THREADS`
If set to ``0``, the number of available cores on the machine will be used instead.
The default is ``1`` which limits compression to a single thread. Note that
not all compression modes support threading in all environments. Currently,
only the XZ compression may support it.
See also the :variable:`CPACK_THREADS` variable.
Note that not all compression modes support threading in all environments.
.. versionadded:: 3.21

@ -182,11 +182,22 @@ List of CPack DEB generator specific variables:
only the automatically discovered dependencies will be set for this
component.
.. versionchanged:: 3.31
The variable is always expanded as a list. Before it was expanded only
if used in cooperation with :variable:`CPACK_DEB_COMPONENT_INSTALL`,
:variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS` or
:variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS`.
This meant that if a component had no shared libraries discovered
(e.g. a package composed only of scripts) you had to join the list
by yourself to obtain a valid Depends field.
Example:
.. code-block:: cmake
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libc6 (< 2.4)")
list(APPEND CPACK_DEBIAN_PACKAGE_DEPENDS cmake)
.. variable:: CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS
@ -654,6 +665,31 @@ List of CPack DEB generator specific variables:
This value is not interpreted. It is possible to pass an optional
revision number of the referenced source package as well.
.. variable:: CPACK_DEBIAN_PACKAGE_MULTIARCH
CPACK_DEBIAN_<COMPONENT>_PACKAGE_MULTIARCH
Sets the `Multi-Arch` field of the Debian package.
Packages can declare in their control file how they should handle
situations, where packages for different architectures are being installed
on the same machine.
:Mandatory: No
:Default:
- An empty string for non-component based installations
- :variable:`CPACK_DEBIAN_PACKAGE_MULTIARCH` for component-based
installations.
.. versionadded:: 3.31
Per-component :variable:`!CPACK_DEBIAN_<COMPONENT>_PACKAGE_MULTIARCH` variables.
See https://wiki.debian.org/MultiArch/Hints
.. note::
This value is validated. It must be one of the following values:
``same``, ``foreign``, ``allowed``.
Packaging of debug information
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

@ -275,6 +275,16 @@ Package
This feature is available for QtIFW 4.0.0 and later.
.. variable:: CPACK_IFW_PACKAGE_PRODUCT_IMAGE_URLS
.. versionadded:: 3.31
A list of URLs associated with the ProductImages.
Only used if ``CPACK_IFW_PACKAGE_PRODUCT_IMAGES`` is defined
and it has the same size.
This feature is available for QtIFW 4.0.0 and later.
.. variable:: CPACK_IFW_PACKAGE_RUN_PROGRAM
.. versionadded:: 3.23

@ -246,9 +246,8 @@ List of CPack RPM generator specific variables:
:Default: (system default)
May be used to override RPM compression type to be used to build the
RPM. For example some Linux distribution now default to ``lzma`` or ``xz``
compression whereas older cannot use such RPM. Using this one can enforce
compression type to be used.
RPM. For example some Linux distributions default to ``xz`` or ``zstd``.
Using this, one can specify a specific compression type to be used.
Possible values are:
@ -264,6 +263,11 @@ List of CPack RPM generator specific variables:
``gzip``
GNU Gzip compression
``zstd``
.. versionadded:: 3.31
Zstandard compression
.. variable:: CPACK_RPM_PACKAGE_AUTOREQ
CPACK_RPM_<component>_PACKAGE_AUTOREQ

@ -458,8 +458,7 @@ Windows using WiX.
administrative privileges. Start menu entries created by the
installer are visible to all users.
This is the default if :variable:`CPACK_WIX_VERSION` is set to any
value other than ``3``.
This is the default. See policy :policy:`CMP0172`.
``perUser``
Not yet supported. This is reserved for future use.
@ -467,9 +466,8 @@ Windows using WiX.
``NONE``
Create an installer without any ``InstallScope`` attribute.
If :variable:`CPACK_WIX_VERSION` is not set, or is set to ``3``, this
value is the default to preserve compatibility with 3.28 and lower.
Otherwise, this value is not supported.
This is supported only if :variable:`CPACK_WIX_VERSION` is not set,
or is set to ``3``.
.. deprecated:: 3.29

@ -23,12 +23,13 @@ branches and tags. Upstream development processes are covered by the
following documents:
* The `CMake Review Process`_ manages integration of changes.
* The `CMake Testing Process`_ drives integration testing.
* The `CMake Integration Testing`_ infrastructure tests changes
before and after merging.
.. _`Kitware's GitLab Instance`: https://gitlab.kitware.com
.. _`CMake Repository`: https://gitlab.kitware.com/cmake/cmake
.. _`CMake Review Process`: review.rst
.. _`CMake Testing Process`: testing.rst
.. _`CMake Integration Testing`: integration-testing.rst
Developer Documentation
=======================
@ -37,10 +38,12 @@ CMake developer documentation is provided by the following documents:
* The `CMake Source Code Guide`_.
* The `CMake Documentation Guide`_.
* The `CMake Testing Guide`_.
* The `CMake Experimental Features Guide`_.
.. _`CMake Source Code Guide`: source.rst
.. _`CMake Documentation Guide`: documentation.rst
.. _`CMake Testing Guide`: testing.rst
.. _`CMake Experimental Features Guide`: experimental.rst
Maintainer Documentation

@ -310,17 +310,17 @@ are suppressed inside of square- or angle-brackets. This behavior can be
controlled using the ``:break:`` option; note, however, that there is no way
to *force* a line break. The default value is 'smart'. Allowable values are:
``all``
Allow line breaks at any whitespace.
``all``
Allow line breaks at any whitespace.
``smart`` (default)
Allow line breaks at whitespace, except between matched square- or
angle-brackets. For example, if a signature contains the text
``<input>... [OUTPUT_VARIABLE <out-var>]``, a line break would be allowed
after ``<input>...`` but not between ``OUTPUT_VARIABLE`` and ``<out-var>``.
``smart`` (default)
Allow line breaks at whitespace, except between matched square- or
angle-brackets. For example, if a signature contains the text
``<input>... [OUTPUT_VARIABLE <out-var>]``, a line break would be allowed
after ``<input>...`` but not between ``OUTPUT_VARIABLE`` and ``<out-var>``.
``verbatim``
Allow line breaks only where the source document contains a newline.
``verbatim``
Allow line breaks only where the source document contains a newline.
The directive treats its content as the documentation of the signature(s).
Indent the signature documentation accordingly.

@ -39,6 +39,23 @@ When activated, this experimental feature provides the following:
using the ``CMAKE_EXPORT_FIND_PACKAGE_NAME`` variable and/or
``EXPORT_FIND_PACKAGE_NAME`` target property.
Export |CPS| Package Information
================================
In order to activate support for this experimental feature, set
* variable ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_INFO`` to
* value ``b80be207-778e-46ba-8080-b23bba22639e``.
This UUID may change in future versions of CMake. Be sure to use the value
documented here by the source tree of the version of CMake with which you are
experimenting.
When activated, this experimental feature provides the following:
* The experimental ``install(PACKAGE_INFO)`` command is available to export
package information in the |CPS|_ format.
C++ ``import std`` support
==========================
@ -60,3 +77,27 @@ When activated, this experimental feature provides the following:
* Targets with the property set to a true value and at least ``cxx_std_23``
may use ``import std;`` in any scanned C++ source file.
.. _CPS: https://cps-org.github.io/cps/
.. |CPS| replace:: Common Package Specification
Build database support
======================
In order to activate support for exporting build databases, set
* variable ``CMAKE_EXPERIMENTAL_EXPORT_BUILD_DATABASE`` to
* value ``4bd552e2-b7fb-429a-ab23-c83ef53f3f13``.
This UUID may change in future versions of CMake. Be sure to use the value
documented here by the source tree of the version of CMake with which you are
experimenting.
When activated, this experimental feature provides the following:
* The :prop_tgt:`EXPORT_BUILD_DATABASE` target property and its initializing
variable :variable:`CMAKE_EXPORT_BUILD_DATABASE` and environment variable
:envvar:`CMAKE_EXPORT_BUILD_DATABASE`.
* Targets with the property set to a true value will have their C++ build
information exported to the build database.

@ -0,0 +1,46 @@
CMake Integration Testing
*************************
The following documents how to run integration testing builds.
See documentation on `CMake Development`_ for more information.
See the `CMake Testing Guide`_ for running the test suite locally.
.. _`CMake Development`: README.rst
.. _`CMake Testing Guide`: testing.rst
CMake Dashboard Scripts
=======================
The *integration testing* step of the `CMake Review Process`_ uses a set of
testing machines that follow an integration branch on their own schedule to
drive testing and submit results to the `CMake CDash Page`_. Anyone is
welcome to provide testing machines in order to help keep support for their
platforms working.
The `CMake Dashboard Scripts Repository`_ provides CTest scripts to drive
nightly, continuous, and experimental testing of CMake. Use the following
commands to set up a new integration testing client:
.. code-block:: console
$ mkdir -p ~/Dashboards
$ cd ~/Dashboards
$ git clone https://gitlab.kitware.com/cmake/dashboard-scripts.git CMakeScripts
$ cd CMakeScripts
The `cmake_common.cmake`_ script contains comments at the top with
instructions to set up a testing client. As it instructs, create a
CTest script with local settings and include ``cmake_common.cmake``.
.. _`CMake Review Process`: review.rst
.. _`CMake CDash Page`: https://open.cdash.org/index.php?project=CMake
.. _`CMake Dashboard Scripts Repository`: https://gitlab.kitware.com/cmake/dashboard-scripts
.. _`cmake_common.cmake`: https://gitlab.kitware.com/cmake/dashboard-scripts/-/blob/master/cmake_common.cmake
Nightly Start Time
------------------
The ``cmake_common.cmake`` script expects its includer to be run from a
nightly scheduled task (cron job). Schedule such tasks for sometime after
``1:00am UTC``, the time at which our nightly testing branches fast-forward.

@ -306,11 +306,22 @@ Commit with a message such as::
Begin post-$ver development
Push the update to the ``master`` and ``release`` branches:
Create a topic branch for the update to ``master``:
.. code-block:: shell
git push --atomic origin master release-$ver:release
git branch branch-$ver master
Open a merge request with the ``branch-$ver`` branch for review and CI.
Add the following trailing lines in the merge request description::
Fast-forward: true
Backport-ff: release:HEAD~1^2
This configures the ``Do: merge`` action to fast-foward the ``master``
and ``release`` branches to the respective commits created above.
Further steps may proceed after this has been merged.
Announce 'release' Branch
-------------------------

@ -348,7 +348,7 @@ Integration Testing
The above `topic testing`_ tests the MR topic independent of other
merge requests and on only a few key platforms and configurations.
The `CMake Testing Process`_ also has a large number of machines
`CMake Integration Testing`_ also uses a large number of machines
provided by Kitware and generous volunteers that cover nearly all
supported platforms, generators, and configurations. In order to
avoid overwhelming these resources, they do not test every MR
@ -403,7 +403,7 @@ until one of the following occurs:
Once a MR has been removed from the topic stage a new ``Do: stage``
command is needed to stage it again.
.. _`CMake Testing Process`: testing.rst
.. _`CMake Integration Testing`: integration-testing.rst
Resolve
=======

@ -249,6 +249,14 @@ These are:
* ``cm::is_unique_ptr``:
Checks if a type is a ``std::unique_ptr`` type.
* ``cm::remove_member_pointer``
Produces the underlying type of a member-pointer type, ie, given ``T C::*``,
returns ``T``.
* ``cm::member_pointer_class``
Produces the class associated with a member-pointer type, ie, given
``T C::*``, returns ``C``.
CMake assumes the compiler supports ``#pragma once``. Use this for all
hand-written header files.
@ -310,6 +318,7 @@ The CMake source tree is organized as follows.
* ``Tests/``:
The test suite. See `Tests/README.rst`_.
To run the tests, see the `CMake Testing Guide`_.
* ``Utilities/``:
Scripts, third-party source code.
@ -331,5 +340,6 @@ The CMake source tree is organized as follows.
See `Utilities/Release/README.rst`_.
.. _`CMake Documentation Guide`: documentation.rst
.. _`CMake Testing Guide`: testing.rst
.. _`Tests/README.rst`: ../../Tests/README.rst
.. _`Utilities/Release/README.rst`: ../../Utilities/Release/README.rst

@ -1,43 +1,111 @@
CMake Testing Process
*********************
CMake Testing Guide
*******************
The following documents the process for running integration testing builds.
The following is a guide to the CMake test suite for developers.
See documentation on `CMake Development`_ for more information.
See `CMake Integration Testing`_ for running integration testing builds.
See `Tests/README.rst`_ for the test suite layout in the source tree.
.. _`CMake Development`: README.rst
.. _`CMake Integration Testing`: integration-testing.rst
.. _`Tests/README.rst`: ../../Tests/README.rst
Running Tests in the Build Tree
===============================
After `Building CMake`_, one may run the test suite in the build tree
using `ctest(1)`_:
* With a single-configuration CMake generator, such as ``Ninja``
or ``Unix Makefiles``, one may simply run ``ctest``:
.. code-block:: console
$ ctest
* With a multi-configuration CMake generator, such as
``Ninja Multi-Config``, ``Visual Studio``, or ``Xcode``,
one must tell ``ctest`` which configuration to test
by passing the ``-C <config>`` option:
.. code-block:: console
$ ctest -C Debug
Some useful `ctest(1)`_ options include:
``-N``
List test names without running them.
``-V``
Show verbose output from each test.
``-j <N>``
Run to run up to ``N`` tests concurrently.
CMake Dashboard Scripts
=======================
``-R <regex>``
Select tests for which the regular expression matches a substring
of their name.
The *integration testing* step of the `CMake Review Process`_ uses a set of
testing machines that follow an integration branch on their own schedule to
drive testing and submit results to the `CMake CDash Page`_. Anyone is
welcome to provide testing machines in order to help keep support for their
platforms working.
Cleaning Test Build Trees
-------------------------
The `CMake Dashboard Scripts Repository`_ provides CTest scripts to drive
nightly, continuous, and experimental testing of CMake. Use the following
commands to set up a new integration testing client:
Many CMake tests create their own test project build trees underneath
the ``Tests/`` directory at the top of the CMake build tree. These
build trees are left behind after testing completes in order to
facilitate manual investigation of results. Many of the tests do *not*
clean their build trees if they are run again, with the exception of
tests using the `RunCMake`_ infrastructure.
In order to clear test build trees, drive the ``test_clean`` custom target
in the CMake build tree:
.. code-block:: console
$ cmake --build . --target test_clean
This removes the ``Tests/`` subdirectories created by individual tests
so they will use a fresh directory next time they run.
.. _`Building CMake`: ../../README.rst#building-cmake
.. _`ctest(1)`: https://cmake.org/cmake/help/latest/manual/ctest.1.html
.. _`RunCMake`: ../../Tests/RunCMake/README.rst
Running Tests with a Different Generator
========================================
After `Building CMake`_ with one CMake generator, one may configure the
test suite using a different generator in a separate build tree, without
building CMake itself again, by defining ``CMake_TEST_EXTERNAL_CMAKE``
to be the absolute path to the ``bin`` directory containing the ``cmake``,
``ctest``, and ``cpack`` executables.
For example, after building CMake with the ``Ninja`` generator:
.. code-block:: console
$ mkdir -p ~/Dashboards
$ cd ~/Dashboards
$ git clone https://gitlab.kitware.com/cmake/dashboard-scripts.git CMakeScripts
$ cd CMakeScripts
$ cmake -B build-ninja -G Ninja -DCMAKE_BUILD_TYPE=Debug
$ cmake --build build-ninja
The `cmake_common.cmake`_ script contains comments at the top with
instructions to set up a testing client. As it instructs, create a
CTest script with local settings and include ``cmake_common.cmake``.
one may configure a second build tree to drive tests with the
``Ninja Multi-Config`` generator:
.. code-block:: console
.. _`CMake Review Process`: review.rst
.. _`CMake CDash Page`: https://open.cdash.org/index.php?project=CMake
.. _`CMake Dashboard Scripts Repository`: https://gitlab.kitware.com/cmake/dashboard-scripts
.. _`cmake_common.cmake`: https://gitlab.kitware.com/cmake/dashboard-scripts/-/blob/master/cmake_common.cmake
$ cmake -B build-nmc-tests -G "Ninja Multi-Config" \
-DCMake_TEST_EXTERNAL_CMAKE="$PWD/build-ninja/bin"
$ cmake --build build-nmc-tests --config Release
The second build tree does not build CMake itself, but does configure
the test suite and build test binaries. One may then run tests normally:
.. code-block:: console
Nightly Start Time
------------------
$ cd build-nmc-tests
$ ctest -C Release
The ``cmake_common.cmake`` script expects its includer to be run from a
nightly scheduled task (cron job). Schedule such tasks for sometime after
``1:00am UTC``, the time at which our nightly testing branches fast-forward.
Note that the configuration with which one drives tests in the second
build tree is independent of the configuration with which CMake was
built in the first.

@ -1,6 +0,0 @@
try_compile-linker-language
---------------------------
* The :command:`try_compile` and :command:`try_run` commands gained a
``LINKER_LANGUAGE`` option to specify the :prop_tgt:`LINKER_LANGUAGE`
target property in the generated test project.

@ -0,0 +1,18 @@
CMAKE_CONFIG_DIR
----------------
.. versionadded:: 3.31
.. include:: ENV_VAR.txt
Specify a CMake user-wide configuration directory for
:manual:`cmake-file-api(7)` queries.
If this environment variable is not set, the default user-wide
configuration directory is platform-specific:
- Windows: ``%LOCALAPPDATA%\CMake``
- macOS: ``$XDG_CONFIG_HOME/CMake`` if set, otherwise
``$HOME/Library/Application Support/CMake``
- Linux/Other: ``$XDG_CONFIG_HOME/cmake`` if set, otherwise
``$HOME/.config/cmake``

@ -0,0 +1,17 @@
CMAKE_EXPORT_BUILD_DATABASE
---------------------------
.. versionadded:: 3.31
.. include:: ENV_VAR.txt
The default value for :variable:`CMAKE_EXPORT_BUILD_DATABASE` when there is no
explicit configuration given on the first run while creating a new build tree.
On later runs in an existing build tree the value persists in the cache as
:variable:`CMAKE_EXPORT_BUILD_DATABASE`.
.. note ::
This variable is meaningful only when experimental support for build
databases has been enabled by the
``CMAKE_EXPERIMENTAL_EXPORT_BUILD_DATABASE`` gate.

@ -0,0 +1,11 @@
CMAKE_INSTALL_PARALLEL_LEVEL
----------------------------
.. versionadded:: 3.31
.. include:: ENV_VAR.txt
Specifies the default maximum number of concurrent processes to use when
installing using ``cmake --install``.
This has no impact unless :prop_gbl:`INSTALL_PARALLEL` is enabled.

@ -4,7 +4,7 @@ CMAKE_MSVCIDE_RUN_PATH
.. include:: ENV_VAR.txt
Extra PATH locations for custom commands when using
:generator:`Visual Studio 12 2013` (or above) generators.
:ref:`Visual Studio Generators`.
The ``CMAKE_MSVCIDE_RUN_PATH`` environment variable sets the default value for
the :variable:`CMAKE_MSVCIDE_RUN_PATH` variable if not already explicitly set.

@ -3,6 +3,7 @@ Visual Studio 10 2010
Removed. This once generated Visual Studio 10 2010 project files, but
the generator has been removed since CMake 3.25. It is still possible
to build with VS 10 2010 tools using the :generator:`Visual Studio 14 2015`
(or above) generator with :variable:`CMAKE_GENERATOR_TOOLSET` set to
``v100``, or by using the :generator:`NMake Makefiles` generator.
to build with the VS 10 2010 toolset by also installing VS 2015 (or above)
and using the :generator:`Visual Studio 14 2015` (or above) generator with
:variable:`CMAKE_GENERATOR_TOOLSET` set to ``v100``,
or by using the :generator:`NMake Makefiles` generator.

@ -3,6 +3,7 @@ Visual Studio 11 2012
Removed. This once generated Visual Studio 11 2012 project files, but
the generator has been removed since CMake 3.28. It is still possible
to build with VS 11 2012 tools using the :generator:`Visual Studio 14 2015`
(or above) generator with :variable:`CMAKE_GENERATOR_TOOLSET` set to ``v110``,
to build with the VS 11 2012 toolset by also installing VS 2015 (or above)
and using the :generator:`Visual Studio 14 2015` (or above) generator with
:variable:`CMAKE_GENERATOR_TOOLSET` set to ``v110``,
or by using the :generator:`NMake Makefiles` generator.

@ -1,57 +1,9 @@
Visual Studio 12 2013
---------------------
Deprecated. Generates Visual Studio 12 (VS 2013) project files.
.. note::
This generator is deprecated and will be removed in a future version
of CMake. It will still be possible to build with VS 12 2013 tools
using the :generator:`Visual Studio 14 2015` (or above) generator
with :variable:`CMAKE_GENERATOR_TOOLSET` set to ``v120``, or by
using the :generator:`NMake Makefiles` generator.
For compatibility with CMake versions prior to 3.0, one may specify this
generator using the name "Visual Studio 12" without the year component.
Project Types
^^^^^^^^^^^^^
Only Visual C++ and C# projects may be generated (and Fortran with
Intel compiler integration). Other types of projects (JavaScript,
Powershell, Python, etc.) are not supported.
Platform Selection
^^^^^^^^^^^^^^^^^^
The default target platform name (architecture) is ``Win32``.
.. versionadded:: 3.1
The :variable:`CMAKE_GENERATOR_PLATFORM` variable may be set, perhaps
via the :option:`cmake -A` option, to specify a target platform
name (architecture). For example:
* ``cmake -G "Visual Studio 12 2013" -A Win32``
* ``cmake -G "Visual Studio 12 2013" -A x64``
* ``cmake -G "Visual Studio 12 2013" -A ARM``
For compatibility with CMake versions prior to 3.1, one may specify
a target platform name optionally at the end of the generator name.
This is supported only for:
``Visual Studio 12 2013 Win64``
Specify target platform ``x64``.
``Visual Studio 12 2013 ARM``
Specify target platform ``ARM``.
Toolset Selection
^^^^^^^^^^^^^^^^^
The ``v120`` toolset that comes with Visual Studio 12 2013 is selected by
default. The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps
via the :option:`cmake -T` option, to specify another toolset.
.. |VS_TOOLSET_HOST_ARCH_DEFAULT| replace::
By default this generator uses the 32-bit variant even on a 64-bit host.
.. include:: VS_TOOLSET_HOST_ARCH_LEGACY.txt
Removed. This once generated Visual Studio 12 2013 project files, but
the generator has been removed since CMake 3.31. It is still possible
to build with the VS 12 2013 toolset by also installing VS 2015 (or above)
and using the :generator:`Visual Studio 14 2015` (or above) generator with
:variable:`CMAKE_GENERATOR_TOOLSET` set to ``v120``,
or by using the :generator:`NMake Makefiles` generator.

@ -3,7 +3,7 @@ Visual Studio 9 2008
Removed. This once generated Visual Studio 9 2008 project files, but
the generator has been removed since CMake 3.30. It is still possible
to build with VS 9 2008 tools using the :generator:`Visual Studio 14 2015`
generator (or above, and with VS 10 2010 also installed) with
:variable:`CMAKE_GENERATOR_TOOLSET` set to ``v90``, or by using
the :generator:`NMake Makefiles` generator.
to build with the VS 9 2008 toolset by also installing VS 10 2010 and
VS 2015 (or above) and using the :generator:`Visual Studio 14 2015`
generator (or above) with :variable:`CMAKE_GENERATOR_TOOLSET` set to ``v90``,
or by using the :generator:`NMake Makefiles` generator.

@ -300,6 +300,8 @@ the table below:
commands used without a type
:variable:`CMAKE_EXPORT_COMPILE_COMMANDS` Generate a ``compile_commands.json``
file for use with clang-based tools
:variable:`CMAKE_EXPORT_BUILD_DATABASE` Generate a ``build_database.json``
file for use with clang-based tools
========================================== ============================================================
Other project-specific variables may be available

@ -22,6 +22,7 @@ These commands are always available.
/command/cmake_minimum_required
/command/cmake_parse_arguments
/command/cmake_path
/command/cmake_pkg_config
/command/cmake_policy
/command/configure_file
/command/continue

@ -408,7 +408,9 @@ starting point.
.. code-block:: cmake
find_package(PkgConfig)
pkg_check_modules(PC_Foo QUIET Foo)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_Foo QUIET Foo)
endif()
This should define some variables starting ``PC_Foo_`` that contain the
information from the ``Foo.pc`` file.

@ -43,15 +43,18 @@ Environment Variables that Control the Build
/envvar/CMAKE_BUILD_PARALLEL_LEVEL
/envvar/CMAKE_BUILD_TYPE
/envvar/CMAKE_COLOR_DIAGNOSTICS
/envvar/CMAKE_CONFIGURATION_TYPES
/envvar/CMAKE_CONFIG_DIR
/envvar/CMAKE_CONFIG_TYPE
/envvar/CMAKE_CONFIGURATION_TYPES
/envvar/CMAKE_CROSSCOMPILING_EMULATOR
/envvar/CMAKE_EXPORT_BUILD_DATABASE
/envvar/CMAKE_EXPORT_COMPILE_COMMANDS
/envvar/CMAKE_GENERATOR
/envvar/CMAKE_GENERATOR_INSTANCE
/envvar/CMAKE_GENERATOR_PLATFORM
/envvar/CMAKE_GENERATOR_TOOLSET
/envvar/CMAKE_INSTALL_MODE
/envvar/CMAKE_INSTALL_PARALLEL_LEVEL
/envvar/CMAKE_INSTALL_PREFIX
/envvar/CMAKE_LANG_COMPILER_LAUNCHER
/envvar/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES_EXCLUDE

@ -50,6 +50,10 @@ It has the following subdirectories:
Clients may optionally create the ``reply/`` directory at any time
and monitor it for the appearance of a new reply index file.
.. versionadded:: 3.31
Users can add query files to ``api/v1/query`` inside the
:envvar:`CMAKE_CONFIG_DIR` to create user-wide queries for all CMake projects.
v1 Shared Stateless Query Files
-------------------------------

@ -1877,6 +1877,14 @@ These expressions look up the values of
rather than the directory of the consuming target for which the
expression is being evaluated.
.. versionchanged:: 3.31
Generator expressions for transitive interface properties, such as
``$<TARGET_PROPERTY:target,INTERFACE_*>``, now correctly handle
repeated evaluations within nested generator expressions.
Previously, these repeated evaluations returned empty values due
to an optimization for transitive closures.
This change ensures consistent evaluation for non-union operations.
.. genex:: $<TARGET_PROPERTY:prop>
:target: TARGET_PROPERTY:prop

@ -55,7 +55,6 @@ These modules are loaded using the :command:`include` command.
/module/CMakeBackwardCompatibilityCXX
/module/CMakeDependentOption
/module/CMakeFindDependencyMacro
/module/CMakeFindFrameworks
/module/CMakeFindPackageMode
/module/CMakeGraphVizOptions
/module/CMakePackageConfigHelpers
@ -269,6 +268,7 @@ Deprecated Utility Modules
/module/AddFileDependencies
/module/CMakeDetermineVSServicePack
/module/CMakeExpandImportedTargets
/module/CMakeFindFrameworks
/module/CMakeForceCompiler
/module/CMakeParseArguments
/module/Dart

@ -51,6 +51,23 @@ The :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` variable may also be used
to determine whether to report an error on use of deprecated macros or
functions.
Policies Introduced by CMake 3.31
=================================
.. toctree::
:maxdepth: 1
CMP0180: project() always sets <PROJECT-NAME>_* as normal variables. </policy/CMP0180>
CMP0179: De-duplication of static libraries on link lines keeps first occurrence. </policy/CMP0179>
CMP0178: Test command lines preserve empty arguments. </policy/CMP0178>
CMP0177: install() DESTINATION paths are normalized. </policy/CMP0177>
CMP0176: execute_process() ENCODING is UTF-8 by default. </policy/CMP0176>
CMP0175: add_custom_command() rejects invalid arguments. </policy/CMP0175>
CMP0174: cmake_parse_arguments(PARSE_ARGV) defines a variable for an empty string after a single-value keyword. </policy/CMP0174>
CMP0173: The CMakeFindFrameworks module is removed. </policy/CMP0173>
CMP0172: The CPack module enables per-machine installation by default in the CPack WIX Generator. </policy/CMP0172>
CMP0171: 'codegen' is a reserved target name. </policy/CMP0171>
Policies Introduced by CMake 3.30
=================================

@ -39,6 +39,9 @@ The files are a JSON document with an object as the root:
.. literalinclude:: presets/example.json
:language: json
Preset files specifying version ``10`` or above may include comments using the
key ``$comment`` at any level within the JSON object to provide documentation.
The root object recognizes the following fields:
``$schema``
@ -81,6 +84,9 @@ The root object recognizes the following fields:
``9``
.. versionadded:: 3.30
``10``
.. versionadded:: 3.31
``cmakeMinimumRequired``
An optional object representing the minimum version of CMake needed to
build this project. This object consists of the following fields:
@ -261,6 +267,16 @@ that may contain the following fields:
:variable:`CMAKE_TOOLCHAIN_FILE` value. It is allowed in preset files
specifying version ``3`` or above.
``graphviz``
An optional string representing the path to the graphviz input file,
that will contain all the library and executable dependencies
in the project. See the documentation for :module:`CMakeGraphVizOptions`
for more details.
This field supports `macro expansion`_. If a relative path is specified,
it is calculated relative to the current working directory. It is allowed
in preset files specifying version ``10`` or above.
``binaryDir``
An optional string representing the path to the output binary directory.
This field supports `macro expansion`_. If a relative path is specified,
@ -307,10 +323,14 @@ that may contain the following fields:
(which may not be an empty string), and the value is either ``null`` or
a string representing the value of the variable. Each variable is set
regardless of whether or not a value was given to it by the process's
environment. This field supports `macro expansion`_, and environment
variables in this map may reference each other, and may be listed in any
order, as long as such references do not cause a cycle (for example,
if ``ENV_1`` is ``$env{ENV_2}``, ``ENV_2`` may not be ``$env{ENV_1}``.)
environment.
This field supports `macro expansion`_, and environment variables in this map
may reference each other, and may be listed in any order, as long as such
references do not cause a cycle (for example, if ``ENV_1`` is
``$env{ENV_2}``, ``ENV_2`` may not be ``$env{ENV_1}``). ``$penv{NAME}``
allows one to prepend or append values to existing environment variables by
accessing only values from the parent environment.
Environment variables are inherited through the ``inherits`` field, and
the preset's environment will be the union of its own ``environment`` and
@ -492,10 +512,14 @@ that may contain the following fields:
(which may not be an empty string), and the value is either ``null`` or
a string representing the value of the variable. Each variable is set
regardless of whether or not a value was given to it by the process's
environment. This field supports macro expansion, and environment
variables in this map may reference each other, and may be listed in any
order, as long as such references do not cause a cycle (for example, if
``ENV_1`` is ``$env{ENV_2}``, ``ENV_2`` may not be ``$env{ENV_1}``.)
environment.
This field supports `macro expansion`_, and environment variables in this map
may reference each other, and may be listed in any order, as long as such
references do not cause a cycle (for example, if ``ENV_1`` is
``$env{ENV_2}``, ``ENV_2`` may not be ``$env{ENV_1}``). ``$penv{NAME}``
allows one to prepend or append values to existing environment variables by
accessing only values from the parent environment.
Environment variables are inherited through the ``inherits`` field, and
the preset's environment will be the union of its own ``environment``
@ -653,10 +677,14 @@ that may contain the following fields:
(which may not be an empty string), and the value is either ``null`` or
a string representing the value of the variable. Each variable is set
regardless of whether or not a value was given to it by the process's
environment. This field supports macro expansion, and environment
variables in this map may reference each other, and may be listed in any
order, as long as such references do not cause a cycle (for example, if
``ENV_1`` is ``$env{ENV_2}``, ``ENV_2`` may not be ``$env{ENV_1}``.)
environment.
This field supports `macro expansion`_, and environment variables in this map
may reference each other, and may be listed in any order, as long as such
references do not cause a cycle (for example, if ``ENV_1`` is
``$env{ENV_2}``, ``ENV_2`` may not be ``$env{ENV_1}``). ``$penv{NAME}``
allows one to prepend or append values to existing environment variables by
accessing only values from the parent environment.
Environment variables are inherited through the ``inherits`` field, and
the preset's environment will be the union of its own ``environment``
@ -994,10 +1022,14 @@ fields:
(which may not be an empty string), and the value is either ``null`` or
a string representing the value of the variable. Each variable is set
regardless of whether or not a value was given to it by the process's
environment. This field supports macro expansion, and environment
variables in this map may reference each other, and may be listed in any
order, as long as such references do not cause a cycle (for example, if
``ENV_1`` is ``$env{ENV_2}``, ``ENV_2`` may not be ``$env{ENV_1}``.)
environment.
This field supports `macro expansion`_, and environment variables in this map
may reference each other, and may be listed in any order, as long as such
references do not cause a cycle (for example, if ``ENV_1`` is
``$env{ENV_2}``, ``ENV_2`` may not be ``$env{ENV_1}``). ``$penv{NAME}``
allows one to prepend or append values to existing environment variables by
accessing only values from the parent environment.
Environment variables are inherited through the ``inherits`` field, and
the preset's environment will be the union of its own ``environment``
@ -1264,7 +1296,7 @@ Recognized macros include:
``$penv{<variable-name>}``
Similar to ``$env{<variable-name>}``, except that the value only comes from
the parent environment, and never from the ``environment`` field. This
allows you to prepend or append values to existing environment variables.
allows one to prepend or append values to existing environment variables.
For example, setting ``PATH`` to ``/path/to/ninja/bin:$penv{PATH}`` will
prepend ``/path/to/ninja/bin`` to the ``PATH`` environment variable. This
is needed because ``$env{<variable-name>}`` does not allow circular

@ -109,6 +109,7 @@ Properties on Targets
/prop_tgt/ADDITIONAL_CLEAN_FILES
/prop_tgt/AIX_EXPORT_ALL_SYMBOLS
/prop_tgt/AIX_SHARED_LIBRARY_ARCHIVE
/prop_tgt/ALIAS_GLOBAL
/prop_tgt/ALIASED_TARGET
/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS
@ -216,6 +217,7 @@ Properties on Targets
/prop_tgt/EXCLUDE_FROM_ALL
/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD
/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG
/prop_tgt/EXPORT_BUILD_DATABASE
/prop_tgt/EXPORT_COMPILE_COMMANDS
/prop_tgt/EXPORT_FIND_PACKAGE_NAME
/prop_tgt/EXPORT_NAME
@ -334,6 +336,7 @@ Properties on Targets
/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG
/prop_tgt/LINK_LIBRARIES
/prop_tgt/LINK_LIBRARIES_ONLY_TARGETS
/prop_tgt/LINK_LIBRARIES_STRATEGY
/prop_tgt/LINK_LIBRARY_OVERRIDE
/prop_tgt/LINK_LIBRARY_OVERRIDE_LIBRARY
/prop_tgt/LINK_OPTIONS
@ -430,6 +433,7 @@ Properties on Targets
/prop_tgt/VS_DOTNET_STARTUP_OBJECT
/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION
/prop_tgt/VS_DPI_AWARE
/prop_tgt/VS_FRAMEWORK_REFERENCES
/prop_tgt/VS_GLOBAL_KEYWORD
/prop_tgt/VS_GLOBAL_PROJECT_TYPES
/prop_tgt/VS_GLOBAL_ROOTNAMESPACE

@ -591,14 +591,14 @@ a different SDK (e.g. a simulator) can be selected by setting the
necessary (see :ref:`Switching Between Device and Simulator` below).
A list of available SDKs can be obtained by running ``xcodebuild -showsdks``.
======== ================= ==================== ================
OS CMAKE_SYSTEM_NAME Device SDK (default) Simulator SDK
======== ================= ==================== ================
iOS iOS iphoneos iphonesimulator
tvOS tvOS appletvos appletvsimulator
visionOS visionOS xros xrsimulator
watchOS watchOS watchos watchsimulator
======== ================= ==================== ================
======== ================= ==================== ================ ============
OS CMAKE_SYSTEM_NAME Device SDK (default) Simulator SDK Catalyst SDK
======== ================= ==================== ================ ============
iOS iOS iphoneos iphonesimulator macosx
tvOS tvOS appletvos appletvsimulator N/A
visionOS visionOS xros xrsimulator N/A
watchOS watchOS watchos watchsimulator N/A
======== ================= ==================== ================ ============
For example, to create a CMake configuration for iOS, the following
command is sufficient:

@ -106,6 +106,7 @@ Variables that Provide Information
/variable/CMAKE_SCRIPT_MODE_FILE
/variable/CMAKE_SHARED_LIBRARY_PREFIX
/variable/CMAKE_SHARED_LIBRARY_SUFFIX
/variable/CMAKE_SHARED_LIBRARY_ARCHIVE_SUFFIX
/variable/CMAKE_SHARED_MODULE_PREFIX
/variable/CMAKE_SHARED_MODULE_SUFFIX
/variable/CMAKE_SIZEOF_VOID_P
@ -142,6 +143,7 @@ Variables that Provide Information
/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION
/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM
/variable/CMAKE_WINDOWS_KMDF_VERSION
/variable/CMAKE_XCODE_BUILD_SYSTEM
/variable/CMAKE_XCODE_PLATFORM_TOOLSET
/variable/PROJECT-NAME_BINARY_DIR
@ -194,6 +196,7 @@ Variables that Change Behavior
/variable/CMAKE_ERROR_DEPRECATED
/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO
/variable/CMAKE_EXPORT_BUILD_DATABASE
/variable/CMAKE_EXPORT_COMPILE_COMMANDS
/variable/CMAKE_EXPORT_PACKAGE_REGISTRY
/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY
@ -320,6 +323,7 @@ Variables that Describe the System
/variable/CMAKE_COMPILER_2005
/variable/CMAKE_HOST_APPLE
/variable/CMAKE_HOST_BSD
/variable/CMAKE_HOST_EXECUTABLE_SUFFIX
/variable/CMAKE_HOST_LINUX
/variable/CMAKE_HOST_SOLARIS
/variable/CMAKE_HOST_SYSTEM
@ -346,6 +350,7 @@ Variables that Describe the System
/variable/MSVC_VERSION
/variable/MSYS
/variable/UNIX
/variable/WASI
/variable/WIN32
/variable/WINCE
/variable/WINDOWS_PHONE
@ -360,6 +365,7 @@ Variables that Control the Build
:maxdepth: 1
/variable/CMAKE_ADSP_ROOT
/variable/CMAKE_AIX_SHARED_LIBRARY_ARCHIVE
/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS
/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS
/variable/CMAKE_ANDROID_API
@ -486,6 +492,7 @@ Variables that Control the Build
/variable/CMAKE_LINK_GROUP_USING_FEATURE
/variable/CMAKE_LINK_GROUP_USING_FEATURE_SUPPORTED
/variable/CMAKE_LINK_INTERFACE_LIBRARIES
/variable/CMAKE_LINK_LIBRARIES_STRATEGY
/variable/CMAKE_LINK_LIBRARY_FEATURE_ATTRIBUTES
/variable/CMAKE_LINK_LIBRARY_FILE_FLAG
/variable/CMAKE_LINK_LIBRARY_FLAG
@ -614,6 +621,7 @@ Variables for Languages
/variable/CMAKE_LANG_COMPILER_TARGET
/variable/CMAKE_LANG_COMPILER_VERSION
/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY
/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY_ARCHIVE
/variable/CMAKE_LANG_CREATE_SHARED_MODULE
/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY
/variable/CMAKE_LANG_EXTENSIONS
@ -631,6 +639,8 @@ Variables for Languages
/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO
/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT
/variable/CMAKE_LANG_HOST_COMPILER
/variable/CMAKE_LANG_HOST_COMPILER_ID
/variable/CMAKE_LANG_HOST_COMPILER_VERSION
/variable/CMAKE_LANG_IGNORE_EXTENSIONS
/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES
/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES
@ -650,6 +660,7 @@ Variables for Languages
/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES
/variable/CMAKE_LANG_STANDARD_LATEST
/variable/CMAKE_LANG_STANDARD_LIBRARIES
/variable/CMAKE_LANG_STANDARD_LINK_DIRECTORIES
/variable/CMAKE_LANG_STANDARD_REQUIRED
/variable/CMAKE_OBJC_EXTENSIONS
/variable/CMAKE_OBJC_STANDARD

@ -31,7 +31,7 @@ Synopsis
cmake --find-package [<options>]
`Run a Workflow Preset`_
cmake --workflow [<options>]
cmake --workflow <options>
`View Help`_
cmake --help[-<topic>]
@ -232,6 +232,17 @@ Options
will display also advanced variables. If ``H`` is specified, it will also
display help for each variable.
.. option:: -LR[A][H] <regex>
.. versionadded:: 3.31
Show specific non-advanced cached variables
Show non-``INTERNAL`` nor :prop_cache:`ADVANCED` variables from the CMake
``CACHE`` that match the given regex. If ``A`` is specified, then it
will also show advanced variables. If ``H`` is specified, it will also
display help for each variable.
.. option:: -N
View mode only.
@ -255,8 +266,18 @@ Options
from the top of a binary tree for a CMake project it will dump
additional information such as the cache, log files etc.
.. option:: --print-config-dir
.. versionadded:: 3.31
Print CMake config directory for user-wide FileAPI queries.
See :envvar:`CMAKE_CONFIG_DIR` for more details.
.. option:: --log-level=<level>
.. versionadded:: 3.16
Set the log ``<level>``.
The :command:`message` command will only output messages of the specified
@ -745,6 +766,15 @@ The options are:
This option can be omitted if :envvar:`VERBOSE` environment variable is set.
.. option:: -j <jobs>, --parallel <jobs>
.. versionadded:: 3.31
Install in parallel using the given number of jobs. Only available if
:prop_gbl:`INSTALL_PARALLEL` is enabled. The
:envvar:`CMAKE_INSTALL_PARALLEL_LEVEL` environment variable specifies a
default parallel level when this option is not provided.
Run :option:`cmake --install` with no options for quick help.
Open a Project
@ -1364,7 +1394,7 @@ build steps in order:
.. code-block:: shell
cmake --workflow [<options>]
cmake --workflow <options>
The options are:
@ -1381,6 +1411,15 @@ The options are:
must contain CMake preset files.
See :manual:`preset <cmake-presets(7)>` for more details.
.. versionchanged:: 3.31
When following immediately after the ``--workflow`` option,
the ``--preset`` argument can be omitted and just the ``<preset>``
name can be given. This means the following syntax is valid:
.. code-block:: console
$ cmake --workflow my-preset
.. option:: --list-presets
Lists the available workflow presets. The current working directory must

@ -1560,6 +1560,10 @@ Configuration settings include:
* `CTest Script`_ variable: :variable:`CTEST_TLS_VERSION`
* :module:`CTest` module variable: ``CTEST_TLS_VERSION``
.. versionchanged:: 3.31
The default is TLS 1.2.
Previously, no minimum version was enforced by default.
``TLSVerify``
.. versionadded:: 3.30
@ -1569,6 +1573,11 @@ Configuration settings include:
* `CTest Script`_ variable: :variable:`CTEST_TLS_VERIFY`
* :module:`CTest` module variable: ``CTEST_TLS_VERIFY``
.. versionchanged:: 3.31
The default is on. Previously, the default was off.
Users may set the :envvar:`CMAKE_TLS_VERIFY` environment
variable to ``0`` to restore the old default.
``TriggerSite``
Legacy option. Not used.

@ -1,16 +1,22 @@
{
"version": 6,
"version": 10,
"cmakeMinimumRequired": {
"major": 3,
"minor": 23,
"patch": 0
},
"$comment": "An example CMakePresets.json file",
"include": [
"otherThings.json",
"moreThings.json"
],
"configurePresets": [
{
"$comment": [
"This is a comment row.",
"This is another comment,",
"just because we can do it"
],
"name": "default",
"displayName": "Default Config",
"description": "Default build using Ninja generator",

File diff suppressed because it is too large Load Diff

@ -0,0 +1,5 @@
``CMAKE_REQUIRED_LINK_DIRECTORIES``
.. versionadded:: 3.31
A :ref:`;-list <CMake Language Lists>` of libraries search paths to pass to
the linker (see :command:`try_compile` for further details).

@ -3,6 +3,8 @@ CMP0132
.. versionadded:: 3.24
Do not set compiler environment variables on first run.
Apart from when using the Xcode generator and some Visual Studio generators,
CMake 3.23 and below will set environment variables like :envvar:`CC`,
:envvar:`CXX`, etc. when the corresponding language is enabled.

@ -34,6 +34,11 @@ are de-duplicated by keeping their first occurrence, thus respecting the
project-specified order. This policy provides compatibility with projects
that have not been updated to expect the latter behavior.
.. note::
When this policy is set to ``NEW``, the policy :policy:`CMP0179` controls
which occurrence of the static libraries is kept when they are de-duplicated.
The ``OLD`` behavior for this policy is to always repeat static libraries
as if using a traditional linker, and always de-duplicate shared libraries
by keeping the last occurrence of each. The ``NEW`` behavior for this policy

@ -0,0 +1,26 @@
CMP0171
-------
.. versionadded:: 3.31
``codegen`` is a reserved target name.
CMake 3.30 and earlier did not reserve ``codegen`` as a builtin target name,
leaving projects free to create their own target with that name.
CMake 3.31 and later prefer to reserve ``codegen`` as a builtin target name
to drive custom commands created with the ``CODEGEN`` option to
:command:`add_custom_command`. In order to support building the ``codegen``
target in scripted environments, e.g., ``cmake --build . --target codegen``,
the ``codegen`` target needs to be generated even if no custom commands
use the ``CODEGEN`` option. This policy provides compatibility for projects
that have not been updated to avoid creating a target named ``codegen``.
The ``OLD`` behavior of this policy allows projects to create a target
with the name ``codegen``. The ``NEW`` behavior halts with a fatal error
if a target with the name ``codegen`` is created.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
.. include:: STANDARD_ADVICE.txt
.. include:: DEPRECATED.txt

@ -0,0 +1,39 @@
CMP0172
-------
.. versionadded:: 3.31
The :module:`CPack` module enables per-machine installation by default
in the :cpack_gen:`CPack WIX Generator`.
The :cpack_gen:`CPack WIX Generator`'s :variable:`CPACK_WIX_INSTALL_SCOPE`
option controls the scope of the generated Windows Installer package.
When :variable:`CPACK_WIX_VERSION` is set to 4 or higher, the default scope
is ``perMachine``. However, when using WIX 3 the default scope is ``NONE``,
and CPack does not set any ``InstallScope`` in the package specification.
The resulting installer requires administrative privileges and installs
into the system-wide ``ProgramFiles`` directory, but the start menu entry
and uninstaller registration are created only for the current user.
The :module:`CPack` module in CMake 3.30 and older does not specify any
:variable:`CPACK_WIX_INSTALL_SCOPE` value by default, so CPack uses no
installation scope by default with WIX 3. CMake 3.31 and newer instead
prefer to set :variable:`CPACK_WIX_INSTALL_SCOPE` to ``perMachine`` by
default to make the behavior consistent across all WIX versions. This
policy provides compatibility for projects that have not been updated
to expect ``perMachine`` behavior.
The ``OLD`` behavior for this policy is to not set
:variable:`CPACK_WIX_INSTALL_SCOPE` by default. The ``NEW`` behavior for
this policy is to set :variable:`CPACK_WIX_INSTALL_SCOPE` to ``perMachine``
by default.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31
.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn by default
.. include:: STANDARD_ADVICE.txt
See documentation of the
:variable:`CMAKE_POLICY_WARNING_CMP0172 <CMAKE_POLICY_WARNING_CMP<NNNN>>`
variable to control the warning.
.. include:: DEPRECATED.txt

@ -0,0 +1,22 @@
CMP0173
-------
.. versionadded:: 3.31
The :module:`CMakeFindFrameworks` module is removed.
CMake's framework handling has evolved well beyond what the
``CMakeFindFrameworks`` module supports. The module lacks any handling of
XCFrameworks, it never documented the one command it provides, and
:command:`find_library` provides superior capabilities in all respects.
The ``OLD`` behavior of this policy is for :module:`CMakeFindFrameworks` to
continue to provide the undocumented ``cmake_find_frameworks()`` command.
The ``NEW`` behavior halts with a fatal error if anything tries to include
the module.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
.. include:: STANDARD_ADVICE.txt
.. include:: DEPRECATED.txt

@ -0,0 +1,37 @@
CMP0174
-------
.. versionadded:: 3.31
:command:`cmake_parse_arguments(PARSE_ARGV)` defines a variable for an empty
string after a single-value keyword.
One of the main reasons for using the ``PARSE_ARGV`` form of the
:command:`cmake_parse_arguments` command is to more robustly handle corner
cases related to empty values. The non-``PARSE_ARGV`` form doesn't preserve
empty arguments, but the ``PARSE_ARGV`` form does. For each single-value
keyword given, a variable should be defined if the keyword is present, even
if it is followed by an empty string.
Prior to CMake 3.31, no variable would be defined if the value given after a
single-value keyword was an empty string. This meant the code could not detect
the difference between the keyword not being given, and it being given but with
an empty value, except by iterating over all the arguments and checking if the
keyword is present.
For the ``OLD`` behavior of this policy,
:command:`cmake_parse_arguments(PARSE_ARGV)` does not define a variable for a
single-value keyword followed by an empty string, or followed by no value at
all.
For the ``NEW`` behavior, :command:`cmake_parse_arguments(PARSE_ARGV)` always
defines a variable for each keyword given in the arguments, even a single-value
keyword with an empty string as its value or no value at all. With the
``NEW`` behavior, the code can robustly check if a single-value keyword was
given using just ``if(DEFINED <prefix>_<keyword>)``.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
.. include:: STANDARD_ADVICE.txt
.. include:: DEPRECATED.txt

@ -0,0 +1,40 @@
CMP0175
-------
.. versionadded:: 3.31
:command:`add_custom_command` rejects invalid arguments.
CMake 3.30 and earlier silently ignored unsupported keywords and missing or
invalid arguments for the different forms of the :command:`add_custom_command`
command. CMake 3.31 implements more rigorous argument checking and will flag
invalid or missing arguments as errors.
The ``OLD`` behavior of this policy will accept the same invalid keywords or
arguments as CMake 3.30 and earlier. The ``NEW`` behavior will flag the
following as errors that previously went unreported:
* The ``OUTPUT`` form does not accept ``PRE_BUILD``, ``PRE_LINK``, or
``POST_BUILD`` keywords.
* When the ``APPEND`` keyword is given, the ``OUTPUT`` form also does not
accept ``BYPRODUCTS``, ``COMMAND_EXPAND_LISTS``, ``DEPENDS_EXPLICIT_ONLY``,
``DEPFILE``, ``JOB_POOL``, ``JOB_SERVER_AWARE``, ``USES_TERMINAL``, or
``VERBATIM`` keywords.
* The ``TARGET`` form requires exactly one of ``PRE_BUILD``, ``PRE_LINK``, or
``POST_BUILD`` to be given. Previously, if none were given, ``POST_BUILD``
was assumed, or if multiple keywords were given, the last one was used.
* The ``TARGET`` form does not accept ``DEPENDS``, ``DEPENDS_EXPLICIT_ONLY``,
``DEPFILE``, ``IMPLICIT_DEPENDS``, ``MAIN_DEPENDENCY``, ``JOB_POOL``, or
``JOB_SERVER_AWARE`` keywords.
* The ``TARGET`` form now requires at least one ``COMMAND`` to be given.
* If a keyword expects a value to be given after it, but no value is provided,
that was previously treated as though the keyword was not given at all.
* The ``COMMENT`` keyword expects exactly one value after it. If multiple
values are given, or if the ``COMMENT`` keyword is given more than once,
this is an error.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
.. include:: STANDARD_ADVICE.txt
.. include:: DEPRECATED.txt

@ -0,0 +1,27 @@
CMP0176
-------
.. versionadded:: 3.31
:command:`execute_process` ``ENCODING`` is ``UTF-8`` by default.
The ``ENCODING`` option is meaningful only on Windows. It specifies the
character encoding expected in the process's output on stdout and stderr.
In CMake 3.14 and below the default encoding was ``NONE``, which corresponds
to CMake's internal UTF-8 encoding. In CMake 3.15 through CMake 3.30 the
default encoding was accidentally changed to ``AUTO``, but the change went
unnoticed and was not documented.
CMake 3.31 and above prefer the ``ENCODING`` default to be ``UTF-8``.
This policy provides compatibility with projects that may have been
relying on the default being ``AUTO``.
The ``OLD`` behavior of this policy is for :command:`execute_process`
to use ``AUTO`` by default if no ``ENCODING`` is specified. The ``NEW``
behavior for this policy is to use ``UTF-8`` as the default ``ENCODING``.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31
.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn
.. include:: STANDARD_ADVICE.txt
.. include:: DEPRECATED.txt

@ -0,0 +1,38 @@
CMP0177
-------
.. versionadded:: 3.31
:command:`install` ``DESTINATION`` paths are normalized.
The :command:`install` command has a number of different forms, and most of
them take a ``DESTINATION`` keyword, some in more than one place.
CMake 3.30 and earlier used the value given after the ``DESTINATION`` keyword
as provided with no transformations. The :command:`install(EXPORT)` form
assumes the path contains no ``..`` or ``.`` path components when computing
a path relative to the ``DESTINATION``, and if the project provided a path
that violated that assumption, the computed path would be incorrect.
CMake 3.31 normalizes all ``DESTINATION`` values given in any form of the
:command:`install` command, except for the ``INCLUDES DESTINATION`` of the
:command:`install(TARGETS)` form. The normalization performed is the same
as for the :command:`cmake_path` command (see :ref:`Normalization`).
The ``OLD`` behavior of this policy performs no translation on the
``DESTINATION`` values of any :command:`install` command. They are used
exactly as provided. If a destination path contains ``..`` or ``.`` path
components, :command:`install(EXPORT)` will use the same wrong paths as
CMake 3.30 and earlier.
The ``NEW`` behavior will normalize all ``DESTINATION`` values except for
``INCLUDES DESTINATION``. If a destination path contains a generator
expression, it will be wrapped in a ``$<PATH:CMAKE_PATH,NORMALIZE,...>``
generator expression.
This policy was introduced in CMake version 3.31.
It may be set by :command:`cmake_policy` or :command:`cmake_minimum_required`.
If it is not set, CMake will warn if it detects a path that would be different
if normalized, and uses ``OLD`` behavior. If a destination path contains a
generator expression, no such warning will be issued regardless of the value.
.. include:: DEPRECATED.txt

@ -0,0 +1,37 @@
CMP0178
-------
.. versionadded:: 3.31
Test command lines preserve empty arguments.
Empty values in the :prop_tgt:`TEST_LAUNCHER` and
:prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved
for tests added by the following:
* The :command:`add_test` command.
* The :command:`ExternalData_Add_Test` command from the :module:`ExternalData`
module.
* The :command:`gtest_add_tests` or :command:`gtest_discover_tests` commands
from the :module:`GoogleTest` module.
For the :command:`gtest_add_tests` and :command:`gtest_discover_tests`
commands, empty elements in the values passed after the ``EXTRA_ARGS``
keyword are also now preserved.
The ``OLD`` behavior of this policy silently discards empty list items
from the :prop_tgt:`TEST_LAUNCHER` and :prop_tgt:`CROSSCOMPILING_EMULATOR`
target properties in the above-mentioned cases. It also silently discards
empty items from the values given after ``EXTRA_ARGS`` for the
:command:`gtest_add_tests` and :command:`gtest_discover_tests` commands.
The ``NEW`` behavior of this policy preserves empty list items in the
:prop_tgt:`TEST_LAUNCHER` and :prop_tgt:`CROSSCOMPILING_EMULATOR` target
properties, and in values given after ``EXTRA_ARGS`` for
:command:`gtest_add_tests` and :command:`gtest_discover_tests`.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
.. include:: STANDARD_ADVICE.txt
.. include:: DEPRECATED.txt

@ -0,0 +1,28 @@
CMP0179
-------
.. versionadded:: 3.31
De-duplication of static libraries on link lines keeps first occurrence.
This policy is only relevant when policy :policy:`CMP0156` is set to ``NEW``.
Based on the linker capabilities, the static libraries can
be de-duplicated. See policy :policy:`CMP0156` for more information.
CMake 3.30 and below may choose to keep, on some platforms, the last occurrence
of the static libraries rather than the fist occurrence when they are
de-duplicated.
CMake 3.31 and above prefer to keep, on all platforms, the first occurrence of
the static libraries when they are de-duplicated.
The ``OLD`` behavior for this policy is to keep, on some platforms, the last
occurrence of the static libraries when they are de-duplicated. The ``NEW``
behavior for this policy is to keep the first occurrence of the static
libraries when they are de-duplicated, regardless of the platform.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31
.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn
.. include:: STANDARD_ADVICE.txt
.. include:: DEPRECATED.txt

@ -0,0 +1,36 @@
CMP0180
-------
.. versionadded:: 3.31
:command:`project` always sets ``<PROJECT-NAME>_*`` as normal variables.
In CMake 3.29 and below, the :command:`project` command set
:variable:`<PROJECT-NAME>_SOURCE_DIR`, :variable:`<PROJECT-NAME>_BINARY_DIR`,
and :variable:`<PROJECT-NAME>_IS_TOP_LEVEL` as cache entries, but not as
normal variables. CMake 3.30 started setting them as normal variables,
but only if they are already set as normal variables. This was needed to
preserve support for some :module:`FetchContent` use cases under policy
:policy:`CMP0169`'s NEW behavior, while also preserving behavior of nested
directories that call :command:`project` with the same project name.
See release notes for 3.30.3, 3.30.4, and 3.30.5 for details.
CMake 3.31 and later prefer to always set ``<PROJECT-NAME>_SOURCE_DIR``,
``<PROJECT-NAME>_BINARY_DIR``, and ``<PROJECT-NAME>_IS_TOP_LEVEL``, as both
cache entries and normal variables, regardless of what cache or normal
variables already exist. This policy provides compatibility for projects
that have not been updated to expect this behavior.
The ``OLD`` behavior for this policy will only set normal variables for
``<PROJECT-NAME>_SOURCE_DIR``, ``<PROJECT-NAME>_BINARY_DIR``, and
``<PROJECT-NAME>_IS_TOP_LEVEL`` if there is already a normal variable by that
name when :command:`project` is called.
The ``NEW`` behavior for this policy will always set normal variables for
``<PROJECT-NAME>_SOURCE_DIR``, ``<PROJECT-NAME>_BINARY_DIR``, and
``<PROJECT-NAME>_IS_TOP_LEVEL`` when :command:`project` is called.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.31
.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn
.. include:: STANDARD_ADVICE.txt
.. include:: DEPRECATED.txt

@ -17,7 +17,7 @@ pairs. Each such pair will be transformed into an entry in the
solution global section. Whitespace around key and value is ignored.
List elements which do not contain an equal sign are skipped.
This property only works for Visual Studio 12 and above; it is ignored
This property only works for :ref:`Visual Studio Generators`; it is ignored
on other generators. The property only applies when set on a
directory whose ``CMakeLists.txt`` contains a :command:`project` command.

@ -17,6 +17,6 @@ pairs. Each such pair will be transformed into an entry in the
solution global section. Whitespace around key and value is ignored.
List elements which do not contain an equal sign are skipped.
This property only works for Visual Studio 12 and above; it is ignored
This property only works for :ref:`Visual Studio Generators`; it is ignored
on other generators. The property only applies when set on a
directory whose ``CMakeLists.txt`` contains a :command:`project` command.

@ -3,18 +3,22 @@ INSTALL_PARALLEL
.. versionadded:: 3.30
Enables parallel installation option for the Ninja generator.
Enables parallel installation option for a project. The install code for each
subdirectory added with ``add_subdirectory`` can run independently.
When this property is ``ON``, ``install/local`` targets have the
console pool disabled, allowing them to run concurrently.
When using the Ninja generator, setting this property to ``ON``, causes
``install/local`` targets have the console pool disabled, allowing them to run
concurrently.
This property also provides the target ``install/parallel``, which has an
explicit dependency on the ``install/local`` target for each subdirectory,
recursing down the project.
explicit dependency on the ``install/local`` target for each subdirectory.
Setting this property has no affect on the behavior of ``cmake --install``.
The install must be invoked by building the ``install/parallel`` target
directly.
.. versionadded:: 3.31
When this property is ``ON``, ``cmake --install`` can be given the ``-j <jobs>``
or ``--parallel <jobs>`` option to specify a maximum number of jobs.
The :envvar:`CMAKE_INSTALL_PARALLEL_LEVEL` environment variable specifies a
default parallel level if this option is not provided.
Calls to :command:`install(CODE)` or :command:`install(SCRIPT)` might depend
on actions performed by an earlier :command:`install` command in a different

@ -0,0 +1,20 @@
AIX_SHARED_LIBRARY_ARCHIVE
--------------------------
.. versionadded:: 3.31
On AIX, enable creation of a shared library archive. This places
the shared object ``.so`` file inside an archive ``.a`` file.
By default, CMake creates shared libraries on AIX as plain
shared object ``.so`` files for consistency with other UNIX platforms.
Alternatively, set this property to a true value to create a shared
library archive instead, as is AIX convention.
The shared object name in the archive encodes version information from
the :prop_tgt:`SOVERSION` target property, if set, and otherwise from
the :prop_tgt:`VERSION` target property, if set.
This property defaults to :variable:`CMAKE_AIX_SHARED_LIBRARY_ARCHIVE`
if that variable is set when a ``SHARED`` library target is created
by :command:`add_library`.

@ -7,5 +7,8 @@ The ``COMPILE_FLAGS`` property sets additional compiler flags used to
build sources within the target. Use :prop_tgt:`COMPILE_DEFINITIONS`
to pass additional preprocessor definitions.
This property is deprecated. Use the :prop_tgt:`COMPILE_OPTIONS`
property or the :command:`target_compile_options` command instead.
.. note::
This property has been superseded by the :prop_tgt:`COMPILE_OPTIONS` property.
Alternatively, you can also use the :command:`target_compile_options` command
instead.

@ -0,0 +1,15 @@
EXPORT_BUILD_DATABASE
---------------------
.. versionadded:: 3.31
Enable/Disable output of a build database for a target.
This property is initialized by the value of the variable
:variable:`CMAKE_EXPORT_BUILD_DATABASE` if it is set when a target is created.
.. note ::
This property is meaningful only when experimental support for build
databases has been enabled by the
``CMAKE_EXPERIMENTAL_EXPORT_BUILD_DATABASE`` gate.

@ -28,3 +28,8 @@ In advanced use cases, the list of direct link dependencies specified
by this property may be updated by usage requirements from dependencies.
See the :prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT` and
:prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE` target properties.
See the :variable:`CMAKE_LINK_LIBRARIES_STRATEGY` variable and
corresponding :prop_tgt:`LINK_LIBRARIES_STRATEGY` target property
for details on how CMake orders direct link dependencies on linker
command lines.

@ -0,0 +1,87 @@
LINK_LIBRARIES_STRATEGY
-----------------------
.. versionadded:: 3.31
Specify a strategy for ordering a target's direct link dependencies
on linker command lines. This property is initialized by the value of the
:variable:`CMAKE_LINK_LIBRARIES_STRATEGY` variable if it is set when a
target is created.
CMake generates a target's link line using its :ref:`Target Link Properties`.
In particular, the :prop_tgt:`LINK_LIBRARIES` target property records the
target's direct link dependencies, typically populated by calls to
:command:`target_link_libraries`. Indirect link dependencies are
propagated from those entries of :prop_tgt:`LINK_LIBRARIES` that name
library targets by following the transitive closure of their
:prop_tgt:`INTERFACE_LINK_LIBRARIES` properties. CMake supports multiple
strategies for nominally ordering direct and indirect link dependencies,
which are then filtered for `Toolchain-Specific Behavior`_.
Consider this example for the strategies below:
.. code-block:: cmake
add_library(A STATIC ...)
add_library(B STATIC ...)
add_library(C STATIC ...)
add_executable(main ...)
target_link_libraries(B PRIVATE A)
target_link_libraries(C PRIVATE A)
target_link_libraries(main PRIVATE A B C)
The supported strategies are:
``REORDER_MINIMALLY``
Entries of :prop_tgt:`LINK_LIBRARIES` always appear first and in their
original order. Indirect link dependencies not satisfied by the
original entries may be reordered and de-duplicated with respect to
one another, but are always appended after the original entries.
This may result in less efficient link lines, but gives projects
control of ordering among independent entries. Such control may be
important when intermixing link flags with libraries, or when multiple
libraries provide a given symbol.
This is the default.
In the above example, this strategy computes a link line for ``main``
by starting with its original entries ``A B C``, and then appends
another ``A`` to satisfy the dependencies of ``B`` and ``C`` on ``A``.
The nominal order produced by this strategy is ``A B C A``.
Note that additional filtering for `Toolchain-Specific Behavior`_
may de-duplicate ``A`` on the actual linker invocation in the
generated build system, resulting in either ``A B C`` or ``B C A``.
``REORDER_FREELY``
Entries of :prop_tgt:`LINK_LIBRARIES` may be reordered, de-duplicated,
and intermixed with indirect link dependencies. This may result in
more efficient link lines, but does not give projects any control of
ordering among independent entries.
In the above example, this strategy computes a link line for ``main``
by re-ordering its original entries ``A B C`` to satisfy the
dependencies of ``B`` and ``C`` on ``A``.
The nominal order produced by this strategy is ``B C A``.
Toolchain-Specific Behavior
^^^^^^^^^^^^^^^^^^^^^^^^^^^
After one of the above strategies produces a nominal order among
direct and indirect link dependencies, the actual linker invocation
in the generated build system may de-duplicate entries based on
platform-specific requirements and linker capabilities.
See policy :policy:`CMP0156`.
For example, if the ``REORDER_MINIMALLY`` strategy produces ``A B C A``,
the actual link line may de-duplicate ``A`` as follows:
* If ``A`` is a static library and the linker re-scans automatically,
the first occurrence is kept, resulting in ``A B C``.
See policy :policy:`CMP0179`
* If ``A`` is a shared library on Windows, the first
occurrence is kept, resulting in ``A B C``.
* If ``A`` is a shared library on macOS or UNIX platforms, the last
occurrence is kept, resulting in ``B C A``.

@ -12,12 +12,20 @@ file name which may be a full path.
The following target properties may be set to specify content to be
configured into the file:
``MACOSX_FRAMEWORK_BUNDLE_NAME``
.. versionadded:: 3.31
Sets ``CFBundleName``.
``MACOSX_FRAMEWORK_BUNDLE_VERSION``
Sets ``CFBundleVersion``.
``MACOSX_FRAMEWORK_ICON_FILE``
Sets ``CFBundleIconFile``.
``MACOSX_FRAMEWORK_IDENTIFIER``
Sets ``CFBundleIdentifier``.
``MACOSX_FRAMEWORK_SHORT_VERSION_STRING``
Sets ``CFBundleShortVersionString``.

@ -38,6 +38,9 @@ Unity builds are supported for the following languages:
``CXX``
.. versionadded:: 3.16
``CUDA``
.. versionadded:: 3.31
``OBJC``
.. versionadded:: 3.29

@ -11,5 +11,5 @@ project file. This property is initialized by the value of the variable
:variable:`CMAKE_VS_DEBUGGER_COMMAND` if it is set when a target is
created.
This property only works for Visual Studio 12 2013 and above;
This property only works for :ref:`Visual Studio Generators`;
it is ignored on other generators.

@ -11,5 +11,5 @@ project file. This property is initialized by the value of the variable
:variable:`CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS` if it is set when a target is
created.
This property only works for Visual Studio 12 2013 and above;
This property only works for :ref:`Visual Studio Generators`;
it is ignored on other generators.

@ -11,5 +11,5 @@ project file. This property is initialized by the value of the variable
:variable:`CMAKE_VS_DEBUGGER_ENVIRONMENT` if it is set when a target is
created.
This property only works for Visual Studio 12 2013 and above;
This property only works for :ref:`Visual Studio Generators`;
it is ignored on other generators.

@ -11,5 +11,5 @@ project file. This property is initialized by the value of the variable
:variable:`CMAKE_VS_DEBUGGER_WORKING_DIRECTORY` if it is set when a target is
created.
This property only works for Visual Studio 12 2013 and above;
This property only works for :ref:`Visual Studio Generators`;
it is ignored on other generators.

@ -12,7 +12,7 @@ If the property is unset, Visual Studio uses the first matching
than one ``Main()`` method is available in the current project, the property
becomes mandatory for building the project.
This property only works for Visual Studio 12 2013 and above;
This property only works for :ref:`Visual Studio Generators`;
it is ignored on other generators.
.. code-block:: cmake

@ -0,0 +1,12 @@
VS_FRAMEWORK_REFERENCES
-----------------------
.. versionadded:: 3.31
Visual Studio framework references.
Specify a :ref:`semicolon-separated list <CMake Language Lists>` of framework references
to be added to a generated Visual Studio project. For example:
* "Microsoft.WindowsDesktop.App.WPF" for WPF applications
* "Microsoft.WindowsDesktop.App.WindowsForms" for WinForms applications
* "Microsoft.WindowsDesktop.App" for applications using both frameworks

@ -6,4 +6,4 @@ for the :generator:`Visual Studio 9 2008` generator, and older,
but all of those generators have been removed.
Use the :prop_tgt:`VS_GLOBAL_KEYWORD` target property to set the
keyword for Visual Studio 12 (2013) and newer.
keyword for remaining :ref:`Visual Studio Generators`.

@ -64,6 +64,10 @@ Commands
* The :command:`if` command gained new tests ``IS_READABLE``, ``IS_WRITABLE``
and ``IS_EXECUTABLE`` to check file or directory permissions.
* The :command:`try_compile` and :command:`try_run` commands gained a
``LINKER_LANGUAGE`` option to specify the :prop_tgt:`LINKER_LANGUAGE`
target property in the generated test project.
Variables
---------
@ -231,8 +235,8 @@ Changes made since CMake 3.29.0 include the following.
to ``perMachine`` on their own schedule by setting
``CPACK_WIX_INSTALL_SCOPE``.
3.29.6, 3.29.7, 3.29.8
----------------------
3.29.6, 3.29.7, 3.29.8, 3.29.9
------------------------------
* These versions made no changes to documented features or interfaces.
Some implementation updates were made to support ecosystem changes

@ -298,3 +298,10 @@ Changes made since CMake 3.30.0 include the following.
This refines 3.30.3's behavior change to restore behavior of nested
directories that call :command:`project` with the same project name,
and it addresses the bug in the implementation introduced in 3.30.4.
3.30.6
------
* This version made no changes to documented features or interfaces.
Some implementation updates were made to support ecosystem changes
and/or fix regressions.

@ -0,0 +1,271 @@
CMake 3.31 Release Notes
************************
.. only:: html
.. contents::
Changes made since CMake 3.30 include the following.
New Features
============
Presets
-------
* :manual:`cmake-presets(7)` files may now include comments using the key
``$comment`` at any level within the JSON object to provide documentation.
* :manual:`cmake-presets(7)` files may now request graphviz output using
the ``graphviz`` key in a configure preset.
Generators
----------
* The :ref:`Ninja Generators` and :ref:`Makefile Generators` now produce
a ``codegen`` build target. See policy :policy:`CMP0171`. It drives a
subset of the build graph sufficient to run custom commands created with
:command:`add_custom_command`'s new ``CODEGEN`` option.
Command-Line
------------
* The :option:`cmake --workflow` mode now accepts a preset name as the first
argument, allowing the simpler command line
:option:`cmake --workflow \<preset\> <cmake--workflow --preset>`.
* The :option:`cmake -LR[A][H]` option was added to list cache entries
whose names match a regular expression.
Compilers
---------
* The LFortran compiler is now supported with
:variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` ``LFortran``.
Commands
--------
* The :command:`add_custom_command` command gained a ``CODEGEN`` option
to mark a custom command's outputs as dependencies of a ``codegen`` target.
See policy :policy:`CMP0171`.
* The :command:`cmake_pkg_config` command was added as an endpoint for using
CMake's native pkg-config format parser. The only supported option in this
release is ``EXTRACT``, which provides low-level access to the values
produced by parsing a pkg-config file. For most users, this is not yet a
suitable replacement for the :module:`FindPkgConfig` module.
* The :command:`file(ARCHIVE_CREATE)` command gained a ``WORKING_DIRECTORY``
option to specify a working directory for the archiving process.
* The :command:`file(MAKE_DIRECTORY)` command gained a ``RESULT`` option
to capture failure in a result variable.
* The :command:`install(FILES)` and :command:`install(DIRECTORY)` commands'
``TYPE`` argument gained support for a ``LIBEXEC`` type.
Variables
---------
* The :variable:`CMAKE_AIX_SHARED_LIBRARY_ARCHIVE` variable and corresponding
:prop_tgt:`AIX_SHARED_LIBRARY_ARCHIVE` target property were added to
create shared libraries on AIX as shared library archives.
* The :variable:`CMAKE_EXPORT_BUILD_DATABASE` variable, a corresponding
:envvar:`CMAKE_EXPORT_BUILD_DATABASE` environment variable, and an
:prop_tgt:`EXPORT_BUILD_DATABASE` target property, were added to
enable exporting C++ module compile commands.
This is only supported with :ref:`Ninja Generators`.
* The :variable:`CMAKE_HOST_EXECUTABLE_SUFFIX` variable was added to
provide the suffix for executable names on the host platform.
* The :variable:`CMAKE_<LANG>_HOST_COMPILER_ID` and
:variable:`CMAKE_<LANG>_HOST_COMPILER_VERSION` variables were added,
where ``<LANG>`` is either ``CUDA`` or ``HIP``. They are populated
when :variable:`CMAKE_<LANG>_COMPILER_ID` is ``NVIDIA`` to identify
NVCC's host compiler.
* The :variable:`CMAKE_<LANG>_STANDARD_LINK_DIRECTORIES` variable was added.
Toolchain files can set this variable to control which link library directory
paths are always passed to the compiler for the specified language.
* The :variable:`CMAKE_LINK_LIBRARIES_STRATEGY` variable and
corresponding :prop_tgt:`LINK_LIBRARIES_STRATEGY` target
property were added to optionally specify the strategy
CMake uses to generate link lines.
Properties
----------
* The :prop_tgt:`MACOSX_FRAMEWORK_BUNDLE_NAME <MACOSX_FRAMEWORK_INFO_PLIST>`
target property was added to set the ``CFBundleName`` key in an Apple
:prop_tgt:`FRAMEWORK`'s ``Info.plist`` file.
* The :prop_tgt:`UNITY_BUILD` target property now supports the
``CUDA`` language.
* The :prop_tgt:`VS_FRAMEWORK_REFERENCES` target property was added
to tell :ref:`Visual Studio Generators` to add framework references.
Modules
-------
* Check modules now support a ``CMAKE_REQUIRED_LINK_DIRECTORIES`` variable.
The following modules gained this support:
* :module:`CMakePushCheckState`
* :module:`CheckCCompilerFlag`
* :module:`CheckCSourceCompiles`
* :module:`CheckCSourceRuns`
* :module:`CheckCXXCompilerFlag`
* :module:`CheckCXXSourceCompiles`
* :module:`CheckCXXSourceRuns`
* :module:`CheckCXXSymbolExists`
* :module:`CheckCompilerFlag`
* :module:`CheckFortranCompilerFlag`
* :module:`CheckFortranFunctionExists`
* :module:`CheckFortranSourceCompiles`
* :module:`CheckFortranSourceRuns`
* :module:`CheckFunctionExists`
* :module:`CheckIncludeFile`
* :module:`CheckIncludeFileCXX`
* :module:`CheckIncludeFiles`
* :module:`CheckOBJCCompilerFlag`
* :module:`CheckLibraryExists`
* :module:`CheckOBJCCompilerFlag`
* :module:`CheckOBJCSourceCompiles`
* :module:`CheckOBJCSourceRuns`
* :module:`CheckOBJCXXCompilerFlag`
* :module:`CheckOBJCXXSourceCompiles`
* :module:`CheckOBJCXXSourceRuns`
* :module:`CheckPrototypeDefinition`
* :module:`CheckSourceCompiles`
* :module:`CheckSourceRuns`
* :module:`CheckStructHasMember`
* :module:`CheckSymbolExists`
* :module:`CheckTypeSize`
* :module:`CheckVariableExists`
* The :module:`CMakePackageConfigHelpers` module's
:command:`generate_apple_platform_selection_file` function
gained support for iOS Mac Catalyst.
* The :module:`GoogleTest` module :command:`gtest_discover_tests` command
gained a new ``DISCOVERY_EXTRA_ARGS`` keyword. It allows extra arguments
to be appended to the command line when querying for the list of tests.
* The :module:`FindCUDAToolkit` module now provides a ``CUDA::nvml_static``
target.
* The :module:`FindOpenMP` module gained support for the ``CUDA`` language.
CTest
-----
* The :command:`ctest_submit` command and :option:`ctest -T Submit <ctest -T>`
step now verify TLS server certificates for connections to ``https://`` URLs
by default. See the :variable:`CTEST_TLS_VERIFY` variable for details.
* The :command:`ctest_submit` command and :option:`ctest -T Submit <ctest -T>`
step now require TLS 1.2 or higher for connections to ``https://`` URLs by
default. See the :variable:`CTEST_TLS_VERSION` variable for details.
CPack
-----
* The :cpack_gen:`CPack DEB Generator` gained a
:variable:`CPACK_DEBIAN_PACKAGE_MULTIARCH` option
to support multi-arch packages.
* The :cpack_gen:`CPack IFW Generator` gained the new
:variable:`CPACK_IFW_PACKAGE_PRODUCT_IMAGE_URLS` variable to
specify images associated with entries of
:variable:`CPACK_IFW_PACKAGE_PRODUCT_IMAGES`.
This feature is available for QtIFW 4.0 and newer.
* The :cpack_gen:`CPack RPM Generator` gained support for ``zstd`` as a
:variable:`CPACK_RPM_COMPRESSION_TYPE` value.
* The :module:`CPack` module enables per-machine installation by default
in the :cpack_gen:`CPack WIX Generator`. See policy :policy:`CMP0172`
and the :variable:`CPACK_WIX_INSTALL_SCOPE` variable.
Deprecated and Removed Features
===============================
* Compatibility with versions of CMake older than 3.10 is now deprecated
and will be removed from a future version. Calls to
:command:`cmake_minimum_required` or :command:`cmake_policy` that set
the policy version to an older value now issue a deprecation diagnostic.
* The :module:`CMakeFindFrameworks` module has been deprecated via
:policy:`CMP0173`. Projects should use :command:`find_library` instead.
* The :generator:`Visual Studio 12 2013` generator has been removed.
Other Changes
=============
* When static libraries on link lines are de-duplicated (by policy
:policy:`CMP0156`), the first occurrence is now kept on all platforms.
See policy :policy:`CMP0179`.
* Empty list elements in the :prop_tgt:`TEST_LAUNCHER` and
:prop_tgt:`CROSSCOMPILING_EMULATOR` target properties are now preserved by:
* The :command:`add_test` command.
* The :command:`ExternalData_Add_Test` command from the
:module:`ExternalData` module.
* The :command:`gtest_add_tests` and :command:`gtest_discover_tests`
commands from the :module:`GoogleTest` module.
Empty list elements after the ``EXTRA_ARGS`` keyword of these
two commands are also now preserved.
See policy :policy:`CMP0178`.
* The :command:`execute_process` command's ``ENCODING`` option,
meaningful on Windows, now defaults to ``UTF-8``.
See policy :policy:`CMP0176`.
* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands now
verify TLS server certificates for connections to ``https://`` URLs by
default. See the :variable:`CMAKE_TLS_VERIFY` variable for details.
This change was made without a policy so that users are protected
even when building projects that have not been updated.
Users may set the :envvar:`CMAKE_TLS_VERIFY` environment
variable to ``0`` to restore the old default.
* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands now
require TLS 1.2 or higher for connections to ``https://`` URLs by default.
See the :variable:`CMAKE_TLS_VERSION` variable for details.
* The :command:`file(GET_RUNTIME_DEPENDENCIES)` command was updated
to more closely match the dynamic loader's behavior on Linux.
* The :command:`install` command's ``DESTINATION`` arguments are
now :ref:`normalized <Normalization>`, with the exception
of ``INCLUDES DESTINATION`` arguments in :command:`install(TARGETS)`.
See policy :policy:`CMP0177`.
* The :command:`project` command now always sets
:variable:`<PROJECT-NAME>_SOURCE_DIR`, :variable:`<PROJECT-NAME>_BINARY_DIR`,
and :variable:`<PROJECT-NAME>_IS_TOP_LEVEL` as both normal variables and
cache entries. See policy :policy:`CMP0180`.
* The :command:`cmake_parse_arguments(PARSE_ARGV)` command now defines a
variable for an empty string after a single-value keyword. See policy
:policy:`CMP0174`.
Updates
=======
Changes made since CMake 3.31.0 include the following.
3.31.1
------
* This version made no changes to documented features or interfaces.
Some implementation updates were made to support ecosystem changes
and/or fix regressions.

@ -13,6 +13,7 @@ Releases
.. toctree::
:maxdepth: 1
3.31 <3.31>
3.30 <3.30>
3.29 <3.29>
3.28 <3.28>

@ -0,0 +1,10 @@
CMAKE_AIX_SHARED_LIBRARY_ARCHIVE
--------------------------------
.. versionadded:: 3.31
On AIX, enable creation of shared library archives.
This variable initializes the :prop_tgt:`AIX_SHARED_LIBRARY_ARCHIVE`
target property on ``SHARED`` library targets as they are created
by :command:`add_library`. See that target property for details.

@ -18,7 +18,7 @@ Example values:
::
$(Configuration) = Visual Studio 12 and above
$(Configuration) = Visual Studio
$(CONFIGURATION) = Xcode
. = Make-based tools
. = Ninja

@ -1,10 +1,14 @@
CMAKE_EXECUTABLE_SUFFIX
-----------------------
The suffix for executables on this platform.
The suffix for executables on the target platform.
The suffix to use for the end of an executable filename if any, ``.exe``
on Windows.
:variable:`CMAKE_EXECUTABLE_SUFFIX_<LANG>` overrides this for
language ``<LANG>``.
See the :variable:`CMAKE_HOST_EXECUTABLE_SUFFIX` variable for the
executable suffix on the host platform.

@ -0,0 +1,86 @@
CMAKE_EXPORT_BUILD_DATABASE
---------------------------
.. versionadded:: 3.31
.. note ::
This variable is meaningful only when experimental support for build
databases has been enabled by the
``CMAKE_EXPERIMENTAL_EXPORT_BUILD_DATABASE`` gate.
Enable/Disable output of module compile commands during the build.
If enabled, generates a ``build_database.json`` file containing the
information necessary to compile a target's C++ module sources with any
tooling. The format of the JSON file looks like:
.. code-block:: javascript
{
"version": 1,
"revision": 0,
"sets": [
{
"family-name" : "export_build_database",
"name" : "export_build_database@Debug",
"translation-units" : [
{
"arguments": [
"/path/to/compiler",
"...",
],
"baseline-arguments" :
[
"...",
],
"local-arguments" :
[
"...",
],
"object": "CMakeFiles/target.dir/source.cxx.o",
"private": true,
"provides": {
"importable": "path/to/bmi"
},
"requires" : [],
"source": "path/to/source.cxx",
"work-directory": "/path/to/working/directory"
}
],
"visible-sets" : []
}
]
}
This is initialized by the :envvar:`CMAKE_EXPORT_BUILD_DATABASE` environment
variable, and initializes the :prop_tgt:`EXPORT_BUILD_DATABASE` target
property for all targets.
.. note::
This option is implemented only by the :ref:`Ninja Generators`. It is
ignored on other generators.
When supported and enabled, numerous targets are created in order to make it
possible to build a file containing just the commands that are needed for the
tool in question.
``cmake_build_database-<CONFIG>``
Writes ``build_database_<CONFIG>.json``. Writes a build database for the
entire build for the given configuration and all languages. Not available if
the configuration name is the empty string.
``cmake_build_database-<LANG>-<CONFIG>``
Writes ``build_database_<LANG>_<CONFIG>.json``. Writes build database for
the entire build for the given configuration and language. Not available if
the configuration name is the empty string.
``cmake_build_database-<LANG>``
Writes ``build_database_<LANG>.json``. Writes build database for the entire
build for the given language and all configurations. In a multi-config
generator, other build configuration database may be assumed to exist.
``cmake_build_database``
Writes to ``build_database.json``. Writes build database for all languages
and configurations. In a multi-config generator, other build configuration
database may be assumed to exist.

@ -3,23 +3,26 @@ CMAKE_FIND_PACKAGE_SORT_ORDER
.. versionadded:: 3.7
The default order for sorting packages found using :command:`find_package`.
It can assume one of the following values:
The default order for sorting directories which match a search path containing
a glob expression found using :command:`find_package`. It can assume one of
the following values:
``NONE``
Default. No attempt is done to sort packages.
Default. No attempt is done to sort directories.
The first valid package found will be selected.
``NAME``
Sort packages lexicographically before selecting one.
Sort directories lexicographically before searching.
``NATURAL``
Sort packages using natural order (see ``strverscmp(3)`` manual),
Sort directories using natural order (see ``strverscmp(3)`` manual),
i.e. such that contiguous digits are compared as whole numbers.
Natural sorting can be employed to return the highest version when multiple
versions of the same library are found by :command:`find_package`. For
example suppose that the following libraries have been found:
versions of the same library are available to be found by
:command:`find_package`. For example suppose that the following libraries
have package configuration files on disk, in a directory of the same name,
with all such directories residing in the same parent directory:
* libX-1.1.0
* libX-1.2.9
@ -35,4 +38,4 @@ version number ``libX-1.2.10``.
The sort direction can be controlled using the
:variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION` variable
(by default decrescent, e.g. lib-B will be tested before lib-A).
(by default descending, e.g. lib-B will be tested before lib-A).

@ -3,7 +3,7 @@ CMAKE_FIND_PACKAGE_TARGETS_GLOBAL
.. versionadded:: 3.24
Setting to ``TRUE`` promotes all :prop_tgt:`IMPORTED` targets discoverd
Setting to ``TRUE`` promotes all :prop_tgt:`IMPORTED` targets discovered
by :command:`find_package` to a ``GLOBAL`` scope.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save