Matthew Woehlke
dd8bf95271
Help: Document handling of CPS transitive components
...
Add documentation explaining how CMake handles component requests of a
CPS transitive dependency.
2025-03-07 13:19:43 -05:00
Matthew Woehlke
76e11bd4ea
Help: Fix find_package documentation about CPS and COMPONENTS
...
The recent addition of component handling for CPS neglected to update
the documentation of how find_package handles component requests when
importing from CPS. Make those changes now.
2025-02-28 17:00:00 -05:00
Brad King
77a742b088
Help: add_dependencies requires at least two arguments
...
Update the documentation to match the implementation.
2025-02-20 08:25:58 -05:00
Ben Boeckel
48095c623f
Help/cmake_minimum_required: clarify policy_max versionadded note
...
While the prose clarifies this below, a quick glance at the docs can
make one believe that `...3.10` has no sensible use. However, it is
still useful to tell CMake 3.12 and up that at least 3.10 behavior is
accepted.
2025-02-18 06:20:32 +01:00
Brad King
1a35351125
Add CMAKE_POLICY_VERSION_MINIMUM to help configure outdated projects
...
Provide packagers and end users with a way to try configuring projects that
have not been updated to set their policy version to a supported level.
Closes : #26698
2025-02-13 14:00:26 -05:00
Brad King
d723198539
Help: De-duplicate policy version documentation
2025-02-13 12:36:54 -05:00
Brad King
e5d29e9e00
Help: Drop cmake_minimum_required pre-2.4 behavior
...
The long outdated pre-2.4 compatibility behavior is no longer relevant
since CMake 4.0 dropped support for pre-3.5 compatibility.
2025-02-13 12:22:21 -05:00
Brad King
3f2386db2b
Merge topic 'find-cps-version' into release-4.0
...
3e6466eb16 find_package: Honor version requests when finding CPS packages
7a0e698384 find_package: Fix CPS version parsing
35a7ed125b find_package: Fix reporting of rejected CPS files' version
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !10297
2025-02-13 09:33:04 -05:00
Matthew Woehlke
3e6466eb16
find_package: Honor version requests when finding CPS packages
...
Teach find_package to check a CPS package's version (when provided)
against a version request given to the find_package invocation.
2025-02-12 11:36:41 -05:00
Brad King
1d274d34b9
Merge topic 'instrumentation-build-snippet' into release-4.0
...
c8e319d08c instrumentation: Add experimental notes to docs
f777af7734 instrumentation: Update docs for available snippets
2299b2fcab instrumentation: Add build snippet
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !10328
2025-02-12 09:43:17 -05:00
Brad King
33b3fb0876
Merge topic 'help-find-library' into release-4.0
...
4b7ed0ec79 Help: Clarify find_library() behavior for suffixed libraries
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10322
2025-02-12 09:30:30 -05:00
Brad King
ae103956b0
Merge topic 'doc-target_link_libraries' into release-4.0
...
1d07da0912 Help: Clarify context of target_link_libraries pre-4.0 behavior documentation
b7dc28cb8c Help: Drop target_link_libraries redundant prose on debug/optimized keywords
b4bac3018f Help: Drop target_link_libraries mention of CMP0003 and CMP0004
639eee1a0c Help: Call out target_link_libraries legacy signatures earlier
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: Yegor Yefremov <yegorslists@googlemail.com >
Merge-request: !10326
2025-02-12 09:28:50 -05:00
Brad King
7e5a80c7ff
Merge topic 'execute_process-cmd-bat' into release-4.0
...
b902fbd0c6 execute_process: Clarify when a Windows command interpreter is used
e388ed687a execute_process: Improve invocation of .cmd/.bat with spaces
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: Nikita Nemkin <nikita@nemkin.ru >
Acked-by: Alexey Edelev <alexey.edelev@qt.io >
Merge-request: !10321
2025-02-12 09:10:03 -05:00
Martin Duffy
c8e319d08c
instrumentation: Add experimental notes to docs
2025-02-11 13:47:56 -05:00
Brad King
1d07da0912
Help: Clarify context of target_link_libraries pre-4.0 behavior documentation
...
Update paragraphs that exist only to document pre-4.0 behavior to
explicitly state so.
Fixes : #26679
2025-02-11 09:30:57 -05:00
Brad King
b7dc28cb8c
Help: Drop target_link_libraries redundant prose on debug/optimized keywords
...
This is already documented in the overview, and does not need to be
repeated for a specific signature.
Issue: #26679
2025-02-11 09:30:55 -05:00
Brad King
b4bac3018f
Help: Drop target_link_libraries mention of CMP0003 and CMP0004
...
These policies have been removed by CMake 4.0 and have not been
practically relevant in many years.
Issue: #26679
2025-02-11 09:24:07 -05:00
Brad King
639eee1a0c
Help: Call out target_link_libraries legacy signatures earlier
2025-02-11 09:23:06 -05:00
Nikita Nemkin
4b7ed0ec79
Help: Clarify find_library() behavior for suffixed libraries
...
The name is used as-is only if it contains a recognized suffix.
Clarify this behavior and add links to the relevant variables.
Fixes : #18401
2025-02-11 08:50:59 -05:00
Brad King
b2674f3b38
Merge topic 'instrumentation-doc-fixes' into release-4.0
...
32e9d27c88 instrumentation: Remove undocumented binaryDir field from snippets
d88458b5ea instrumentation: Improve documentation for CMake Instrumentation
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10320
2025-02-11 07:46:46 -05:00
Brad King
b902fbd0c6
execute_process: Clarify when a Windows command interpreter is used
...
We've always executed `.bat` and `.cmd` files through `cmd /c`, but
previously it was implicit in undocumented `CreateProcessW` behavior.
2025-02-11 07:26:56 -05:00
Brad King
e388ed687a
execute_process: Improve invocation of .cmd/.bat with spaces
...
Extend the fix from commit 74c9d40876 (execute_process: Fix invocation
of .cmd/.bat with spaces, 2025-01-31) to work without relying on
conversion to a "short path", which may not exist. Instead, extending
the `cmd /c` wrapper to `cmd /c call` seems to support spaces directly.
Suggested-by: Alexandru Croitor <alexandru.croitor@qt.io >
Fixes : #26655
2025-02-10 19:44:19 -05:00
Brad King
120e26b828
Merge topic 'doc-execute_process-CMP0176-version' into release-4.0
...
5a2c0407b8 Help: Clarify when execute_process ENCODING UTF-8 became the default
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10316
2025-02-10 19:02:40 -05:00
Martin Duffy
d88458b5ea
instrumentation: Improve documentation for CMake Instrumentation
2025-02-10 16:57:45 -05:00
AJIOB
5a2c0407b8
Help: Clarify when execute_process ENCODING UTF-8 became the default
...
In commit e782811cfe (execute_process: Change default ENCODING to UTF-8,
2024-09-13, v3.31.0-rc1~94^2) we implied this by the version ranges in
the older defaults. State it explicitly.
2025-02-10 16:18:16 -05:00
Brad King
7065e7a555
Merge topic 'instrumentation-build-hooks'
...
2680f30caf instrumentation: Allow multiple CALLBACK arguments
fc1d55f6a5 instrumentation: Add preBuild and postBuild hooks for ninja
f62a4ab2ee instrumentation: Refactor cmInstrumentation constructor and usage
c57d1752d4 cmUVProcessChain: Add Detached option for spawning daemons
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10230
2025-02-05 09:08:33 -05:00
Martin Duffy
2680f30caf
instrumentation: Allow multiple CALLBACK arguments
...
Don't require quotes around CALLBACK argument and allow it to be passed
multiple times.
2025-02-04 11:15:20 -05:00
Brad King
8dfb1f40b7
Merge topic 'execute_process-cmd-bat'
...
74c9d40876 execute_process: Fix invocation of .cmd/.bat with spaces
104ca10208 cmWorkerPool: Adopt MaybePrependCmdExe calls to reduce duplication
cf7ba6d43d cmWorkerPool: Convert RunCommand signature to move semantics
c091fd1420 cmUVProcessChain: Convert AddCommand signature to move semantics
c1f6b04176 cmSystemTools: Teach MaybePrependCmdExe to always use backslashes
817b3967f8 cmSystemTools: Teach MaybePrependCmdExe to return GetShortPathNameW failure
611a3000f7 cmSystemTools: Make MaybePrependCmdExe case-insensitive
98fed0f116 cmSystemTools: Adopt MaybePrependCmdExe
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10270
2025-02-04 09:02:48 -05:00
Brad King
0c5898558e
Merge topic 'find-cps-components'
...
894f256a12 find_package: Find CPS components
ac20cd43c0 find_package: Fix reporting of transitive dependency errors
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10262
2025-02-03 10:07:25 -05:00
Brad King
74c9d40876
execute_process: Fix invocation of .cmd/.bat with spaces
...
The `CreateProcessW` documentation states "to run a batch file, you must
start the command interpreter". Use `cmd /c the.bat` to run batch files.
Also, use a "short path" to the `.bat` file if needed to avoid spaces.
Previously this worked in some cases only due to undocumented behavior
of `CreateProcessW` when given a `.bat` file.
Fixes : #26655
2025-02-03 09:13:26 -05:00
Matthew Woehlke
894f256a12
find_package: Find CPS components
...
Implement finding components of CPS packages. Specifically, reject any
candidate packages that don't provide all required components, and
ignore appendices that don't provide requested (required or optional)
components. This applies to both top-level searches and also searching
for package dependencies.
2025-02-01 06:44:43 -05:00
Nikita Nemkin
9c963de998
Help: Remove stray spaces and one colon
2025-01-31 12:23:29 -05:00
Nikita Nemkin
51e4d81f16
Help: Remove accidental blockquotes around lists
...
Indenting a list relative to the previous paragraph creates
a blockquote. Combined with the natural list indent it results
in an overly large left margin.
2025-01-31 12:23:29 -05:00
Nikita Nemkin
718043b540
Help: Convert some literal blocks into tables and lists
...
Also, ensure that header-less tables have a top border in cmake.css.
2025-01-31 12:23:29 -05:00
Brad King
3e64c6a56e
Merge topic 'msvc-runtime-checks'
...
2b2344b412 MSVC: Add abstraction for runtime checks
49dcd1ce5d Help: Fix MSVC_DEBUG_INFORMATION_FORMAT description of example
2f8e643d9d CMP0141: Fix documentation copied from CMP0091
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: Alex <leha-bot@yandex.ru >
Merge-request: !10214
2025-01-30 08:48:01 -05:00
Nikita Nemkin
9890cfc4ec
Help: More syntax highlighting for literal blocks
...
Covers almost all blocks containing actual code, except:
* Parsed-literal blocks can't be highlighted, including many command
summaries and substitution-heavy docs like find_... commands.
This is a Sphinx limitation.
* Code with errors, like CMP0049, DEPLOYMENT_ADDITIONAL_FILES,
DEPLOYMENT_REMOTE_DIRECTORY, @PACKAGE_INIT@ substitution in the
tutorial, bracket arguments/comments in cmake-language.7 and
cmake-developer.7.
* FindQt4 module, which needs reformatting.
2025-01-29 16:48:53 -05:00
AJIOB
2b2344b412
MSVC: Add abstraction for runtime checks
...
Replace our hard-coded default for `/RTC1` with a first-class
abstraction to select runtime checks from an enumeration of logical
names. Add a `MSVC_RUNTIME_CHECKS` target property and corresponding
`CMAKE_MSVC_RUNTIME_CHECKS` variable.
Removing the old default flag requires a policy because existing
projects may rely on string processing to edit them and choose
runtime checks under the old behavior. Add policy CMP0184 to
provide compatibility.
Fixes : #26614
2025-01-29 13:07:41 -05:00
Brad King
ec7cc80370
Merge topic 'patch-lower-case-style'
...
4e6a13f211 Use lower case style for commands
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Acked-by: Alex Turbov <i.zaufi@gmail.com >
Merge-request: !10245
2025-01-29 11:37:51 -05:00
Brad King
e509c0a423
Merge topic 'patch-else'
...
9f2efc3270 Remove optional arguments from else() and end*() commands
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Acked-by: Alex Turbov <i.zaufi@gmail.com >
Merge-request: !10243
2025-01-29 11:35:30 -05:00
Peter Kokot
4e6a13f211
Use lower case style for commands
...
Where possible this syncs the CS for command names:
- check_c_source_compiles()
- check_cxx_compiler_flag()
- check_cxx_source_compiles()
- check_cxx_symbol_exists()
- check_include_file_cxx()
- check_include_file()
- check_include_files()
- check_library_exists()
- check_source_compiles()
- check_struct_has_member()
- check_symbol_exists()
- check_type_size()
- cmake_dependent_option()
- cmake_parse_arguments()
- feature_summary()
- file()
- find_package_handle_standard_args()
- if(), endif...
- install(FILES)
- list()
- message()
- pkg_check_modules()
- select_library_configurations()
- set_package_info()
- test_big_endian()
2025-01-28 13:51:46 -05:00
Peter Kokot
477737b7bf
load_cache: Add note about export()
...
The export() command can be a better option when outside project can be
adjusted in such way.
2025-01-28 15:22:29 +01:00
Brad King
aeff709a27
Merge topic 'patch-load-cache-script-mode'
...
18ae68a97c load_cache: Mention script mode support (-P)
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10241
2025-01-28 09:19:58 -05:00
Brad King
d6a7a83700
Merge topic 'fix-typos-found-by-pygrep-hooks'
...
bc4c71627a Help: Fix typos found by the `rst-backticks` hook
c833629508 Help: Fix typos found by the `rst-directive-colons` hook
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10237
2025-01-28 08:35:19 -05:00
Peter Kokot
9f2efc3270
Remove optional arguments from else() and end*() commands
...
This adds a brief explanation of the optional condition in the `else()`
and removes all legacy usages of `else()` and `end*()` commands.
2025-01-28 03:01:23 +01:00
Peter Kokot
18ae68a97c
load_cache: Mention script mode support (-P)
...
When using the relevant load_cache(READ_WITH_PREFIX) signature, it also
works in script mode (cmake -P ...), unlike the 2nd obsolete signature.
2025-01-28 00:59:50 +01:00
Brad King
3ffac3063d
Merge topic 'doc-policy-deprecation-schedule'
...
3e0720a2ae Help: Add cmake_minimum_required(VERSION) example to cmake-policies(7)
085de39879 Help: Document policy transition schedule in cmake-policies(7)
60e302a539 Help: Drop policy scope from cmake-policies(7)
3b926b32e3 Help: Drop CMAKE_MINIMUM_REQUIRED_VERSION from cmake-policies(7)
ec9e5feb93 Help: Organize cmake-policies(7) by supported and unsupported policies
6be0fe22be Help: Mention CMAKE_POLICY_DEFAULT_CMP<NNNN> in cmake_minimum_required
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10222
2025-01-27 11:18:46 -05:00
Brad King
084f6055a8
Merge topic 'patch-CMAKE_OBJDUMP'
...
dc7aabf4d0 Help: Document CMAKE_OBJDUMP variable
4bd3519e89 CPack: Avoid mentioning internal CMake module in documentation
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !10224
2025-01-27 10:30:58 -05:00
Brad King
304f086b71
Merge topic 'doc-cmake_host_system_information-OS_NAME'
...
ff11a95962 Help: Clarify cmake_host_system_information OS_NAME
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: Nicole Mazzuca <nicole.mazzuca@remarkable.no >
Acked-by: scivision <michael@scivision.dev >
Merge-request: !10232
2025-01-27 10:26:33 -05:00
Alex Turbov
bc4c71627a
Help: Fix typos found by the rst-backticks hook
...
The corresponding `pre-commit` configuration is coming in the
separate MR.
Signed-off-by: Alex Turbov <i.zaufi@gmail.com >
2025-01-27 01:43:26 +04:00
scivision
7be01178a0
Help: JSON argument should be quoted
...
The error that results from a semicolon anywhere in a JSON string
is not obvious.
Issue: #26628
2025-01-24 12:00:56 -05:00