Commit Graph

69173 Commits

Author SHA1 Message Date
Brad King
4b5b172a65 CMake 4.0.0-rc1 2025-02-19 09:18:19 -05:00
Brad King
ccfa403859 Merge topic 'instrumentation-presets-hooks' into release-4.0
45d3ffaa95 instrumentation: Use auto for variables holding closures
d75ccd9f8d instrumentation: Fix docs for ctest --collect-instrumentation option
a2232db802 instrumentation: Make hooks compatible with presets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10352
2025-02-18 09:49:44 -05:00
Brad King
d40e1a0682 Merge topic 'policy_max-docs' into release-4.0
48095c623f Help/cmake_minimum_required: clarify policy_max `versionadded` note

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10363
2025-02-18 09:43:23 -05:00
Brad King
4c2bdf177d Merge topic 'doc-4.0-relnotes-typo' into release-4.0
b5374e0405 Help: Fix typo in 4.0 release notes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10358
2025-02-18 09:37:00 -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
Martin Duffy
45d3ffaa95 instrumentation: Use auto for variables holding closures 2025-02-17 11:08:30 -05:00
Martin Duffy
d75ccd9f8d instrumentation: Fix docs for ctest --collect-instrumentation option 2025-02-17 11:03:28 -05:00
Martin Duffy
a2232db802 instrumentation: Make hooks compatible with presets 2025-02-17 11:03:28 -05:00
Brad King
b5374e0405 Help: Fix typo in 4.0 release notes
Reported-by: Craig Scott <craig.scott@crascit.com>
2025-02-17 10:35:20 -05:00
Brad King
1fb8f4cad7 Merge topic 'FindCUDAToolkit-threads' into release-4.0
c5d81a2468 FindCUDAToolkit: Fix precondition for dependency on Threads

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10354
2025-02-17 10:34:00 -05:00
Brad King
47faea8e15 Merge topic 'version-standalone' into release-4.0
de7648117a CMakeVersion: Make script independently loadable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10356
2025-02-17 10:31:38 -05:00
Connor Baker
c5d81a2468 FindCUDAToolkit: Fix precondition for dependency on Threads
`FindThreads` requires that C or CXX be enabled.  Previously we were
only checking that `CMAKE_{C,CXX}_COMPILER` have been set, which does
not mean the languages have been enabled.
2025-02-16 11:21:18 -05:00
Brad King
bbbf373fe8 Merge topic 'cps-export-components' into release-4.0
647633e961 Tests: Add CPS end-to-end test
85721c4c56 install(PACKAGE_INFO): Export required components

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10339
2025-02-16 11:02:38 -05:00
Brad King
4300d08b20 Merge topic 'instrumentation_cdash' into release-4.0
a6d4a9a2ae ctest: Include cmake instrumentation data in XML files
85a63143ed instrument: don't report target=TARGET_NAME

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10332
2025-02-16 10:58:11 -05:00
Brad King
ab16216a26 Merge topic 'rel-sunos' into release-4.0
28f1da4b25 ci: Add jobs to build sunos-{i386,sparc} binaries
59ed18e54d Utilities/Release: Add base images to build sunos-{i386,sparc} binaries
a4e5719d31 Solaris: Rename local variable to avoid conflict with system headers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10350
2025-02-16 10:55:39 -05:00
Brad King
de7648117a CMakeVersion: Make script independently loadable 2025-02-16 09:29:17 -05:00
Matthew Woehlke
647633e961 Tests: Add CPS end-to-end test
Add a test that validates that we can export a package in CPS format and
import it again. This is fairly simplistic at the moment, but still
serves to validate some recent fixes that are not covered by more
targeted unit tests.
2025-02-15 07:49:13 -05:00
Matthew Woehlke
85721c4c56 install(PACKAGE_INFO): Export required components
Modify cmExportPackageInfoGenerator to record not just what packages are
required, but what targets (components) are used by those requirements,
and to populate the requirements' component lists accordingly.
2025-02-15 07:49:13 -05:00
Brad King
28f1da4b25 ci: Add jobs to build sunos-{i386,sparc} binaries 2025-02-15 07:28:07 -05:00
Brad King
59ed18e54d Utilities/Release: Add base images to build sunos-{i386,sparc} binaries 2025-02-15 07:28:06 -05:00
Brad King
a4e5719d31 Solaris: Rename local variable to avoid conflict with system headers 2025-02-15 07:28:06 -05:00
Brad King
6597a470c7 Merge topic 'update-curl' into release-4.0
80ec307900 curl: Set build options the way we need for CMake
ba77812035 Merge branch 'upstream-curl' into update-curl
1865f86e28 curl 2025-02-13 (57495c64)
302d842f6e curl: Update script to get curl 8.12.1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10342
2025-02-15 07:27:27 -05:00
Brad King
dc88b35233 Merge topic 'ci-use-typos-for-commit-message-check' into release-4.0
4558c8f9ff ci: Use `typos` to check commit messages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10314
2025-02-15 07:22:45 -05:00
Brad King
94c4fc1651 Merge topic 'ci-hip-6.3' into release-4.0
bc94c018c4 ci: Update HIP image to ROCm 6.3 on Ubuntu 24.04

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10351
2025-02-15 06:54:45 -05:00
Zack Galbreath
a6d4a9a2ae ctest: Include cmake instrumentation data in XML files 2025-02-15 06:25:12 -05:00
Zack Galbreath
85a63143ed instrument: don't report target=TARGET_NAME
Remove the erroneous default target name when instrumenting
custom commands.
2025-02-15 06:21:58 -05:00
Brad King
bc94c018c4 ci: Update HIP image to ROCm 6.3 on Ubuntu 24.04
The problem described in commit ec682ff22a (ci: Update to ROCm 6 HIP on
Fedora 41, 2024-12-02, v3.31.2~3^2) occurs here too.  Move the CI work
directory to a path without spaces.

Issue: #25932
2025-02-14 16:17:45 -05:00
Alex Turbov
4558c8f9ff ci: Use typos to check commit messages
Commit messages in the CMake repo may have Git hashes that can trigger
false positives in the `typos` checker.

Revert commit ddebf4653d (ci: Do not check commit messages with 'typos'
due to false positives, 2025-02-07).  Instead, copy the top-level config
file to a temporary location, add a configuration option to mark
10-hex-digit identifiers as always valid, and pass it to `typos` at the
commit checking phase.
2025-02-14 10:10:12 -05:00
Brad King
47689e9253 Merge topic 'policy-version-var' into release-4.0
1a35351125 Add CMAKE_POLICY_VERSION_MINIMUM to help configure outdated projects
d723198539 Help: De-duplicate policy version documentation
e5d29e9e00 Help: Drop cmake_minimum_required pre-2.4 behavior

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10343
2025-02-14 09:32:33 -05:00
Brad King
cb2552fc21 Merge topic 'fix_autogen_dependencies' into release-4.0
2b314e9009 Autogen: Fix missing autogen dependencies if a target is linked twice

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10344
2025-02-14 09:27:58 -05:00
Brad King
18d11a6cdc Merge topic 'FindPython-ARTIFACTS_PREFIX' into release-4.0
e9770a315d FindPython: Support for multiple searches in same directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10340
2025-02-14 09:23:40 -05:00
Brad King
95a0a16229 Merge topic 'doc-src-var-xref' into release-4.0
8905157694 Help: Link CMAKE_CURRENT_LIST_(DIR|FILE|LINE) to/from FUNCTION-equivalents

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10338
2025-02-14 09:19:58 -05:00
Brad King
80ec307900 curl: Set build options the way we need for CMake
Set options added by the update to curl 8.12.1.

In particular, now that upstream curl's CMake code depends on
OpenSSL via imported targets from FindOpenSSL, we can let it
handle the transitive dependency on posix threads.
2025-02-14 08:57:11 -05:00
Alexandru Croitor
2b314e9009 Autogen: Fix missing autogen dependencies if a target is linked twice
Autogen contains code to forward dependencies from an origin target
to its associated <origin>_autogen target. This code also contains a
check to skip forwarding a dependency if it does not appear in the
dependency graph for all configured build types.
This is done by counting the number of times a dependency appears in
the graph for each configured build type.

Unfortunately the code did not account for the case when a dependency
appears more than once in the link graph for a single build type. This
means that for a single-config build, if the same dependency is linked
twice, the dependency will be skipped altogether.

This can lead to build errors in a project where a hypothetical App
target depends on a Lib target, and thus expects App_autogen to depend
on Lib_autogen and any of its dependencies, but the latter is skipped.

Fix this by incrementing the count of a target in the dependency graph
only once per build type.

Fixes: #26700
2025-02-13 14:33:41 -05: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
ba77812035 Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2025-02-13 (57495c64)
2025-02-13 11:17:59 -05:00
Curl Upstream
1865f86e28 curl 2025-02-13 (57495c64)
Code extracted from:

    https://github.com/curl/curl.git

at commit 57495c64871d18905a0941db9196ef90bafe9a29 (curl-8_12_1).
2025-02-13 10:26:56 -05:00
Brad King
302d842f6e curl: Update script to get curl 8.12.1 2025-02-13 10:26:39 -05:00
Alex Neundorf
8905157694 Help: Link CMAKE_CURRENT_LIST_(DIR|FILE|LINE) to/from FUNCTION-equivalents 2025-02-13 09:46:20 -05:00
Marc Chevrier
e9770a315d FindPython: Support for multiple searches in same directory
This is a complement to commit 9b0510fa57 (FindPython: add support for
multiple searches in same directory, 2025-01-05).
2025-02-13 09:36:43 -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
Brad King
f45c1384cb Merge topic 'doc-header-only' into release-4.0
2d5f2c9311 Help: Make cmake-buildsystem(7) header-only examples consistent

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10333
2025-02-13 09:30:55 -05:00
Brad King
3ba4ca5963 Merge branch 'release-3.31' into release-4.0 2025-02-13 09:29:00 -05:00
Brad King
10da186af0 Merge topic 'ci-msvc-14.43' into release-4.0
8353a88661 ci: Update Windows builds to MSVC 14.43 toolset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10336
2025-02-13 09:28:30 -05:00
Brad King
c3735f37da Merge topic 'ci-msvc-14.43' into release-3.31
8353a88661 ci: Update Windows builds to MSVC 14.43 toolset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10336
2025-02-13 09:27:24 -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
Matthew Woehlke
7a0e698384 find_package: Fix CPS version parsing
Update cmPackageInfoReader's version parsing to more fully conform to
the specification and to reject non-conforming version strings. Start
adding framework to support version schemas other than "simple". Fix how
cmFindPackageCommand extracts version parts to not fail if more than
four parts are present.
2025-02-12 11:35:54 -05:00
Brad King
8353a88661 ci: Update Windows builds to MSVC 14.43 toolset 2025-02-12 11:05:51 -05:00