Commit Graph

69245 Commits

Author SHA1 Message Date
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
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
8e38ea12ec Merge topic 'cps-fix-config-import' into release-4.0
0ba5343b66 cmPackageInfoReader: Fix configuration-specific importing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10330
2025-02-12 09:33:54 -05:00
Brad King
4977e98594 Merge topic 'cps-fix-extra-schema' into release-4.0
83b22da7ac cmPackageInfoReader: Inherit cps_version
caff0d62c6 cmFindPackageCommand: Simplify cmStrCat

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10329
2025-02-12 09:32:37 -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
6571bf0be5 Merge topic 'update-kwsys' into release-4.0
9afe813781 Merge branch 'upstream-KWSys' into update-kwsys
7cd4048b3a KWSys 2025-02-12 (49c09912)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10327
2025-02-12 09:27:37 -05:00
Brad King
e14b86b7ff Merge topic 'findbase_dont_erase_outofbounds_entry' into release-4.0
f5837f0ac9 cmFindBase: Don't pass vector::erase an out of bounds iterator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10331
2025-02-12 09:23:37 -05:00
Patrik Huber
2d5f2c9311 Help: Make cmake-buildsystem(7) header-only examples consistent
Extend commit 93696d0f2e (Help: Restore cmake-buildsystem(7) header-only
library example, 2023-01-13, v3.25.2~3^2) to cover a second part of the
example from commit 4b25a0d512 (Help/manual: Update header-only library
example, 2022-04-22, v3.24.0-rc1~220^2).

Issue: #24319
2025-02-12 09:14:41 -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
Brad King
743f87d800 Merge topic 'test-uv-patches' into release-4.0
ab8b94986d Tests: Fix memory leak in CMakeLib.testUVPatches

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10324
2025-02-12 09:07:48 -05:00
Brad King
9afe813781 Merge branch 'upstream-KWSys' into update-kwsys
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2025-02-12 (49c09912)
2025-02-12 07:24:00 -05:00
KWSys Upstream
7cd4048b3a KWSys 2025-02-12 (49c09912)
Code extracted from:

    https://gitlab.kitware.com/utils/kwsys.git

at commit 49c099125d24880b2f71501fd81542896107e703 (master).

Upstream Shortlog
-----------------

Brad King (1):
      6b6ab811 SystemTools: Revert "use CopyFile on Windows"

Leonid Pospelov (1):
      6958dea7 SystemTools: use CopyFile on Windows

Xeonacid (1):
      2f654745 SystemInformation: Let NumberOf{Physical,Logical}CPU respect each other
2025-02-12 07:23:59 -05:00
Robert Maynard
f5837f0ac9 cmFindBase: Don't pass vector::erase an out of bounds iterator
Fixes: #26606
2025-02-11 14:59:21 -05:00
Martin Duffy
c8e319d08c instrumentation: Add experimental notes to docs 2025-02-11 13:47:56 -05:00
Martin Duffy
f777af7734 instrumentation: Update docs for available snippets 2025-02-11 13:47:20 -05:00
Martin Duffy
2299b2fcab instrumentation: Add build snippet
Adds a new snippet generation for recording the full time spent waiting for
`ninja` or `make` invocations to finish.
2025-02-11 13:31:28 -05:00
Matthew Woehlke
0ba5343b66 cmPackageInfoReader: Fix configuration-specific importing
Modify cmPackageInfoReader to also append the configuration to the
IMPORTED_CONFIGURATIONS property of every target which has configuration
specific properties. We retain pre-populating this with the package's
default_configurations (if specified) in order to ensure that those are
given preference, but we also need to add every configuration that
actually exists in order to ensure that the target is usable, especially
if default_configurations was not provided.
2025-02-11 13:23:29 -05:00
Matthew Woehlke
83b22da7ac cmPackageInfoReader: Inherit cps_version
Modify cmPackageInfoReader to not require schema_version in supplemental
files (i.e. appendices and/or configuration-specific files). This is
important as our own generation is not including cps_version in
supplemental files, and it is forbidden in the same according to a
strict reading of the specification.
2025-02-11 12:32:46 -05:00
Matthew Woehlke
caff0d62c6 cmFindPackageCommand: Simplify cmStrCat
Replace an unnecessary single-character string_view in cmStrCat with a
literal character.
2025-02-11 12:29:06 -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
ab8b94986d Tests: Fix memory leak in CMakeLib.testUVPatches
In commit f189e64126 (Tests: Add cases covering our mkdtemp code paths,
2025-02-07) we forgot to close the libuv default loop.
2025-02-11 07:57:42 -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
2baab9b99f Merge topic 'print-presets-log-level' into release-4.0
5303ad3823 Presets: Only print presets variables for verbose log level or higher

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10315
2025-02-11 07:45:21 -05:00
Brad King
3fe49bd9b6 Merge topic 'update-kwsys' into release-4.0
0938643895 Merge branch 'upstream-KWSys' into update-kwsys
c4206da3f7 KWSys 2025-02-10 (2e2f80f1)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10317
2025-02-11 07:43:51 -05:00