summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* cmConstStack: Factor out of cmListFileBacktraceBrad King2022-04-0225-87/+142
| | | | | | | This presents value semantics for a stack of constant values. Internally it shares ownership to avoid copies. Previously this was implemented by `cmListFileBacktrace` explicitly, but the approach can be re-used for other kinds of stacks.
* cmListFileBacktrace: Clarify call sites that only push a file pathBrad King2022-04-013-17/+17
| | | | | This removes the last part of the `cmListFileBacktrace` interface that needs to know the type of data in its stack.
* CMake Nightly Date StampKitware Robot2022-04-011-1/+1
|
* Merge topic 'string-JSON-error-modes'Brad King2022-03-311-2/+2
|\ | | | | | | | | | | | | | | 93dce4b4bf string(JSON): fix error message on invalid mode Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7130
| * string(JSON): fix error message on invalid modeCarlo Teubner2022-03-301-2/+2
| | | | | | | | | | | | | | The `GET_ARRAY` and `MEMBERS` modes were removed during development and review of commit 8eab76eb84 (string(JSON): Adds JSON parsing support to the string command, 2020-08-24, v3.19.0-rc1~159^2), but were accidentally left in an error message.
* | Merge topic 'ninja_compile_database_understand_new_cuda_lang_variables'Brad King2022-03-311-15/+19
|\ \ | | | | | | | | | | | | | | | | | | | | | f7c6b9833c CUDA: Ninja generator generates valid compile database Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7129
| * | CUDA: Ninja generator generates valid compile databaseRobert Maynard2022-03-301-15/+19
| | | | | | | | | | | | | | | | | | | | | The ninja generator has been updated to poperly write the compile database when the CUDA language has been enabled. Fixes #23368
| * | CMake 3.23.0v3.23.0Brad King2022-03-291-1/+1
| | |
| * | Merge topic 'cpack-ifw-validate-input' into release-3.23Brad King2022-03-281-2/+22
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e41f1ef6ff CPack/IFW: Add missing referenced source file validation Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: Konstantin Podsvirov <konstantin@podsvirov.pro> Merge-request: !7116
| * \ \ Merge topic 'bindexplib-arm64ec' into release-3.23Brad King2022-03-281-15/+43
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b019ee1a8d bindexplib: Exclude entry and exit thunks for arm64EC Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7112
| * \ \ \ Merge topic 'aix-exe-exports' into release-3.23Brad King2022-03-281-3/+3
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a8dae21ac1 AIX: Fix executable ENABLE_EXPORTS in Makefile generators Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7120
* | | | | | CMake Nightly Date StampKitware Robot2022-03-311-1/+1
| |_|_|_|/ |/| | | |
* | | | | Merge topic 'verify-header-sets'Brad King2022-03-305-0/+207
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c798744f81 FILE_SET: Add VERIFY_HEADER_SETS target property Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7085
| * | | | | FILE_SET: Add VERIFY_HEADER_SETS target propertyKyle Edwards2022-03-295-0/+207
| | | | | | | | | | | | | | | | | | | | | | | | Fixes: #23338
* | | | | | Merge topic 'framework-consumption-during-compilation'Brad King2022-03-301-4/+10
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 45ac71d8bc Ensure targets which are frameworks can be used freely Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: alcroito <alexandru.croitor@qt.io> Merge-request: !7121
| * | | | | | Ensure targets which are frameworks can be used freelyMarc Chevrier2022-03-291-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure flag -F/path/to/framework is specified during compilation step of consumers of the framework. Fixes: #23336
* | | | | | | CMake Nightly Date StampKitware Robot2022-03-301-1/+1
| | | | | | |
* | | | | | | Merge topic 'set-env-var-first-run'Brad King2022-03-292-2/+7
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 05e510bf0b CMP0132: Don't set compiler environment variables on first run 774a9eb210 Tests: Reorder CMP0129 test Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7108
| * | | | | | | CMP0132: Don't set compiler environment variables on first runCraig Scott2022-03-292-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running CMake for the first time in a build tree, for some generators CMake would set compiler environment variables like CC, CXX, etc. when the corresponding language is enabled. That behavior was never documented and can result in different behavior between the first and subsequent runs. Add a policy to no longer set those environment variables. Fixes: #21378
* | | | | | | | Merge topic 'fix-23191'Brad King2022-03-293-14/+24
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fd46db1745 Trace: process else and elseif commands correctly Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: Kyle Edwards <kyle.edwards@kitware.com> Merge-request: !7118
| * | | | | | | Trace: process else and elseif commands correctlyBraulio Valdivielso Martinez2022-03-253-14/+24
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There have been two bugs reported about the `else` and `elseif` commands in the context of the tracing functionality and the json-v1 format (#23191 #22315). In essence, the reported traces referred to the layer of the stacktrace immediately on top of the expected ones. This MR fixes both issues. My solution adds a new parameter to the `PrintCommandTrace` function, `commandMissingFromStack`, that callers can specify if the command they want to report a trace for is not a regular part of the stack maintained in `cmMakefile`. This is only the case for `else` and `elseif`. The other bug is fixed by having the caller pass a `cmListFileBacktrace`, which helps in getting the right lines, file names... for the reported command. Fixes: #23191 #22315
* | | | | | | CMake Nightly Date StampKitware Robot2022-03-291-1/+1
| | | | | | |
* | | | | | | Merge topic 'variable-link-feature-supported'Brad King2022-03-281-2/+6
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1777883f8b genex-LINK_(LIBRARY|GROUP) features: update variables behavior Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7113
| * | | | | | genex-LINK_(LIBRARY|GROUP) features: update variables behaviorMarc Chevrier2022-03-251-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Variable CMAKE_LINK_(LIBRARY|GROUP)_USING_<FEATURE>_SUPPORTED is evaluated only if CMAKE_<LANG>_LINK_(LIBRARY|GROUP)_USING_<FEATURE>_SUPPORTED is not defined. This new behavior enable to activate a feature globally on a platform and to disable it for some compilers and languages.
* | | | | | | Merge topic 'cpack-ifw-validate-input'Brad King2022-03-281-2/+22
|\ \ \ \ \ \ \ | | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e41f1ef6ff CPack/IFW: Add missing referenced source file validation Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: Konstantin Podsvirov <konstantin@podsvirov.pro> Merge-request: !7116
| * | | | | | CPack/IFW: Add missing referenced source file validationCraig Scott2022-03-251-2/+22
| | |_|/ / / | |/| | | |
* | | | | | Merge topic 'bindexplib-arm64ec'Brad King2022-03-281-15/+43
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b019ee1a8d bindexplib: Exclude entry and exit thunks for arm64EC Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7112
| * | | | | bindexplib: Exclude entry and exit thunks for arm64ECmoyo19972022-03-251-15/+43
| |/ / / /
| * | | | CMake 3.23.0-rc5v3.23.0-rc5Brad King2022-03-231-1/+1
| | | | |
* | | | | Merge topic 'aix-exe-exports'Brad King2022-03-281-3/+3
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | a8dae21ac1 AIX: Fix executable ENABLE_EXPORTS in Makefile generators Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7120
| * | | | AIX: Fix executable ENABLE_EXPORTS in Makefile generatorsBrad King2022-03-261-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit afcd9fe669 (AIX: Add an option to disable automatic exports from shared libraries, 2020-01-30, v3.17.0-rc1~47^2) the population of the `<AIX_EXPORTS>` rule variable placeholder was accidentally added to the device linking rule rather than the main linking rule. This caused our `ExportImportList` script on AIX, when called for executables with `ENABLE_EXPORTS` set, to be given an `AIX_EXPORTS` file name that does not exist, leading to a warning from the `dump` tool. Move the population of the `<AIX_EXPORTS>` placeholder in the Makefile generators to the main link rule. Issue: #20290
| * | | | CMake 3.21.6v3.21.6Brad King2022-03-041-1/+1
| | | | |
| * | | | CMake 3.21.5v3.21.5Brad King2022-02-011-1/+1
| | | | |
* | | | | CMake Nightly Date StampKitware Robot2022-03-281-1/+1
| | | | |
* | | | | CMake Nightly Date StampKitware Robot2022-03-271-1/+1
| | | | |
* | | | | CMake Nightly Date StampKitware Robot2022-03-261-1/+1
| |_|_|/ |/| | |
* | | | Merge topic 'link-interface-direct'Brad King2022-03-2511-50/+116
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cf312a2e54 LINK_LIBRARIES: Add support for LINK_ONLY genex 41a6b4a53b INTERFACE_LINK_LIBRARIES_DIRECT: Honor link dependencies through LINK_ONLY 73337cb383 LINK_LIBRARIES: Evaluate separately for linking and usage requirements Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7107
| * | | | LINK_LIBRARIES: Add support for LINK_ONLY genexBrad King2022-03-242-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we always used content guarded by `$<LINK_ONLY:...>` in `LINK_LIBRARIES`, even when evaluating for non-linking usage requirements. Add a policy to honor `LINK_ONLY` in `LINK_LIBRARIES` the same way we already do in `INTERFACE_LINK_LIBRARIES`.
| * | | | INTERFACE_LINK_LIBRARIES_DIRECT: Honor link dependencies through LINK_ONLYBrad King2022-03-221-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit f3ad061858 (Add usage requirements to update direct link dependencies, 2022-01-12, v3.23.0-rc1~44^2), we evaluated the transitive closure of `INTERFACE_LINK_LIBRARIES` as a non-linking usage requirement. That left out `INTERFACE_LINK_LIBRARIES_DIRECT` link dependencies that appear behind private dependencies of a static library, guarded by the `$<LINK_ONLY:...>` generator expression. At the time, that decision was intentional, in order to prevent arbitrary usage requirements from leaking out of `PRIVATE` dependencies. Since then, we've revised evaluation of `LINK_LIBRARIES` to distinguish between collecting link dependencies and other usage requirements. Use that information when following `INTERFACE_LINK_LIBRARIES` to collect the matching kind of requirements from `INTERFACE_LINK_LIBRARIES_DIRECT`. Fixes: #22496
| * | | | LINK_LIBRARIES: Evaluate separately for linking and usage requirementsBrad King2022-03-2210-43/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We evaluate `LINK_LIBRARIES` and `INTERFACE_LINK_LIBRARIES` for two purposes: * Constructing the link line. * Collecting usage requirements. We evaluate `INTERFACE_LINK_LIBRARIES` separately for each purpose in order to support the `$<LINK_ONLY:...>` generator expression used to express private link dependencies of a static library. Previously we only evaluated `LINK_LIBRARIES` for linking, and used that result for collecting usage requirements too. Therefore `$<LINK_ONLY:...>` does not work in `LINK_LIBRARIES`. With the introduction of `INTERFACE_LINK_LIBRARIES_DIRECT`, evaluation of `LINK_LIBRARIES` now needs to distinguish these two cases in order to honor link dependencies encountered through `$<LINK_ONLY:...>` without also exposing other usage requirements through private dependencies of a static library. Revise internal infrastructure to distinguish the two cases when evaluating `LINK_LIBRARIES`. Make the information available in code paths for `INTERFACE_LINK_LIBRARIES_DIRECT` and `LINK_ONLY`. Defer actually using the information to later commits. Issue: #22496
* | | | | Merge topic 'cmake-fresh'Brad King2022-03-253-0/+15
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9f1471739d cmake: Add --fresh option to clear the cache and start from scratch Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !7099
| * | | | | cmake: Add --fresh option to clear the cache and start from scratchBrad King2022-03-223-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplify the workflow to re-run CMake from scratch as if a build tree were never before processed, regardless of whether it has been. Fixes: #23119
* | | | | | Merge topic 'cmake-E-tar-touch'Brad King2022-03-254-11/+35
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0b7fd783f8 cmake -E tar: Add --touch option f692cba34b Tests: Add test for 'cmake -E tar --mtime' option Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7061
| * | | | | cmake -E tar: Add --touch optionKasper Laudrup2022-03-234-11/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similar to GNU tar add a --touch option to the tar extract command to skip extracting the timestamps from the files in the archive effectively touching them as if they were just created. Issue: #22746
* | | | | | CMake Nightly Date StampKitware Robot2022-03-251-1/+1
| | | | | |
* | | | | | CMake Nightly Date StampKitware Robot2022-03-241-1/+1
|/ / / / /
* | | | | Merge topic 'initialize-property-name'Brad King2022-03-231-4/+4
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | 26caa97057 define_property(): Change constraints of INITIALIZE_FROM_VARIABLE Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7103
| * | | | define_property(): Change constraints of INITIALIZE_FROM_VARIABLEKyle Edwards2022-03-231-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the requirement that the variable name have a prefix while keeping the suffix requirement. Require that the property name contains an underscore. Update docs and tests accordingly. Fixes: #23340
| * | | | Merge topic 'revert-link-interface-direct-for-3.23' into release-3.23Brad King2022-03-228-263/+25
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 687a91967f Revert INTERFACE_LINK_LIBRARIES_DIRECT feature for 3.23 branch Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7098
| | * | | | Revert INTERFACE_LINK_LIBRARIES_DIRECT feature for 3.23 branchBrad King2022-03-218-263/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit f3ad061858 (Add usage requirements to update direct link dependencies, 2022-01-12, v3.23.0-rc1~44^2) and the property storage updates in its predecessor commit 193a999cd5 (cmTarget: Add INTERFACE_LINK_LIBRARIES_DIRECT{,_EXCLUDE} backtrace storage, 2022-01-06, v3.23.0-rc1~44^2~1) from the 3.23 release branch. After initial experience using the feature in practice, additional design considerations have been raised for discussion in the original issue. To avoid rushing this for the 3.23 series, we've decided to revert the feature for now so it can be revised for a future release. Issue: #22496