summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Help: Minor cleanups of 3.24 release notesCraig Scott2022-06-101-23/+25
|
* Help: Trivial grammar fixup in LINK_GROUPS genexCraig Scott2022-06-101-1/+1
|
* Merge topic 'ExternalProject-stamp-genex' into release-3.24Brad King2022-06-103-15/+38
|\ | | | | | | | | | | | | c111d440ce ExternalProject: Express per-config step stamp file paths using CONFIG genex Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7341
| * ExternalProject: Express per-config step stamp file paths using CONFIG genexBrad King2022-06-083-15/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | The ExternalProject module has long used the generator-specific placeholder in the `${CMAKE_CFG_INTDIR}` variable to express per-config stamp file paths in multi-config generators. Now that most generators support generator expressions in custom command outputs, we can use the `$<CONFIG>` genex instead. In particular, this fixes cross-config `BUILD_BYPRODUCTS` with the Ninja Multi-Config generator. Fixes: #23595
* | Merge topic 'CheckIPOSupported-honor-flags' into release-3.24Brad King2022-06-1014-3/+90
|\ \ | | | | | | | | | | | | | | | | | | | | | ec08bc1752 CheckIPOSupported: Compile check using flags of calling project Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7343
| * | CheckIPOSupported: Compile check using flags of calling projectBrad King2022-06-1014-3/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Forward `CMAKE_<LANG>_FLAGS` and `CMAKE_<LANG>_FLAGS_DEBUG` from the calling project into the test project. The set of flags may affect the availability of IPO support. Since this may change the result of the check for existing projects, add a policy for compatibility. This was discovered after commit 5fcadc481e (MSVC: Default to -ZI instead of /Zi for x86 and x64, 2022-05-24) introduced policy CMP0138 to switch our default for MSVC's debug info flag. The `-ZI` flag is incompatible with the `-GL` flag used for IPO, so CMP0138 was reverted pending future work on an alternative solution. Re-use the CMP0138 policy number for this change to CheckIPOSupported instead. Fixes: #23607
* | | Merge topic 'revert-msvc-compilers-default-to-ZI' into release-3.24Brad King2022-06-1014-100/+6
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | 7d73e88d3a MSVC: Revert "Default to -ZI instead of /Zi for x86 and x64" Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7344
| * | MSVC: Revert "Default to -ZI instead of /Zi for x86 and x64"Brad King2022-06-0914-100/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit 5fcadc481e (MSVC: Default to -ZI instead of /Zi for x86 and x64, 2022-05-24). The `-ZI` flag is incompatible with the `-GL` flag used for IPO, and so is not an unconditionally better default. Revert the change pending future design of a first-class setting for MSVC debug info format that can be automatically reconciled with IPO settings. That commit introduced policy CMP0138, but we already have later policy numbers used too. Leave placeholder text to avoid policy renumbering. Issue: #23607, #10189
* | Merge topic 'vs-android-api' into release-3.24Brad King2022-06-091-0/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | 9d6a080421 VS: Add AndroidAPILevel element to generated project files Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Kyle Edwards <kyle.edwards@kitware.com> Merge-request: !7339
| * | VS: Add AndroidAPILevel element to generated project filesBenjamín de la Fuente Ranea2022-06-081-0/+4
| | | | | | | | | | | | | | | | | | | | | Map `CMAKE_SYSTEM_VERSION` to the Android Target API Level for Visual Studio projects. Fixes: #22886
* | | Merge topic 'doc-using-deps-guide' into release-3.24Brad King2022-06-095-174/+405
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 92e93f5c9e Help: Overhaul and expand the Using Dependencies Guide Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !7332
| * | | Help: Overhaul and expand the Using Dependencies GuideCraig Scott2022-06-095-174/+405
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The guide previously only focused on the find_package() command, with a bias towards libraries. FetchContent was not mentioned at all. Reorganise and update the existing content. Add new sections to cover providing dependencies with FetchContent and dependency providers. Improve discoverability of the guide by mentioning it at the beginning of the find_package(), FetchContent and dependency provider docs.
* | | | Begin 3.24 release versioningBrad King2022-06-081-3/+3
| | | |
* | | | Help: Drop development topic notes to prepare releaseBrad King2022-06-082-9/+0
| | | | | | | | | | | | | | | | | | | | Release versions do not have the development topic section of the CMake Release Notes index page.
* | | | Merge topic 'doc-3.24-relnotes'Brad King2022-06-0860-406/+353
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 253941634c Help: Update Sphinx versionadded directives for 3.24 release a811489b35 Help: Organize and revise 3.24 release notes a3fc469882 Help: Consolidate 3.24 release notes Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7338
| * | | Help: Update Sphinx versionadded directives for 3.24 releaseBrad King2022-06-084-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | Run the script: Utilities/Sphinx/update_versions.py --since v3.23.0 --overwrite
| * | | Help: Organize and revise 3.24 release notesBrad King2022-06-081-205/+243
| | | | | | | | | | | | | | | | | | | | Add section headers similar to the 3.23 release notes and move each individual bullet into an appropriate section. Revise a few bullets.
| * | | Help: Consolidate 3.24 release notesBrad King2022-06-0756-406/+307
| | |/ | |/| | | | | | | | | | Run the `Utilities/Release/consolidate-relnotes.bash` script to move notes from `Help/release/dev/*` into `Help/release/3.24.rst`.
* | | Merge topic 'ci-nmc'Brad King2022-06-087-0/+75
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3ed06404bf gitlab-ci: add nightly job testing Ninja Multi-Config on Windows e39acc2b3a gitlab-ci: add nightly job testing Ninja Multi-Config on macOS Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7337
| * | | gitlab-ci: add nightly job testing Ninja Multi-Config on WindowsBrad King2022-06-074-0/+44
| | | |
| * | | gitlab-ci: add nightly job testing Ninja Multi-Config on macOSBrad King2022-06-074-0/+31
| |/ /
* | | Merge topic 'set_source_files_properties'Brad King2022-06-081-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 2a37b7fd77 Help: Fix typo with misnamed set_source_files_property() in example Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7340
| * | | Help: Fix typo with misnamed set_source_files_property() in exampleDan Walsh2022-06-081-1/+1
| |/ /
* | | CMake Nightly Date StampKitware Robot2022-06-081-1/+1
|/ /
* | Merge topic 'ci-ispc'Brad King2022-06-0723-22/+110
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | d14349c907 ci: Enable ISPC tests on Linux, Windows, and macOS nightly builds 49996faaac ci: remove ISPC from the Fedora CI image 3e791592ad gitlab-ci: init macOS and Windows jobs with per-CMAKE_CONFIGURATION scripts Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7336
| * | ci: Enable ISPC tests on Linux, Windows, and macOS nightly buildsBrad King2022-06-0616-0/+102
| | |
| * | ci: remove ISPC from the Fedora CI imageBrad King2022-06-067-22/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit 5ece12b7e4 (gitlab-ci: add ISPC to the Fedora CI image, 2020-08-18, v3.19.0-rc1~244^2). Later we will download ISPC in specific jobs. Update a `RunCMake.NinjaMultiConfig` test expectation to account for a change to the Qt deployed on Fedora 36.
| * | gitlab-ci: init macOS and Windows jobs with per-CMAKE_CONFIGURATION scriptsBrad King2022-06-063-0/+6
| | | | | | | | | | | | | | | | | | Apply the approach from commit 747940157f (gitlab-ci: init environment with per-CMAKE_CONFIGURATION shell scripts, 2021-03-12, v3.21.0-rc1~480^2~4) to macOS and Windows too.
* | | Merge topic 'rel-linux'Brad King2022-06-072-6/+0
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | a4c48afbbc Utilities/Release: Drop unnecessary system API definitions for Linux Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7333
| * | | Utilities/Release: Drop unnecessary system API definitions for LinuxBrad King2022-06-062-6/+0
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We previously defined `_POSIX_C_SOURCE` and friends while building binary packages in order to minimize the version of glibc needed at runtime. The definitions were added by commit facc240a45 (Utilities/Release: Add docker specs to build and test Linux binaries, 2019-08-23, v3.16.0-rc1~184^2~2), but came from older packaging scripts that were removed by commit 689fdbfc61 (Utilities/Release: Drop linux64 script in favor of docker build, 2019-08-27, v3.16.0-rc1~184^2). Those older scripts were meant for use in a hand-maintained environment. Now that we use base images of old CentOS versions to establish the build environment, our builds are already limited to older glibc versions (glibc 2.12 from centos6 on x86_64, and 2.17 from centos7 on aarch64). Our old system API definitions no longer affect the glibc version required by the binaries. Drop them to avoid potential conflicts with system API definitions added by changes like commit f034b0f663 (CMake compilation: do not use compiler extensions, 2020-03-14, v3.18.0-rc1~494^2) and commit c7c3e39e4f (Utilities: Activate POSIX APIs even without compiler extensions, 2022-06-02).
* | | Merge topic 'print-sources'Brad King2022-06-0716-27/+184
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d8dcfa7776 Tests: Add tests for CMakePrintHelpers b7ddfcfe08 cmake_print_properties(): Update grammar docs e52b9e1270 PrintHelpers: Document argument order restriction d87ed4d88f PrintHelpers: Fix indentation 5fa70e1738 PrintHelpers: Rewrite a few more error messages 2579503f45 PrintHelpers: Fix target SOURCES property Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7331
| * | | Tests: Add tests for CMakePrintHelpersFeRD (Frank Dana)2022-06-0615-0/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add three tests in Tests/RunCMake/PrintHelpers, meant to verify basic functionality of the module. Tests are: * Variables: Test the results of a cmake_print_variables() call on two variables set within the test script. * Properties: Test cmake_print_properties() calls on a pair of SOURCES and a pair of TARGETS, printing some basic properties. * PropertiesSources: Specifically verify the results of a cmake_print_properties() call for the SOURCES property of a TARGET. Prior to the fix introduced alongside these tests, it was a known bug that such a request caused a FATAL_ERROR.
| * | | cmake_print_properties(): Update grammar docsFeRD (Frank Dana)2022-06-061-6/+6
| | | |
| * | | PrintHelpers: Document argument order restrictionFeRD (Frank Dana)2022-06-061-1/+4
| | | |
| * | | PrintHelpers: Fix indentationFeRD (Frank Dana)2022-06-061-2/+2
| | | |
| * | | PrintHelpers: Rewrite a few more error messagesFeRD (Frank Dana)2022-06-061-2/+3
| | | |
| * | | PrintHelpers: Fix target SOURCES propertyFeRD (Frank Dana)2022-06-061-16/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's been a long-standing bug in CMakePrintHelpers that the cmake_print_properties() function cannot print the SOURCES property of a requested TARGET, confusing it with a request to print properties of SOURCES. We work around this by parsing the arguments in two stages, so that a SOURCES that comes after the PROPERTIES keyword is handled differently from a SOURCES that comes before it. This adds the restriction that the "mode" keyword (TARGETS SOURCES DIRECTORIES etc...) and its arguments **must** precede the PROPERTIES keyword and its arguments. In other words: 1. Both of these are now valid and will be interpreted correctly, whereas previously only the first was, and the second caused a FATAL_ERROR: cmake_print_properties(SOURCES foo.c PROPERTIES LANGUAGE) cmake_print_properties(TARGETS foo PROPERTIES SOURCES) 2. This, OTOH, which used to be valid, no longer is, and will trigger a FATAL_ERROR: cmake_print_properties(PROPERTIES LANGUAGE SOURCES foo.c) Fixes: #14883
* | | | Merge topic 'FindPython-interpreter-search-strategy'Brad King2022-06-071-2/+11
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8de50bae84 FindPython*: enhance interpreter lookup Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7330
| * | | | FindPython*: enhance interpreter lookupMarc Chevrier2022-06-051-2/+11
| |/ / / | | | | | | | | | | | | Fixes: #23588
* | | | Merge topic 'tests-java-compiler-var'Brad King2022-06-071-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fdeb237934 Tests: Use Java_JAVAC_EXECUTABLE variable consistently Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7327
| * | | | Tests: Use Java_JAVAC_EXECUTABLE variable consistentlyCraig Scott2022-06-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In certain specific scenarios, it is possible to end up with JAVA_COMPILE being unset, but Java_JAVAC_EXECUTABLE being set. This typically occurs when running different versions of CMake in the same build directory without deleting the CMakeCache.txt each time. This can result in an obscure error about the wrong number of arguments to the get_filename_component() command, but the real cause is the JAVA_COMPILE variable being unset. The JAVA_COMPILE variable is only set by the FindJava module, and it is a legacy variable that has been superceded by Java_JAVAC_EXECUTABLE. The latter is what the if() expression tests, so use that same variable in the body of the if() block for consistency and to avoid the above problem.
* | | | | Merge topic 'ext_disabled'Brad King2022-06-071-5/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d5014741c9 Tests/CompileFeatures: Fix CMP0128OldSameStandard with default OFF Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7328
| * | | | | Tests/CompileFeatures: Fix CMP0128OldSameStandard with default OFFRaul Tambre2022-06-041-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With CMP0128 OLD compiler extensions are enabled by default regardless of the compiler's default. Fix the test to always check for the extension flag as it was intended to. Fixes: 4a0485be7f4ab06201c478f5a46111ab1e8e773e (cmStandardLevelResolver: Avoid unnecessary flags, fix unset level logic, 2021-04-29)
* | | | | | CMake Nightly Date StampKitware Robot2022-06-071-1/+1
| |_|_|/ / |/| | | |
* | | | | Merge topic 'if-command-PATH_EQUAL'Brad King2022-06-0617-2/+156
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | be4b9e10af if command: Add PATH_EQUAL operator Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7321
| * | | | | if command: Add PATH_EQUAL operatorMarc Chevrier2022-06-0317-2/+156
| | | | | |
* | | | | | Merge topic 'c-no-extensions'Brad King2022-06-066-0/+44
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c7c3e39e4f Utilities: Activate POSIX APIs even without compiler extensions 3ba324b6b6 libarchive: Remove a system preprocessor macro that conflicts with a local var 4a283fcc31 librhash: Explicitly enable large file support on 32-bit targets Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7320
| * | | | | | Utilities: Activate POSIX APIs even without compiler extensionsBrad King2022-06-044-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compile some third-party libraries with preprocessor definitions that activate POSIX APIs even when compiler extensions are not enabled. We already do this in libuv, inherited from the upstream buildsystem. This extends commit f034b0f663 (CMake compilation: do not use compiler extensions, 2020-03-14, v3.18.0-rc1~494^2). Issue: #20454
| * | | | | | libarchive: Remove a system preprocessor macro that conflicts with a local varBrad King2022-06-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On SunOS i386, the system headers sometimes define macro names corresponding to register names, short and with no prefix. Undefine one that conflicts with our code.
| * | | | | | librhash: Explicitly enable large file support on 32-bit targetsBrad King2022-06-041-0/+1
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | `_LARGEFILE_SOURCE` is needed at least on SunOS i386 if compiler extensions are not enabled.