Commit Graph
199 Commits
Author SHA1 Message Date
Tyler Yankee 95edd93948 presets: Support loading from arbitrary file
Allow CMake, CTest, and CPack to read presets from a path given by
command-line argument instead of always requiring `CMakePresets.json`
or `CMakeUserPresets.json` in the source tree. This makes the presets
feature more extensible to cases in which the user doesn't have access
to the presets defined in the source tree (e.g., if the source tree is
not writable).

For now, there is no equivalent implementation of such an option in the
`cmake-gui`, nor for the recent presets functionality implemented in
`ctest_configure` and `ctest_build`.

Fixes: #27329
2026-04-30 08:04:26 -04:00
Tyler Yankee 43f5fc8ac8 Help, Tests: Consolidate presets terminology and references
References to `CMake[User]Presets.json` should correspond to behavior
pertaining to those files in particular, while references to presets
files generally should be disambiguated from that.

Re-spell "preset file" to "presets file" where applicable.

Make a few references to `cmake-presets(7)` more consistent.

Issue: #27329
2026-04-30 07:49:40 -04:00
Brad King 1bfcd47309 Help: Replace C++ reference links with their permanent redirects 2026-04-20 10:50:31 -04:00
Matthew Woehlke ca5d569524 Diagnostics: Switch state to new system
Add an additional state to the cmake instance to track diagnostics. Use
this to initialize any new/reset states we create so that other contexts
will inherit the diagnostic state from presets / command-line options.
Modify the front-end to map presets and -W command-line options to
manipulation of this new diagnostic state. Remove old members for
storing diagnostic state. Rework how diagnostic state is persisted.
Deprecate old, non-standard spellings for manipulating diagnostics.
Deprecate old 'dev' spelling for CMD_AUTHOR.

Note that this is a work in progress. Messaging has not yet been
updated, so the new state is not yet being used to control diagnostics,
and some of the logic to update the old state has been stripped (and
will eventually be removed entirely). Backward compatibility support for
the deprecated CMAKE_{WARN,ERROR}_DEPRECATED variables is only partially
implemented. The GUI's interface for manipulating warnings is partially
broken and needs to be overhauled. These tasks are being done in
separate commits in order to minimize review burden and keep the changes
per commit / per merge request more manageable.
2026-04-14 12:42:33 -04:00
Gustaf Borgström 53a2a77d19 Tutorial: Add missing entry in Step4 file list
The root's `CMakeLists.txt` is also one of the files the need editing in
Exercise 1, but was missing.
2026-03-26 13:38:29 -04:00
Brad King c64b6c50f7 Merge topic 'patch-1'
1d8d22c0be Tutorial: fix a thinko in a TODO item

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Tyler Yankee <tyler.yankee@kitware.com>
Merge-request: !11552
2026-01-19 09:15:53 -05:00
Tyler Yankee 435e403e5a Tutorial: Fix typo in Step 5 2026-01-15 11:38:45 -05:00
Brad King 6a34488391 Merge topic 'tutorial-typo'
f4e4bb12f9 Tutorial: Fix typo

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11554
2026-01-08 10:29:13 -05:00
shynur f4e4bb12f9 Tutorial: Fix typo 2026-01-07 13:43:44 -05:00
shynur 1d8d22c0be Tutorial: fix a thinko in a TODO item 2026-01-07 13:39:47 -05:00
Craig Scott 0854e3d598 Help,Comments: Fix occurrences of doubled words 2025-12-21 21:03:33 +11:00
Tyler Yankee 58fc663688 Tutorial: Provide MSVC example to build Vendor library
Allow Windows users who aren't familiar with MSVC-equivalent commands to
GCC and/or don't have the GNU toolchain installed (via MinGW, etc.) to
practice this example.
2025-12-11 09:09:35 -05:00
Tyler Yankee 1ad84c5301 Tutorial: Fix path to file in exercise solution 2025-12-09 15:23:34 -05:00
Brad King b1a2371c26 Help: Replace QtCreator link with its permanent redirect 2025-12-05 08:55:18 -05:00
Vito Gamberini fb58de1a56 Tutorial: Add Step 0 to prepare the working environment
Adds a "Step 0" to the tutorial which discusses minutia about where to
get CMake, how to run it, and most importantly deals at length with
various generator issues which aren't covered elsewhere.
2025-10-29 09:49:23 -04:00
Brad King b22a77e337 Merge topic 'doc-cmake.org-tutorial-archive' into release-4.2
5473a45fd8 Tutorial: Restore source archive when published on cmake.org

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11370
2025-10-29 09:31:10 -04:00
Brad King 5473a45fd8 Tutorial: Restore source archive when published on cmake.org
Restore commit 4cb616fed6 (Tutorial: Provide a source archive when
published on cmake.org, 2022-04-27, v3.23.2~22^2).  Its effects were
accidentally reverted by commit 9784834b4c (Help: Use `*.rst` extension
for included files, 2025-04-07, v4.1.0-rc1~354^2).

Reported-by: Vito Gamberini <vito.gamberini@kitware.com>
2025-10-29 09:17:14 -04:00
Vito Gamberini 058511c6b6 Tutorial: Update IPO example in Step 6 2025-10-16 09:09:51 -04:00
Vito Gamberini c8adfdb0a8 Tutorial: Fix typos and mislabeled code blocks 2025-10-03 18:01:06 -04:00
Vito Gamberini 07518509db Tutorial: Fix example FILE_SET names
FILE_SET names begin with lowercase letters, the examples use uppercase

Fixes #27282
2025-10-02 19:00:43 -04:00
Adrien Ollier fcc2800f64 Tutorial: text not correctly rendered
There are some restrictions on backquotes markup.
One of them is it must be separated from
surrounding text by non-word characters.
2025-09-26 17:42:59 +02:00
Vito Gamberini 058e7da541 Tutorial: Add redirect pages for removed steps 2025-09-17 11:57:34 -04:00
Vito Gamberini b2e3e3e30e Tutorial: Rewrite using conventions enabled by CMake 3.23
This is a full re-write of the CMake Tutorial for CMake 3.23, both
the functionality it provides, as well as the modern workflows that
developers use when interfacing with CMake.

Issue: #22663, #23086, #23799, #26053, #26105, #26153, #26914
2025-09-17 11:57:23 -04:00
Alex Turbov 45b374234a Help: fix typo found by the sphinx-lint plugin of pre-commit 2025-06-20 14:26:39 -04:00
Ben Boeckel b634998727 Help: add and make references to generators consistent 2025-06-12 21:25:24 +02:00
Peter Kokot e6f9ebbbe1 Check{,C,CXX,OBJC,OBJCXX,Fortran}SourceCompiles: Update documentation
Changes:

- Added intro code blocks showing how to include these modules.
- Added examples sections.
- Used "command" instead of "macro".
- Commands sections added to have a clearer overview of the modules at
  first encounter.
- Reworded commands arguments a bit.
- Added a rubric title for variables that affect the checks.
- CheckFortranSourceCompiles: Added CMake version when SRC_EXT option
  was introduced.
- Listed CMAKE_TRY_COMPILE_TARGET_TYPE variable in the rubric together
  with CMAKE_REQUIRED_* variables and added an include RST file for it.
- Used lowercase style for check_fortran_source_compiles().
2025-05-26 02:49:32 +02:00
Brad King 7c8eca5ecb Merge topic 'doc-tutorial-typo'
e07effe49c Help: Fix wording in tutorial workflow description

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10716
2025-04-28 11:18:05 -04:00
Brad King e07effe49c Help: Fix wording in tutorial workflow description 2025-04-25 11:10:10 -04:00
Alex Turbov 9784834b4c Help: Use *.rst extension for included files
So, editor(s) can correctly highlight the RST syntax in the included files.
2025-04-14 03:07:46 +04:00
Daniel Pfeifer 593a079a8f Tutorial: Cleanup CTestConfig.cmake
* Remove `CTEST_PROJECT_NAME`, as it is no longer used.
* Set `CTEST_SUBMIT_URL` instead of `CTEST_DROP_*`.
* Remove `CTEST_SUBMIT_URL`, as it is not used.
2025-04-07 20:22:54 +02:00
Nikita Nemkin 9c963de998 Help: Remove stray spaces and one colon 2025-01-31 12:23:29 -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
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
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
Kitware Robot 0b96ae1f6a Revise C++ coding style using clang-format with "east const"
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`, now with "east const" enforcement.
Use `clang-format` version 18.

* If you reached this commit for a line in `git blame`, re-run the blame
  operation starting at the parent of this commit to see older history
  for the content.

* See the parent commit for instructions to rebase a change across this
  style transition commit.

Issue: #26123
2025-01-23 13:09:50 -05:00
Nirav Nirmal e61ba188b6 Tutorial: Add missing entry in Step 1 list of files to edit
Exercise 3 requires editing `TutorialConfig.h.in`.
2025-01-08 09:43:06 -05:00
Brice Decaestecker dccf2bdb75 Tutorial: Restore TODO 4 comment in step 7
Restore a comment added by commit f9ef15f3dc (Tutorial: Update step 7
style, 2022-10-07, v3.26.0-rc1~482^2) that was accidentally removed by
commit 8ddf32196c (Tutorial: Refactor MathFunctions code, 2023-02-10,
v3.27.0-rc1~441^2).
2024-11-27 09:28:34 -05:00
Ben Boeckel dcf9a66ffe cxxmodules: plumb control data for exporting build databases
This includes the target property, its initializing variable, its
initializing environment variable, and updating related docs to mention
the new bits.
2024-08-27 12:37:36 -04:00
FrankYin ea544235e5 Tutorial: Fix grammar typo in Step 11
Fix and improve wording in the "Adding Export Configuration" step.
2024-05-17 11:25:39 -04:00
betsy.mcphail baf6a37ffa Tutorial: Set CPACK_GENERATOR in Step 9
In addition to CPACK_SOURCE_GENERATOR also set CPACK_GENERATOR.
2024-05-09 14:03:06 -04:00
Brad King ddb608b1d9 Merge topic 'fix-tutorial'
6d48bd21ac Tutorial: Clarify the expected change to target_include_directories
4d56db038d Tutorial: Make `INSTALL_DESTINATION` consistent with installed destination
da22b269b2 Tutorial: Add missing `$` in generator expression

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9120
2024-01-08 09:43:29 -05:00
Kevin Albertson 6d48bd21ac Tutorial: Clarify the expected change to target_include_directories
The expectation is to modify the existing `target_include_directories`,
not add add a new `target_include_directories` command.
2024-01-05 13:22:39 -05:00
Kevin Albertson 4d56db038d Tutorial: Make INSTALL_DESTINATION consistent with installed destination 2024-01-05 13:21:08 -05:00
Kevin Albertson da22b269b2 Tutorial: Add missing $ in generator expression 2024-01-05 13:21:08 -05:00
Bhavith C 20f74231db Help: Fix Step3 Mathfunction example
- TODO 6 has to be Link SqrtLibrary
- TODO 7 has to be Link MathFunctions

Signed-off-by: Bhavith C <bhavithc.acharya@gmail.com>
2023-12-23 22:57:00 +05:30
betsy.mcphail a94a4c12e1 Tutorial: Fix-up typos and inconsistencies
* Fix typo in Step 2
* Fix incorrect code referenced in Step 3, TODO 7. Update comments in
MathFunctions/CMakeLists.txt to unique strings.
* Resolve inconsistencies between steps in MathFunctions/CMakeLists.txt
2023-09-07 10:57:19 -04:00
betsy.mcphail 7d3f4e12d2 Tutorial: Clarify instructions for multi-config generators in Step 1 2023-08-17 11:19:06 -04:00
Brad King d2531eee70 Merge topic 'help-importing-exporting-lib'
b7704e8818 Help/guide/importing-exporting: Update line numbers in prose

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8691
2023-08-08 10:04:58 -04:00
Adrien Ollier b7704e8818 Help/guide/importing-exporting: Update line numbers in prose
These were missed in commit aef057d0e8 (Help/guide: fix
MathFunctionsTargets.cmake path in importing-exporting, 2023-05-26,
v3.27.0-rc1~39^2) when a line was added to the example code.
2023-08-07 18:39:03 -04:00
Chris Mahoney 5e56300742 Tutorial: Refactor Step 10 2023-07-17 11:22:03 -04:00