Commit Graph

67749 Commits

Author SHA1 Message Date
Marc Chevrier d5be7c7f31 Linker: Detect GNU push-state/pop-state flags more robustly
Try actually passing them to the linker to see whether it complains.

Fixes: #26766
2025-03-20 11:00:02 -04:00
Marc Chevrier 7b552b9a64 Linker: Save GNU push-/pop-state detection with compiler inspection results
Previously we saved it in the cache, which:

* Persists even if a new version of CMake changes how the check works.
* Does not propagate to `try_compile` checks.
2025-03-20 11:00:02 -04:00
Marc Chevrier a9b126b0da Linker: Save linker inspection results with compiler inspection results
Reconfigure `CMake<LANG>Compiler.cmake` again after linker information
is detected.
2025-03-20 11:00:02 -04:00
Marc Chevrier 3f5f2b2d49 Linker: Honor CMAKE_<LANG>_LINK_LIBRARY_USING_FEATURE_SUPPORTED when FALSE
It is documented to override `CMAKE_LINK_LIBRARY_USING_FEATURE_SUPPORTED`.
2025-03-20 10:59:01 -04:00
Brad King e4bf5e4a53 Merge topic 'doc-CMAKE_CONFIG_DIR' into release-3.31
bbbbab4661 Help: Add 3.31 release note for CMAKE_CONFIG_DIR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10474
2025-03-18 09:17:09 -04:00
Brad King 52b62cf4e1 Merge topic 'ASM_MARMASM-config' into release-3.31
9b5915c178 MARMASM: Fix loading linker information

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10487
2025-03-18 09:16:34 -04:00
Marc Chevrier 9b5915c178 MARMASM: Fix loading linker information
Fix misspelled `ASM_DIALECT` variable value.
2025-03-17 12:02:38 -04:00
Peter Kokot bbbbab4661 Help: Add 3.31 release note for CMAKE_CONFIG_DIR
This was accidentally left out of commit 1df94443fe (fileapi: Add
support for user-wide queries, 2024-08-16, v3.31.0-rc1~177^2).
2025-03-17 11:57:15 -04:00
Brad King 662e8aeea8 Merge topic 'msvc-c++23' into release-3.31
d54916d03a MSVC: Revert use of temporary -std:c++23preview flag for C++23

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10470
2025-03-17 11:41:04 -04:00
Brad King f284aa0e29 Merge topic 'backport-3.31-file-MAKE_DIRECTORY-result-var' into release-3.31
a039a1655d file(MAKE_DIRECTORY): Clarify formatting of unexpected arguments error
90d9c79348 file(MAKE_DIRECTORY): Do not make directories for command keywords

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10467
2025-03-14 11:44:47 -04:00
Brad King d54916d03a MSVC: Revert use of temporary -std:c++23preview flag for C++23
Revert commit b3f1c60aff (MSVC: Use -std:c++23preview flag for C++23
when available, 2025-03-12), except for the VS flag table update.
MSVC documentation states that the flag will be removed in the future
when `-std:c++23` is added.  Therefore it is only suitable for manual
specification by end-users.

Issue: #26692
2025-03-14 09:55:18 -04:00
Brad King a039a1655d file(MAKE_DIRECTORY): Clarify formatting of unexpected arguments error 2025-03-13 11:57:27 -04:00
Brad King 90d9c79348 file(MAKE_DIRECTORY): Do not make directories for command keywords
In commit 95323c90a1 (file(MAKE_DIRECTORY): Add optional RESULT keyword
to capture failure., 2024-06-16, v3.31.0-rc1~414^2) we computed an
updated range of arguments, that name directories to be created, before
the `RESULT` keyword.  However, we forgot to use it in the loop.

Fixes: #26768
2025-03-13 11:57:25 -04:00
Brad King 681a66ba8e Merge topic 'msvc-c++23' into release-3.31
b3f1c60aff MSVC: Use -std:c++23preview flag for C++23 when available
1b4a802413 MSVC: Split C++23 flag selection into dedicated block

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10462
2025-03-13 09:39:45 -04:00
Brad King b3f1c60aff MSVC: Use -std:c++23preview flag for C++23 when available
This was added by VS 17.13.

Fixes: #26692
2025-03-12 14:50:32 -04:00
Brad King 1b4a802413 MSVC: Split C++23 flag selection into dedicated block 2025-03-12 14:50:31 -04:00
Brad King a682a95b31 Merge topic 'curl-opt-netrc' into release-3.31
1b0c92a3a1 cmCurl: Avoid using undocumented type for CURLOPT_NETRC values

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10449
2025-03-11 09:21:36 -04:00
Brad King 1b0c92a3a1 cmCurl: Avoid using undocumented type for CURLOPT_NETRC values
Since upstream curl commit `2ec00372a1` (curl.h: change some enums to
defines with L suffix, 2025-02-25), the `CURL_NETRC_*` constants are
integer literals instead of `enum CURL_NETRC_OPTION`.  It turns out
that `curl_easy_setopt` has always expected a `long` anyway, and
that `CURL_NETRC_OPTION` is not documented for public use.

Fixes: #26754
2025-03-10 11:17:19 -04:00
Brad King f80118609d Merge branch 'release-3.30' into release-3.31 2025-03-07 12:14:26 -05:00
Brad King f68bd58c9f Merge topic 'cmake-gui-incidental-errors' into release-3.31
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10429
2025-03-07 12:14:00 -05:00
Brad King de5749332a Merge topic 'cmake-gui-incidental-errors' into release-3.30
e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10429
2025-03-07 12:12:42 -05:00
Juan Ramos e9c494005c cmake-gui: Fix regression that prints an incidental error on fresh build trees
Since commit a872844908 (cmake-gui: Handle relative paths in the build
directory text input, 2024-04-24, v3.30.0-rc1~5^2), `cmake-gui` gave an
incidental error message even when a valid build directory was being
passed.  Fix this by checking for a non-empty path before using it.

Fixes: #26744
2025-03-06 11:13:06 -05:00
Brad King fea3aa9760 Merge topic 'test-RunCMake-ld--warn-rwx-segments' into release-3.31
5c7224bdff Tests: Teach RunCMake to ignore GNU ld --warn-rwx-segments warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10398
2025-02-28 11:04:07 -05:00
Brad King 5c7224bdff Tests: Teach RunCMake to ignore GNU ld --warn-rwx-segments warnings
GNU ld 2.39 added warnings of the form

    ld: warning: %pB has a LOAD segment with RWX permissions

They appear when linking test binaries on `hppa` and `sparc`.

Debian-Issue: https://bugs.debian.org/1098956
Debian-Issue: https://bugs.debian.org/1098970
2025-02-27 09:02:52 -05:00
Brad King 859ca5c4d7 CMake 3.31.6 v3.31.6 2025-02-24 10:53:17 -05:00
Brad King 1e2e9ceccf Merge branch 'release-3.30' into release-3.31 2025-02-24 10:43:52 -05:00
Brad King 2bd6fbe1b0 CMake 3.30.8 v3.30.8 2025-02-24 10:09:52 -05:00
Brad King 70c8f9b249 Merge branch 'release-3.30' into release-3.31 2025-02-24 09:19:29 -05:00
Brad King 7fb69c7452 Merge topic 'backport-3.31-custom-transitive-properties' into release-3.31
8b5af40b34 GenEx: Fix evaluation of LINK_LIBRARIES as custom transitive property
161f703e76 GenEx: Restore evaluation context for conditional transitive properties
419c19d531 Tests: Extend CustomTransitiveProperties with custom transitive LINK_LIBRARIES
ff2004d430 Tests: Extend CustomTransitiveProperties with non-transitive LINK_LIBRARIES
d7f1a100d9 Tests: Split CustomTransitiveProperties argument checks into helper
2ccbad90e6 cmGeneratorExpressionDAGChecker: Construct with initializer list syntax
99fee5720d cmGeneratorExpressionDAGChecker: De-duplicate constructor signature
82151ea289 cmGeneratorExpressionDAGChecker: Construct with initializer list syntax

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10384
2025-02-24 09:18:58 -05:00
Brad King d061599f5c Merge topic 'backport-3.30-custom-transitive-properties' into release-3.30
8b5af40b34 GenEx: Fix evaluation of LINK_LIBRARIES as custom transitive property
161f703e76 GenEx: Restore evaluation context for conditional transitive properties
419c19d531 Tests: Extend CustomTransitiveProperties with custom transitive LINK_LIBRARIES
ff2004d430 Tests: Extend CustomTransitiveProperties with non-transitive LINK_LIBRARIES
d7f1a100d9 Tests: Split CustomTransitiveProperties argument checks into helper
99fee5720d cmGeneratorExpressionDAGChecker: De-duplicate constructor signature
82151ea289 cmGeneratorExpressionDAGChecker: Construct with initializer list syntax

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10384
2025-02-24 09:17:34 -05:00
Brad King 478d6cfd9a Merge branch 'backport-3.30-custom-transitive-properties' 2025-02-23 08:33:12 -05:00
Brad King 8b5af40b34 GenEx: Fix evaluation of LINK_LIBRARIES as custom transitive property
Fix logic from commit b9ee79b8a1 (GenEx: Add support for custom
transitive compile properties, 2024-05-09, v3.30.0-rc1~82^2~1) to more
precisely know when we are computing the link dependency graph.

Issue: #20416
Issue: #26709
2025-02-23 08:30:42 -05:00
Brad King 161f703e76 GenEx: Restore evaluation context for conditional transitive properties
In commit e8010b67c7 (cmGeneratorExpressionDAGChecker: Make local
generator available in constructor, 2024-04-25, v3.30.0-rc1~172^2~6)
we accidentally failed to preserve `EvaluateInterfaceProperty`'s
consistency with `TargetPropertyNode::Evaluate`.  Fix its local
generator selection to match the evaluation context.
2025-02-23 08:30:33 -05:00
Brad King 419c19d531 Tests: Extend CustomTransitiveProperties with custom transitive LINK_LIBRARIES
Demonstrate presence of extra entries due to not always avoiding repeat
visits.
2025-02-23 08:28:32 -05:00
Brad King ff2004d430 Tests: Extend CustomTransitiveProperties with non-transitive LINK_LIBRARIES 2025-02-23 08:26:45 -05:00
Brad King d7f1a100d9 Tests: Split CustomTransitiveProperties argument checks into helper 2025-02-23 08:25:32 -05:00
Brad King 8fa7d330d2 Merge branch 'backport-3.30-custom-transitive-properties' (early part) 2025-02-22 09:39:45 -05:00
Brad King 2ccbad90e6 cmGeneratorExpressionDAGChecker: Construct with initializer list syntax 2025-02-22 09:11:20 -05:00
Brad King 99fee5720d cmGeneratorExpressionDAGChecker: De-duplicate constructor signature 2025-02-22 08:46:44 -05:00
Brad King 82151ea289 cmGeneratorExpressionDAGChecker: Construct with initializer list syntax 2025-02-22 08:33:20 -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
Brad King 8353a88661 ci: Update Windows builds to MSVC 14.43 toolset 2025-02-12 11:05:51 -05:00
Brad King 3f309b7d97 Merge topic 'doc-execute_process-CMP0176-version' into release-3.31
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 16:26:53 -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 8332aa3dcb Merge topic 'linker-configuration-haiku' into release-3.31
379785e869 Linker configuration: Add missing platform Haiku

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10318
2025-02-10 11:04:44 -05:00
Begasus 379785e869 Linker configuration: Add missing platform Haiku
Add Haiku information modules missed by commit c1c4cf9545 (Linker
configuration: introduce a new architecture, 2024-06-05,
v3.31.0-rc1~307^2~1).
2025-02-10 10:27:27 -05:00
Brad King 3d8b8dbe56 Merge branch 'release-3.30' into release-3.31 2025-02-07 09:46:38 -05:00
Brad King 67e551c414 Merge branch 'release-3.29' into release-3.30 2025-02-07 09:46:32 -05:00
Brad King 13cf00ad71 Merge topic 'ticlang-uppercase-arm-architecture' into release-3.31
3fa159dd57 TIClang: Make ARM architecture id uppercase

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10302
2025-02-07 09:46:14 -05:00
Brad King d5ab13e5d1 Merge topic 'ticlang-uppercase-arm-architecture' into release-3.30
3fa159dd57 TIClang: Make ARM architecture id uppercase

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10302
2025-02-07 09:45:59 -05:00