summaryrefslogtreecommitdiffstats
path: root/Help
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | | Help: Document CMAKE_PLATFORM_NO_VERSIONED_SONAMERalf Habacker2022-02-142-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This variable was added by commit 42f74df6d4 (Add basic Android platform module, 2014-06-06, v3.1.0-rc1~416^2), but was not previously documented. Fixes: #23227
* | | | | | | | | Merge topic 'doc-export-command'Brad King2022-02-151-43/+88
|\ \ \ \ \ \ \ \ \ | | |_|_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 19b273b729 Help: Organize and clarify export() command documentation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6981
| * | | | | | | | Help: Organize and clarify export() command documentationBrad King2022-02-141-43/+88
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add section headers for each signature, and a synopsis linking to them. Re-order sections to introduce the main `export(TARGETS)` functionality before mentioning the `export(EXPORT)` shorthand, which may be confused with `install(EXPORT)`. Fixes: #23221
* | | | | | | | Merge topic 'doc-debug-find-pkg-var'Brad King2022-02-141-4/+5
|\ \ \ \ \ \ \ \ | |/ / / / / / / | | | / / / / / | |_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 8efd4b5378 cmake::GetDebugFindPkgOutput: Use consistent argument name 546922a57b Help: Fix typo and improve docs for --debug-find-pkg|var options Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6977
| * | | | | | Help: Fix typo and improve docs for --debug-find-pkg|var optionsCraig Scott2022-02-141-4/+5
| |/ / / / / | | | | | | | | | | | | Amends d7b18895bc (cmake: Add filtered debug-find options, 2021-12-07)
| * | | | | Merge topic 'doc-if-AND-OR' into release-3.23Brad King2022-02-101-8/+15
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 41adfc6b04 Help: Clarify precedence of AND and OR in 'if' conditions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6970
| * \ \ \ \ \ Merge topic 'doc-MSVC_TOOLSET_VERSION-v143' into release-3.23Brad King2022-02-101-0/+1
| |\ \ \ \ \ \ | | | |/ / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dca3a032d1 Help: Add MSVC_TOOLSET_VERSION value for v143 toolset Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6966
* | | | | | | Merge topic 'trace-line-range'Brad King2022-02-112-1/+14
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8e1e97ccca Trace: include `line_end` field in json-v1 format Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !6968
| * | | | | | | Trace: include `line_end` field in json-v1 formatBraulio Valdivielso Martinez2022-02-092-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After !6954 got merged, it has become easier for tools to get full stack-traces for runtime traces of a CMake program. The trace information already included in the JSON objects (line number, source file path) allows tools that display these stack traces to print the CMake source code associated to them. However, CMake commands may spawn multiple lines, and the JSON information associated to a trace only contains the line in which the command started, but not the one in which it ended. If tools want to print stack traces along the relevant source code, and they want to print the whole command associated to the stack frame, they will have to implement their own CMake language parser to know where the command ends. In order to simplify the life of those who want to write tooling for CMake, this commit adds a `line_end` field to the json-v1 trace format. If a given command spans multiple lines, the `line_end` field will contain the line of the last line spanned by the command (that of the closing parenthesis associated to the command).
* | | | | | | | Merge topic 'doc-if-AND-OR'Brad King2022-02-101-8/+15
|\ \ \ \ \ \ \ \ | | |_|_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 41adfc6b04 Help: Clarify precedence of AND and OR in 'if' conditions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6970
| * | | | | | | Help: Clarify precedence of AND and OR in 'if' conditionsBrad King2022-02-091-8/+15
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The wording update in commit b74819e4fe (Help: Format 'if' command documentation, 2013-12-18, v3.0.0-rc1~227^2~1) incorrectly implied that `AND` has higher precedence than `OR`. Although this is common in many languages, it has never been true in CMake's implementation. Revise the wording to clarify the precedence. Add a test case demonstrating the order. Fixes: #23207
* | | | | | | Merge topic 'doc-MSVC_TOOLSET_VERSION-v143'Brad King2022-02-101-0/+1
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | / / / / | | |/ / / / | |/| | | | | | | | | | | | | | | | dca3a032d1 Help: Add MSVC_TOOLSET_VERSION value for v143 toolset Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6966
| * | | | | Help: Add MSVC_TOOLSET_VERSION value for v143 toolsetHeiko Thiel2022-02-091-0/+1
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | This was accidentally left out of commit f01ea7e391 (MSVC: Fix MSVC_TOOLSET_VERSION for VS 2022 v143 toolset, 2019-04-03, v3.21.3~10^2~1).
* | | | | Merge topic 'genex-LINK_LIBRARY-to-decorate-library'Brad King2022-02-0912-0/+392
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2a6b0415d7 $<LINK_LIBRARY>: Add LINK_LIBRARY_OVERRIDE target property 42965799b4 Genex: Add $<LINK_LIBRARY:...> 78dd7d5292 cmRulePlaceholderExpander: add base class for placeholder expansion reuse 4b55828a9f cmExpandListWithBacktrace: add handling of empty elements. 28d7432468 cmComputeLinkInformation: use cmComputeLinkDepends::LinkEntry Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6769
| * | | | | $<LINK_LIBRARY>: Add LINK_LIBRARY_OVERRIDE target propertyMarc Chevrier2022-02-088-1/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To enable the management of incompatible $<LINK_LIBRARY> declarations, add LINK_LIBRARY_OVERRIDE and LINK_LIBRARY_OVERRIDE_<LIBRARY> target properties.
| * | | | | Genex: Add $<LINK_LIBRARY:...>Marc Chevrier2022-02-078-0/+261
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This generator expression offers the capability, for the link step, to decorate libraries with prefix/suffix flags and/or adding any specific flag for each library. Fixes: #22812, #18751, #20078, #22703
* | | | | | Merge topic 'trace-global-frame'Brad King2022-02-092-3/+18
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a41d6e4d7a Trace: add global_frame field to json-v1 format Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !6954
| * | | | | | Trace: add global_frame field to json-v1 formatBraulio Valdivielso Martinez2022-02-072-3/+18
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tools using the json-v1 format might want to trace stack frames across different `CMakeLists.txt` files, in order to, for example, provide stacktraces that span from the top-level `CMakeLists.txt` in a project. One would think that `frame` lets you do that, but it doesn't, because it tells you the depth of the stack within the current `CMakeLists.txt`, so it gets reset across calls to `add_subdirectory`. The solution involves adding a field with a "global frame". This value gets incremented on calls to `add_subdirectory`, which makes it easier for tools to reconstruct "global stacktraces". I considered changing the current "frame" value, but I didn't because it would be a breaking change. I cannot think of any use-case where "frame" is more useful to "global-frame", but maybe I'm missing something.
* | | | | | Merge topic 'vs_buildcache_support'Brad King2022-02-093-0/+28
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b764c7c273 VS: Add property to turn off Visual Studio compile batching Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6957
| * | | | | | VS: Add property to turn off Visual Studio compile batchingKaloyan Donev2022-02-083-0/+28
| |/ / / / / | | | | | | | | | | | | | | | | | | Resolves: #23179
* | | | | | Merge topic 'cmcmd-end-of-options-delimiter'Brad King2022-02-072-5/+23
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b10930040d cmcmd: add end of options delimiter to cmake -E commands Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !6934
| * | | | | | cmcmd: add end of options delimiter to cmake -E commandsPeter Würth2022-02-032-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements a -- delimiter, that indicates the end of options (starting with a dash -) of a command and separates them from the subsequent operands (positional arguments). The following commands are affected: - env: Implemented the -- delimiter. - cat: The -- delimiter was already kind of considered, but its occurence did not stop the options parsing. - rm: Here the command already implemented the -- delimiter as specified, but it was not documented. Fixes #22970
* | | | | | | Merge topic 'doc-DESTDIR'Brad King2022-02-072-11/+30
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | / / / | | |_|/ / / | |/| | | | | | | | | | | | | | | | a9b8c9d33e Help: Clarify roles of DESTDIR and CMAKE_INSTALL_PREFIX Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6955
| * | | | | Help: Clarify roles of DESTDIR and CMAKE_INSTALL_PREFIXBrad King2022-02-042-11/+30
| | | | | |
| * | | | | Merge topic 'ep-patch-USES_TERMINAL' into release-3.23Brad King2022-02-041-0/+4
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cbb87e0a2c ExternalProject: Add support for USES_TERMINAL_PATCH keyword Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6940
* | \ \ \ \ \ Merge topic 'ep-patch-USES_TERMINAL'Brad King2022-02-041-0/+4
|\ \ \ \ \ \ \ | | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cbb87e0a2c ExternalProject: Add support for USES_TERMINAL_PATCH keyword Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6940
| * | | | | | ExternalProject: Add support for USES_TERMINAL_PATCH keywordCraig Scott2022-02-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This brings the patch step into line with all the others which already had their own `USES_TERMINAL_<step>` keyword. All steps (including patch) already have their own `LOG_<step>` keyword too, so the lack of `USES_TERMINAL_PATCH` was inconsistent.
* | | | | | | Merge topic 'rel-version'Brad King2022-02-041-2/+2
|\ \ \ \ \ \ \ | | |/ / / / / | |/| / / / / | |_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | bd11d78dfc Help/dev: Clarify maintainer guide step for DEVEL_CMAKE_VERSION d184bf0659 Replace DEVEL_CMAKE_VERSION with literal 3.23 release version Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6951
| * | | | | Help/dev: Clarify maintainer guide step for DEVEL_CMAKE_VERSIONBrad King2022-02-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous wording could be misread as ensuring the arguments to the call match the release version. Clarify that one needs to remove the call and replace it with the literal release version string.
| * | | | | Merge topic 'doc-cmcmd-versionadded' into release-3.23Brad King2022-02-031-11/+109
| |\ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 892c96dda0 Help: add versionadded markup to cmake -E commands Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6946
| * | | | | Help: Drop development topic notes to prepare releaseBrad King2022-02-032-9/+0
| |/ / / / | | | | | | | | | | | | | | | | | | | | Release versions do not have the development topic section of the CMake Release Notes index page.
* | | | | Help: add versionadded markup to cmake -E commandsPeter Würth2022-02-031-11/+109
|/ / / /
* | | | Help: Update Sphinx versionadded directives for 3.23 releaseBrad King2022-02-036-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run the script: Utilities/Sphinx/update_versions.py --since v3.22.0 --overwrite Manually select updates that really belong to the 3.23 release, as against adding documentation for previously-existing entities.
* | | | Help: Organize and revise 3.23 release notesBrad King2022-02-031-138/+190
| | | | | | | | | | | | | | | | | | | | Add section headers similar to the 3.22 release notes and move each individual bullet into an appropriate section. Revise a few bullets.
* | | | Help: Consolidate 3.23 release notesBrad King2022-02-0341-271/+202
| | | | | | | | | | | | | | | | | | | | Run the `Utilities/Release/consolidate-relnotes.bash` script to move notes from `Help/release/dev/*` into `Help/release/3.23.rst`.
* | | | Help: Remove stray leading blank lines from release notesBrad King2022-02-033-3/+0
| | | |
* | | | Help: Polish CMAKE{,_SYSTEM}_IGNORE_PREFIX_PATH documentationBrad King2022-02-032-19/+19
| | | |
* | | | Merge topic 'doc-imported-no-system'Brad King2022-02-035-12/+24
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ec29a6a1a9 Help: Clarify documentation on SYSTEM include directories Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6942
| * | | | Help: Clarify documentation on SYSTEM include directoriesBrad King2022-02-035-12/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mention that system include directories are searched after normal include directories. Document that `IMPORTED_NO_SYSTEM` and `NO_SYSTEM_FROM_IMPORTED` do not affect `INTERFACE_SYSTEM_INCLUDE_DIRECTORIES`.
* | | | | find_*(): Add CMAKE_IGNORE_PREFIX_PATH variableKyle Edwards2022-02-024-0/+44
|/ / / / | | | | | | | | | | | | Fixes: #20878
* | | | Merge topic 'cuda_generic_arch_all'Brad King2022-02-021-4/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8f64df0a7c CUDA: Generic all and all-major support Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !6816
| * | | | CUDA: Generic all and all-major supportRaul Tambre2022-02-011-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 14d8a276 (CUDA: Support nvcc 11.5 new -arch=all|all-major flags, 2021-08-17) added all and all-major options to CUDA_ARCHITECTURES. These are fairly generic and likely to see real-world use by distributors. Thus it's desirable to support these also for Clang and older NVCC versions. The supported architectures are dependent on the toolkit version. We determine the toolkit version prior to compiler detection. For NVCC we get the version from the vendor identification output, but for Clang we need to invoke NVCC separately. The architecture information is mostly based on the Wikipedia list with the earliest supported version being CUDA 7.0. This could be documented and expanded in the future to allow projects to query CUDA toolkit version and architecture information. For Clang we additionally constrain based on its support. Additionally the architecture mismatch detection logic is fixed, improved and updated for generic support: * Commit 01428c55 (CUDA: Fail fast if CMAKE_CUDA_ARCHITECTURES doesn't work during detection, 2020-08-29) enabled CMAKE_CUDA_COMPILER_ID_REQUIRE_SUCCESS if CMAKE_CUDA_ARCHITECTURES is specified. This results in CMakeDetermineCompilerID.cmake printing the compiler error and our code for presenting the mismatch in a user-friendly way being useless. The custom logic seems preferable so go back to not enabling it. * Commit 14d8a276 (CUDA: Support nvcc 11.5 new -arch=all|all-major flags, 2021-08-17) tried to support CMP0054 but forgot to add x to the interpolated result. Thus the conditions would always evaluate to false. This is fixed as a byproduct of removing NVIDIA specific checks, improving the error message and replacing architectures_mode with a simpler architectures_explicit. Visual Studio support omits testing the flags during detection due to complexities in determining the toolkit version when using it. A long-term proper implementation would be #23161. Implements #22860.
* | | | | Merge branch 'release-3.21'Brad King2022-02-011-0/+7
|\ \ \ \ \ | | |/ / / | |/| | |
| * | | | CMake 3.21.5v3.21.5Brad King2022-02-011-0/+7
| | | | |
| * | | | Merge branch 'help-try-compile-result-var' into release-3.21Brad King2022-01-312-13/+0
| |\ \ \ \ | | | |_|/ | | |/| | | | | | | Merge-request: !6923
* | | | | Merge topic 'help-try-compile-result-var'Brad King2022-02-012-13/+0
|\ \ \ \ \ | | |/ / / | |/| / / | |_|/ / |/| | | | | | | | | | | 34d263270e Help: Drop incorrect versionadded for try_compile result variable Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6923
| * | | Help: Drop incorrect versionadded for try_compile result variablefriendlyanon2022-01-312-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit c705279bae (Help: Add `.. versionadded` directives to commands documentation, 2020-11-08, v3.20.0-rc1~508^2) we accidentally added ``versionadded`` markup suggesting that the first argument to `try_compile` was fixed as `RESULT_VAR` prior to CMake 3.14. This was probably due to misinterpreting the change from commit 7975edeac5 (Help: User-provided variable names for try_* commands, 2019-02-24, v3.14.0-rc3~16^2~3). The result variable has never been fixed. Drop the incorrect markup.
* | | | Merge topic 'link-interface-direct'Brad King2022-01-317-2/+294
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f3ad061858 Add usage requirements to update direct link dependencies 193a999cd5 cmTarget: Add INTERFACE_LINK_LIBRARIES_DIRECT{,_EXCLUDE} backtrace storage 22d5427aa6 cmGeneratorTarget: Add LookupLinkItem option to consider own target name f3d2eab36a cmGeneratorTarget: Fix link interface caching of partial results d75ab9d066 cmGeneratorTarget: Clarify CMP0022 logic in ComputeLinkInterfaceLibraries f3e9e03fe0 cmGeneratorTarget: Simplify CMP0022 warning check 216aa14997 cmGeneratorTarget: Return early from ExpandLinkItems with no items 1bc98371d1 Tests: Remove unnecessary policy setting from ObjectLibrary test ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6886
| * | | | Add usage requirements to update direct link dependenciesBrad King2022-01-297-0/+282
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Link line construction starts with `LINK_LIBRARIES` and appends dependencies from the transitive closure of `INTERFACE_LINK_LIBRARIES`. Only the entries of `LINK_LIBRARIES` are considered direct link dependencies. In some advanced use cases, particularly involving static libraries and static plugins, usage requirements need to update the list of direct link dependencies. This may mean adding new items, removing existing items, or both. Add target properties to encode these usage requirements: * INTERFACE_LINK_LIBRARIES_DIRECT * INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE Fixes: #22496
| * | | | Help: Cross-reference LINK_LIBRARIES and INTERFACE_LINK_LIBRARIESBrad King2022-01-292-2/+12
| | | | | | | | | | | | | | | | | | | | Document in each property its role in combination with the other.