Commit Graph
35532 Commits
Author SHA1 Message Date
Brad King e449417f94 Merge topic 'genex-cleanup'
895efd4e7a cmGeneratorExpression: Consolidate recognition of transitive properties
5f7d8192da cmGeneratorExpression: Inline evaluation helper at only call site
91a25de520 cmGeneratorExpression: Add comments on implementation details
0a61116f52 cmGeneratorTarget: Remove EvaluateInterfaceProperty argument default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9425
2024-04-15 10:16:35 -04:00
Brad King ca449572ef Merge topic 'cxxmodules-import-std'
429902ebad Clang: support creating a target for imported modules
4617f272b4 MSVC: support `import std`
62a71047bb cmGraphVizWriter: ignore `__cmake_`-prefixed targets
442086c1dc fileapi: ignore `__cmake_`-prefixed targets
ffe74289b3 CMakeDetermineCompilerId: extract C++ standard library impl
15bbd1d9b8 Experimental: add an experimental feature gate for `import std`
f80c60df02 CMakeDetermineCompilerSupport: construct C++ modules targets
19341e2582 ci: enable `import_std23` C++ module tests on MSVC
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9337
2024-04-15 09:56:53 -04:00
Kitware Robot abd572de90 CMake Nightly Date Stamp 2024-04-15 00:02:49 -04:00
Kitware Robot 5df54e2228 CMake Nightly Date Stamp 2024-04-14 00:01:11 -04:00
Kitware Robot 9ae75401d5 CMake Nightly Date Stamp 2024-04-13 00:01:24 -04:00
Brad King 895efd4e7a cmGeneratorExpression: Consolidate recognition of transitive properties 2024-04-12 12:24:05 -04:00
Brad King 5f7d8192da cmGeneratorExpression: Inline evaluation helper at only call site 2024-04-12 12:23:59 -04:00
Brad King 91a25de520 cmGeneratorExpression: Add comments on implementation details
Clarify the purpose of some genex code that collects properties over the
transitive link closure.
2024-04-12 11:50:55 -04:00
Brad King 0a61116f52 cmGeneratorTarget: Remove EvaluateInterfaceProperty argument default
Pass it explicitly at the call sites.
2024-04-12 11:50:52 -04:00
Ben Boeckel 62a71047bb cmGraphVizWriter: ignore __cmake_-prefixed targets
These targets are internal to CMake's C++ `import std` implementation
and should not appear.
2024-04-12 11:46:40 -04:00
Ben Boeckel 442086c1dc fileapi: ignore __cmake_-prefixed targets
These targets are internal to CMake's C++ `import std` implementation
and should not appear.
2024-04-12 11:46:40 -04:00
Ben Boeckel 15bbd1d9b8 Experimental: add an experimental feature gate for import std 2024-04-12 11:46:39 -04:00
Brad King 1d31a00ee4 Merge topic 'genex-compatible-interface'
c94cfe92eb GenEx: Fix COMPATIBLE_INTERFACE_ evaluation outside usage requirements
061f7a6b97 GenEx: Remove redundant condition in COMPATIBLE_INTERFACE_ evaluation
86f99c5f6d GenEx: Add COMPATIBLE_INTERFACE_ implementation comments
541a788264 Tests: Add COMPATIBLE_INTERFACE_ cases outside usage requirements
5ebcf96170 Tests: Add COMPATIBLE_INTERFACE_ cases for library targets
f4249cf86f Tests: Add COMPATIBLE_INTERFACE_NUMBER_{MAX,MIN} transitive-only cases

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9423
2024-04-12 09:30:45 -04:00
Kitware Robot af1d83c94f CMake Nightly Date Stamp 2024-04-12 00:01:13 -04:00
Brad King c94cfe92eb GenEx: Fix COMPATIBLE_INTERFACE_ evaluation outside usage requirements
In commit ff6c401309 (cmTarget: Add interface for compatible numeric
properties, 2013-10-22, v3.0.0-rc1~460^2) the condition

    dagCheckerParent && !dagCheckerParent->EvaluatingLinkLibraries()

was written that way to avoid a nullptr dereference, but is actually
meant to say "is not evaluating link libraries".  That can also be true
when there is no `dagCheckerParent`, such as when evaluating a generator
expression outside of usage requirements, e.g., for `add_custom_target`.
The original commit tried to account for that by duplicating the
implementation in another code path, but that did not work in all cases.

Fix the condition, remove the duplication, and enable tests for the
now-working cases.
2024-04-11 18:35:40 -04:00
Brad King 061f7a6b97 GenEx: Remove redundant condition in COMPATIBLE_INTERFACE_ evaluation
The `IsLinkInterfaceDependent*Property` methods internally exclude
INTERFACE libraries since commit 0bfcb450e6 (INTERFACE_LIBRARY: Avoid
codepaths which set unneeded properties., 2013-11-20, v3.0.0-rc1~301^2~1).
2024-04-11 18:34:47 -04:00
Brad King 86f99c5f6d GenEx: Add COMPATIBLE_INTERFACE_ implementation comments 2024-04-11 18:34:47 -04:00
Brad King 541a788264 Tests: Add COMPATIBLE_INTERFACE_ cases outside usage requirements 2024-04-11 18:34:19 -04:00
Ben Boeckel 2c8361f923 cxxmodules: link to std-providing targets when available 2024-04-11 10:19:44 -04:00
Ben Boeckel 15cd73d6c2 cmGlobalGenerator: compute target features before synthetic targets
For `import std;` support, CMake needs to know the standard library
involved in order to ensure that the right target is linked. Afterwards,
the created synthetic targets need their target compile features
computed.
2024-04-11 10:19:44 -04:00
Ben Boeckel 7aa1e45e56 cmStandardLevelResolver: offer an API to get the string of a level 2024-04-11 10:19:44 -04:00
Ben Boeckel 7146cf9248 cmTarget: support the CXX_MODULE_STD property 2024-04-11 10:19:44 -04:00
Ben Boeckel 3273b18972 cmExportFileGenerator: support always exporting properties 2024-04-11 10:19:43 -04:00
Brad King 431999d177 Merge topic 'xcode-deterministic-target-objects'
1fa2ec1bbd Xcode: Use deterministic object ids for targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9241
2024-04-11 08:37:54 -04:00
Brad King fbd1091d8b Merge topic 'compiler-path-normalization'
26e79ed299 Fix regression on reconfigure with unnormalized -DCMAKE_<LANG>_COMPILER=
1d485a8b45 Tests/RunCMake/CompilerChange: Simplify test cases

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Ashay Rane <ashay.r@gmail.com>
Merge-request: !9416
2024-04-11 08:35:35 -04:00
Brad King 409bf46562 Merge topic 'cmake_language-test-experimental-feature-query'
8fd089018d Tests/RunCMake/cmake_language: test GET_EXPERIMENTAL_FEATURE_ENABLED
46da8e64b0 cmCMakeLanguageCommand: use `cmExperimental::FeatureByName`
e8582abc6d cmExperimental: add support for getting a feature value from its name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9414
2024-04-11 08:33:09 -04:00
Kitware Robot fcdc6e6173 CMake Nightly Date Stamp 2024-04-11 00:01:16 -04:00
lapfelix 1fa2ec1bbd Xcode: Use deterministic object ids for targets
When a CMake-generated Xcode project is included in another Xcode project,
the used targets' object ids are kept as `remoteGlobalIDString`.
Make the ids deterministic and somewhat independent of the build
tree location.
2024-04-10 14:33:57 -04:00
Brad King 26e79ed299 Fix regression on reconfigure with unnormalized -DCMAKE_<LANG>_COMPILER=
Since commit 3f2a5971c0 (Modules: CMAKE_*_COMPILER convert path to cmake
path, 2023-12-02, v3.29.0-rc1~292^2) we normalize the path to the
compiler.  Update our logic that checks whether the compiler has changed
to account for path normalization.

Fixes: #25883
Issue: #25456
2024-04-10 12:03:17 -04:00
Brad King 1a315c55e3 Merge topic 'genex-cleanup'
50840902ce cmGeneratorExpressionDAGChecker: Simplify finding evaluation graph root
304f4c261e cmGeneratorExpressionDAGChecker: Simplify member initialization
c620d8d9cf cmGeneratorExpressionDAGChecker: Clarify COMPILE_DEFINITIONS special case
a585e410c0 cmGeneratorExpressionDAGChecker: Inline initialization in constructor
40788cb1e6 cmGeneratorExpressionDAGChecker: Reduce duplication in constructor

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9413
2024-04-10 09:44:13 -04:00
Brad King fbca02163b Merge topic 'swift-fix-submodule-dependencies'
579472d877 Swift: Ninja: Remove module dependency for executables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9411
2024-04-10 09:41:39 -04:00
Ben Boeckel 46da8e64b0 cmCMakeLanguageCommand: use cmExperimental::FeatureByName 2024-04-10 00:56:44 -04:00
Kitware Robot 236a664c16 CMake Nightly Date Stamp 2024-04-10 00:01:20 -04:00
Ben Boeckel e8582abc6d cmExperimental: add support for getting a feature value from its name 2024-04-09 20:05:19 -04:00
Brad King 50840902ce cmGeneratorExpressionDAGChecker: Simplify finding evaluation graph root 2024-04-09 11:27:16 -04:00
Brad King 304f4c261e cmGeneratorExpressionDAGChecker: Simplify member initialization 2024-04-09 11:27:06 -04:00
Brad King c620d8d9cf cmGeneratorExpressionDAGChecker: Clarify COMPILE_DEFINITIONS special case 2024-04-09 11:26:54 -04:00
Brad King a585e410c0 cmGeneratorExpressionDAGChecker: Inline initialization in constructor 2024-04-09 11:26:53 -04:00
Brad King 40788cb1e6 cmGeneratorExpressionDAGChecker: Reduce duplication in constructor 2024-04-09 11:25:19 -04:00
Brad King 24f1e7c524 Merge topic 'nolint-header-sets-and-unity'
773dc0a297 Unity: Suppress clang-tidy include checks
eb66549c7c VERIFY_INTERFACE_HEADER_SETS: Suppress clang-tidy include checks
b0773aa4f6 VERIFY_INTERFACE_HEADER_SETS: Add IWYU pragma as C-style comment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9404
2024-04-09 08:49:14 -04:00
Kitware Robot 3f08812a6b CMake Nightly Date Stamp 2024-04-09 00:01:13 -04:00
Evan Wilde 579472d877 Swift: Ninja: Remove module dependency for executables
We shouldn't include the swiftmodule in the ninja dependency graph
unless that target emits a swiftmodule.

Fixes: #25869
2024-04-08 18:07:13 -07:00
ClausKlein 773dc0a297 Unity: Suppress clang-tidy include checks
`clang-tidy-17` adds include checks similar to IWYU.  Suppress them in
generated code.
2024-04-08 19:16:14 -04:00
ClausKlein eb66549c7c VERIFY_INTERFACE_HEADER_SETS: Suppress clang-tidy include checks
`clang-tidy-17` adds include checks similar to IWYU.  Suppress them in
generated code.
2024-04-08 19:15:21 -04:00
ClausKlein b0773aa4f6 VERIFY_INTERFACE_HEADER_SETS: Add IWYU pragma as C-style comment
In commit 6942234bf5 (VERIFY_INTERFACE_HEADER_SETS: Add IWYU pragma:
associated to verification file, 2022-10-07, v3.25.0-rc1~22^2) the
comment was added as a C++-style comment.  The feature works in C too,
so use a C-style comment.
2024-04-08 19:10:10 -04:00
Kitware Robot 05aaa09fd5 CMake Nightly Date Stamp 2024-04-08 00:02:40 -04:00
Kitware Robot 01829f4715 CMake Nightly Date Stamp 2024-04-07 00:01:13 -04:00
Kitware Robot 09dc8d5bdb CMake Nightly Date Stamp 2024-04-06 00:01:22 -04:00
Brad King c2949dbdf8 Merge topic 'ctest-invalid-arg'
304396d13c ctest: Show error on invalid ctest arguments
06cb978c1b Tests: Fix ctest flag typo in RunCMake.GoogleTest

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !9383
2024-04-05 11:55:47 -04:00
Kitware Robot aefd952085 CMake Nightly Date Stamp 2024-04-05 00:01:09 -04:00