Commit Graph

7774 Commits

Author SHA1 Message Date
Brad King 9b2fcb7779 Merge topic 'LINKER-prefix-support-for-libraries'
aba1c9d172 target_link_libraries: Add support for the LINKER: prefix

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9882
2024-10-12 10:30:12 -04:00
Marc Chevrier aba1c9d172 target_link_libraries: Add support for the LINKER: prefix
It is now possible to use the `LINKER:` prefix in `LINK_LIBRARIES`
and `INTERFACE_LINK_LIBRARIES` target properties.

Fixes: #26318
2024-10-11 17:54:02 +02:00
Brad King 8bb0281896 Merge topic 'ctest-remove-declarative-script-mode'
267b42bccc CTest: Remove declarative scripting mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !9868
2024-10-11 09:21:48 -04:00
Brad King df19fcb78b Merge topic 'FindProtobuf-protoc-exe-option'
53717488ea FindProtobuf: Add PROTOC_EXE option to protobuf_generate
f4dc24b527 FindProtobuf: Clarify protobuf_generate options documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9888
2024-10-11 09:18:51 -04:00
Brad King dc48a4556b Merge topic 'post-rel-dev'
3a96346a3f Configure CMake itself with policies through CMake 3.30
10f8c6a274 export: Increase maximum policy version in exported files to 3.30
fe6cf6d28c Add deprecation warnings for policies CMP0139 and below
b51e6a0be7 Help/dev: Update export policy version in post-release development

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9892
2024-10-11 09:16:14 -04:00
Jonathan Ringer 53717488ea FindProtobuf: Add PROTOC_EXE option to protobuf_generate
This option was added to protobuf's upstream cmake package.
2024-10-10 11:39:19 -04:00
Daniel Pfeifer 267b42bccc CTest: Remove declarative scripting mode 2024-10-09 22:30:58 +02:00
Brad King 28a0aa68b3 Merge topic 'doc-dev-maint'
b866eb8458 Help/dev: Add maintainer guide release branch creation to use a MR for CI

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9891
2024-10-09 15:26:38 -04:00
Brad King b51e6a0be7 Help/dev: Update export policy version in post-release development
Since commit 20fa4ce8d8 (export: Factor out CMake-specific export
generation (2/2), 2024-07-18) the code that needs editing is in a
different method.
2024-10-09 14:31:50 -04:00
Brad King b866eb8458 Help/dev: Add maintainer guide release branch creation to use a MR for CI
Provide a way to run CI with a new release version number
before merging it.
2024-10-09 11:59:51 -04:00
Brad King 5d4f86326c Begin post-3.31 development 2024-10-09 10:04:17 -04:00
Brad King 801c94085f Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2024-10-09 10:01:05 -04:00
Brad King aa6bbc3135 Help: Update Sphinx versionadded directives for 3.31 release
Run the script:

    Utilities/Sphinx/update_versions.py --since v3.30.0 --overwrite
2024-10-09 09:32:54 -04:00
Brad King 738cf491d4 Help: Organize and revise 3.31 release notes
Add section headers similar to the 3.30 release notes and move each
individual bullet into an appropriate section.  Revise a few bullets.
2024-10-09 09:32:21 -04:00
Brad King fae66f4751 Help: Consolidate 3.31 release notes
Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/3.31.rst`.
2024-10-09 09:32:02 -04:00
Craig Scott e5a9ccbcc8 project: Always set <PROJECT-NAME>_* as normal variables
Re-introduce the behavior originally introduced in CMake 3.30.3 by
commit c1ece78d11 (project: non cache <project> prefix variables are
also created, 2024-08-27, v3.30.3~2^2), but this time with a policy for
compatibility.

Issue: #25714
Issue: #26243
2024-10-08 10:07:11 -04:00
Brad King ddf1d2944f Merge branch 'release-3.30' 2024-10-08 09:23:28 -04:00
Brad King 9c4a0a9ff0 CMake 3.30.5 2024-10-08 08:56:04 -04:00
Brad King 51eb713098 Merge topic 'FindOpenMP-CUDA-Clang'
a4b60d948d FindOpenMP: Add support for CUDA when compiling with Clang

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9886
2024-10-08 08:49:03 -04:00
Brad King dc371e07fb Merge topic 'project-vars'
fa07ddfebf project: Only check non-cache vars when setting project vars

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9883
2024-10-08 08:45:26 -04:00
Brad King a4b60d948d FindOpenMP: Add support for CUDA when compiling with Clang 2024-10-07 14:19:08 -04:00
Craig Scott fa07ddfebf project: Only check non-cache vars when setting project vars
The change in commit 86ad7cc886 (project: Only define non-cache vars if
already defined, 2024-09-15, v3.30.4~2^2) was meant to only check for
non-cache variables when deciding whether to set non-cache project
variables for the current call.  However, it erroneously checked for any
variable, including cache variables.  This gives the intended result on
the first run, but on subsequent runs a cache variable will exist that
did not on the first run, leading to different behavior between the two
runs.  Fix the logic to only check for a pre-existing non-cache
variable, as was originally intended.

Fixes: #26355
2024-10-07 10:24:37 -04:00
Brad King 5b7ab1818b Merge topic 'cmake--workflow-preset'
b80aa1d3a3 preset: Easier command line interface for Workflow Presets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !9866
2024-10-07 09:11:48 -04:00
Brad King 9a14348a2c Merge topic 'GoogleTest-DISCOVERY_EXTRA_ARGS'
2dcba446e2 GoogleTest: Add DISCOVERY_EXTRA_ARGS to gtest_discover_tests()
f55f9fd5c1 Help: Mention TEST_LIST with gtest_discover_tests() can omit tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9856
2024-10-07 09:10:44 -04:00
Kevin Tolle b80aa1d3a3 preset: Easier command line interface for Workflow Presets
A positional option allows 'cmake --workflow --preset <preset>' to be
shortened to 'cmake --workflow <preset>'.

Fixes: #26270
2024-10-05 16:08:44 +10:00
Brad King d734f8dc6d Merge topic 'deprecate-pre-3.10'
84db8506ff Deprecate compatibility with CMake versions older than 3.10
9e3b559b6a Tests: Update cmake_minimum_required versions to 3.10
f4aa34daa7 Tests/RunCMake: Update cmake_minimum_required versions to 3.10
1d38d52995 Tests/RunCMake: Match diagnostic line numbers more robustly
55778f5a16 ExternalProject: Enable all policies in internal scripts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9875
2024-10-04 10:26:23 -04:00
Brad King 3b2b5ca096 Merge topic 'cpack-deb-depends-list'
443a06807c CPackDeb: always treat PACKAGE_DEPENDS as a list

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9873
2024-10-04 09:16:56 -04:00
Cedric Martineau 2dcba446e2 GoogleTest: Add DISCOVERY_EXTRA_ARGS to gtest_discover_tests()
Fixes: #26261
Co-authored-by: Craig Scott <craig.scott@crascit.com>
2024-10-04 18:12:30 +10:00
Brad King 84db8506ff Deprecate compatibility with CMake versions older than 3.10
Issue a deprecation warning on calls to `cmake_minimum_required` or
`cmake_policy` that set policies based on versions older than 3.10.
Note that the effective policy version includes `...<max>` treatment.
Update the check from commit 3a4791548d (Deprecate compatibility with
CMake versions older than 3.5, 2023-02-09, v3.27.0-rc1~508^2).
2024-10-03 14:18:26 -04:00
Edoardo Bortolozzo 443a06807c CPackDeb: always treat PACKAGE_DEPENDS as a list
Remove some edge cases where if CPACK_DEBIAN_PACKAGE_DEPENDS is a list
it would not be expanded on all components leaving some with ';'(s) in
the Depends field of the control file.
Same goes for using CPACK_DEBIAN_PACKAGE_SHLIBDEPS.
2024-10-03 08:52:14 -04:00
Brad King 6e569ad186 Merge topic 'doc-find-progr'
7a88ca2e56 Help: Document find_program filename suffix behavior

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9871
2024-10-03 08:11:06 -04:00
Brad King e78ae03893 Merge topic 'cmake-host-executable-suffix'
5d2b89d5fa Add CMAKE_HOST_EXECUTABLE_SUFFIX for Unix/Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: shiz01 <shiz01@tutanota.com>
Merge-request: !9863
2024-10-03 08:07:39 -04:00
scivision 7a88ca2e56 Help: Document find_program filename suffix behavior
Issue: #16453
2024-10-03 08:00:41 -04:00
leha-bot 5d2b89d5fa Add CMAKE_HOST_EXECUTABLE_SUFFIX for Unix/Windows
Closes: #17553
2024-10-02 10:39:40 -04:00
Marc Chevrier cd418d4bb6 Static libraries de-duplication: keep first occurrence
Fixes: #26335
2024-10-02 10:17:08 -04:00
Brad King 823e0a3a61 Merge topic 'preserve-empty-args-test-command-lines'
fc7aa3cd69 tests: Preserve empty arguments in test command lines
9f1703530b Help: Add pre-test to prose for gtest_discover_tests()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9575
2024-10-02 08:11:57 -04:00
Craig Scott fc7aa3cd69 tests: Preserve empty arguments in test command lines
This will now preserve empty values in the TEST_LAUNCHER and
CROSSCOMPILING_EMULATOR target properties for tests added by:

- The add_test() command.
- The ExternalData_Add_Test() command from the ExternalData module.
- The gtest_add_tests() or gtest_discover_tests() commands from the
  GoogleTest module.

For the gtest_add_tests() and gtest_discover_tests() commands,
empty elements in the values passed after the EXTRA_ARGS keyword
are also now preserved.

Policy CMP0178 is added to provide backward compatibility with the
old behavior where empty values were silently discarded from the
above cases.

Fixes: #26337
2024-10-02 10:09:11 +10:00
Brad King 8f4cea94da FindOpenMP: Add support for CUDA when supported by the toolchain
NVCC supports OpenMP on the host when the host compiler does.
2024-09-27 16:45:24 -04:00
Brad King f7cdfa9938 Merge branch 'release-3.30' 2024-09-27 09:19:32 -04:00
Brad King 5e4526d6dd CMake 3.30.4 2024-09-27 08:32:31 -04:00
Brad King f7e2422c3e Merge topic 'curl-tls-version'
38390245a2 ctest: Require minimum TLS 1.2 by default
5e1a59dc2b file(DOWNLOAD/UPLOAD): Require minimum TLS 1.2 by default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9848
2024-09-27 08:03:01 -04:00
Brad King 536f3e27d6 Merge topic 'project-vars'
73a8f944b2 Help: Add 3.30 release notes for project variable updates

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9853
2024-09-27 07:58:43 -04:00
Brad King 38390245a2 ctest: Require minimum TLS 1.2 by default
Issue: #25701
2024-09-26 10:10:48 -04:00
Brad King 5e1a59dc2b file(DOWNLOAD/UPLOAD): Require minimum TLS 1.2 by default
Fixes: #25701
2024-09-26 10:10:20 -04:00
Brad King 73a8f944b2 Help: Add 3.30 release notes for project variable updates
Add a 3.30.3 release note for commit c1ece78d11 (project: non cache
<project> prefix variables are also created, 2024-08-27, v3.30.3~2^2).
Prepare a 3.30.4 release note for commit 86ad7cc886 (project: Only
define non-cache vars if already defined, 2024-09-15).
2024-09-26 09:41:33 -04:00
Brad King 53f3e5da1e Merge topic 'link-strategy'
7abd3137b7 Linking: Optionally reorder direct dependencies from LINK_LIBRARIES
9285a9dc9a cmComputeLinkDepends: Add final dependency ordering to debug output
f792db4ca2 cmComputeLinkDepends: Add undocumented per-target debug property
80b469a51d cmComputeLinkDepends: Factor out string literals as named constants
3bd73fcc76 cmComputeLinkDepends: Modernize member initialization
8db69c767b cmComputeLinkDepends: Remove redundant member
dccdd030cd cmComputeLinkDepends: Replace depender index sentinel value with cm::optional
6c9d8dc243 cmComputeLinkDepends: Replace group index sentinel value with cm::optional
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9835
2024-09-26 08:47:47 -04:00
Brad King 6b7e634b7c Help: Explicitly state include_external_msproject is only for VS generators
Fixes: #19975
2024-09-25 07:24:32 -04:00
Brad King 7abd3137b7 Linking: Optionally reorder direct dependencies from LINK_LIBRARIES
Traditionally CMake generates link lines by starting with the direct
link dependencies specified by `LINK_LIBRARIES` in their original order
and then appending indirect dependencies that the direct dependencies
do not express.  This gives projects control over ordering among
independent entries, which can be important when intermixing flags
and libraries, or when multiple libraries provide the same symbol.
However, it may also result in inefficient link lines.

Add support for an alternative strategy that can reorder direct link
dependencies to produce more efficient link lines.  This is useful
for projects that cannot easily specify their targets' direct
dependencies in an order that satisfies indirect dependencies.

Add a `CMAKE_LINK_LIBRARIES_STRATEGY` variable and corresponding
`LINK_LIBRARIES_STRATEGY` target property to select a strategy.

Fixes: #26271
2024-09-25 06:48:57 -04:00
Brad King ea3405ff60 Merge topic 'curl-tls-verify'
4e62bc943c ctest: Verify TLS server certificate by default
8e92ee34f6 file(DOWNLOAD/UPLOAD): Verify TLS server certificate by default
dcaea54898 cmCTestCurl: Clarify names and logic using optional<bool>
03d37ae3ff cmFileCommand: Clarify names and logic using optional<bool>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9843
2024-09-24 10:35:19 -04:00
Brad King 4e62bc943c ctest: Verify TLS server certificate by default
Issue: #23608
2024-09-24 08:37:23 -04:00