Commit Graph

35082 Commits

Author SHA1 Message Date
Brad King 040ee747c3 Merge topic 'cxxmodules-no-compile-commands-modmap'
eebf239d9c Merge branch 'cxxmodules-no-compile-commands-modmap-release' into cxxmodules-no-compile-commands-modmap
73fbad3d93 cmNinjaTargetGenerator: use scan flag for modmap usage in exported commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9100
2024-01-03 13:53:05 -05:00
Craig Scott 4a76154e05 Merge topic 'cxxmodules-error-message-improvement'
4962eba981 cmDyndepCollation: clarify CXX_MODULES-without-BMI error message

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Yaraslau <yaraslau.tamashevich@gmail.com>
Merge-request: !9103
2024-01-03 07:19:09 -05:00
Kitware Robot 63cd112063 CMake Nightly Date Stamp 2024-01-03 00:01:06 -05:00
Kitware Robot 9841c4d879 CMake Nightly Date Stamp 2024-01-02 00:01:06 -05:00
Kitware Robot bd20084b6a CMake Nightly Date Stamp 2024-01-01 00:01:33 -05:00
Kitware Robot aea1365e6f CMake Nightly Date Stamp 2023-12-31 00:01:06 -05:00
Kitware Robot 76b585ecc8 CMake Nightly Date Stamp 2023-12-30 00:01:06 -05:00
Kitware Robot 8dc21f4b5a CMake Nightly Date Stamp 2023-12-29 00:01:05 -05:00
Ben Boeckel eebf239d9c Merge branch 'cxxmodules-no-compile-commands-modmap-release' into cxxmodules-no-compile-commands-modmap
* cxxmodules-no-compile-commands-modmap-release:
  cmNinjaTargetGenerator: use scan flag for modmap usage in exported commands
2023-12-28 10:58:35 -05:00
Kitware Robot 158ecdced2 CMake Nightly Date Stamp 2023-12-28 00:01:06 -05:00
Kitware Robot 74f1e6612e CMake Nightly Date Stamp 2023-12-27 00:01:05 -05:00
Ben Boeckel 4962eba981 cmDyndepCollation: clarify CXX_MODULES-without-BMI error message
Fixes: #25493
2023-12-26 11:07:15 -05:00
Kitware Robot b2ea53f484 CMake Nightly Date Stamp 2023-12-26 00:01:10 -05:00
Kitware Robot 0064ac4a55 CMake Nightly Date Stamp 2023-12-25 00:01:28 -05:00
Kitware Robot 1e37448710 CMake Nightly Date Stamp 2023-12-24 00:01:07 -05:00
Marc Chevrier 179c036b5d Merge topic 'Ninja-LINK_OPTIONS-with-newlines'
255c2e1430 Ninja: LINK_OPTIONS property should support newlines

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9096
2023-12-23 05:39:10 -05:00
Kitware Robot 6d578ab5f8 CMake Nightly Date Stamp 2023-12-23 00:01:06 -05:00
Ben Boeckel 73fbad3d93 cmNinjaTargetGenerator: use scan flag for modmap usage in exported commands
See: https://discourse.cmake.org/t/how-to-control-the-location-of-the-c-20-binary-module-interface-bmi-output-directory/7968
2023-12-22 16:18:18 -05:00
Kitware Robot 421cc38a54 CMake Nightly Date Stamp 2023-12-22 00:01:04 -05:00
Kitware Robot f8b165dcd6 CMake Nightly Date Stamp 2023-12-21 00:01:06 -05:00
Marc Chevrier 255c2e1430 Ninja: LINK_OPTIONS property should support newlines
Fixes: #25513
2023-12-20 17:05:09 +01:00
Brad King 30a56df0a8 Merge topic 'cmake-presets-empty-architecture'
0654051dde CMakePresets.json: Don't use architecture and toolset if empty

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9093
2023-12-20 09:11:20 -05:00
Brad King a350d92c06 Merge topic 'add_test-CROSSCOMPILING_EMULATOR-exclusive'
ca5a300d7f add_test: Honor CROSSCOMPILING_EMULATOR only when cross-compiling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8947
2023-12-20 09:09:48 -05:00
Brad King 5c1990fc51 Merge topic 'swift-CMP0157-old'
d31b48816c Swift/Ninja: Fix missing OFM in CMP0157 OLD behavior

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9089
2023-12-20 09:08:53 -05:00
Kitware Robot 1191f642c0 CMake Nightly Date Stamp 2023-12-20 00:01:08 -05:00
Kyle Edwards 0654051dde CMakePresets.json: Don't use architecture and toolset if empty
Fixes: #24864
2023-12-19 10:19:03 -05:00
Ralf Habacker ca5a300d7f add_test: Honor CROSSCOMPILING_EMULATOR only when cross-compiling
Add policy CMP0158 to provide compatibility for existing projects.

Fixes: #23672
2023-12-19 10:00:55 -05:00
Brad King 49dc6a44e0 Merge topic 'Xcode-Check-Imported-Framework'
defbfd6f55 Xcode: Restore support for standalone IMPORTED_LOCATION_<CONFIG>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9082
2023-12-19 08:04:01 -05:00
Kitware Robot 2cad910ecb CMake Nightly Date Stamp 2023-12-19 00:01:06 -05:00
Evan Wilde d31b48816c Swift/Ninja: Fix missing OFM in CMP0157 OLD behavior
The CMP0157 old behavior omitted the output-file-map after the Swift
build split because we stopped calling `EmitSwiftDependencyInfo` when we
could not split the build because we didn't call
`WriteObjectBuildStatement`. If we can't split the build, then we still
need to include the OFM information to not break incremental builds.
2023-12-18 19:42:53 -08:00
Marc Chevrier defbfd6f55 Xcode: Restore support for standalone IMPORTED_LOCATION_<CONFIG>
In commit 878ae03832 (macOS: IMPORTED framework: Honor SYSTEM target
property in all cases, 2023-08-27, v3.28.0-rc1~162^2) we broke support
for `IMPORTED_LOCATION_<CONFIG>` without `IMPORTED_CONFIGURATIONS`.
Previously it worked if the importing project's configurations match the
set of `IMPORTED_LOCATION_<CONFIG>` properties set.  Fix that case.

Fixes: #25506
Issue: #25515
2023-12-18 10:18:25 -05:00
Kitware Robot 43e6d30061 CMake Nightly Date Stamp 2023-12-18 00:01:56 -05:00
Kitware Robot daf8da8c80 CMake Nightly Date Stamp 2023-12-17 00:01:07 -05:00
Brad King ba41ca758a Merge topic 'swift-split-compilation-model'
9bed4f4d81 Swift/Ninja: Split compilation model
64b3367845 cmGlobalGenerator: Allow passing language to GetLangaugeOutputExtension

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8907
2023-12-16 07:15:41 -05:00
Kitware Robot 316bb67ff7 CMake Nightly Date Stamp 2023-12-16 00:01:08 -05:00
Brad King 6ba3bb0563 Merge topic 'cmake-test-launcher'
88863d83d6 fileapi: Add test launcher to codemodel-v2
1ec0372ed4 add_test: Optionally use a launcher for tests running in-project targets
478a5f4e04 fileapi: Make launcher attribute 'arguments' optional
b44e38a397 cmFileAPICodemodel: Add missing std::move()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8963
2023-12-15 09:34:20 -05:00
Evan Wilde 9bed4f4d81 Swift/Ninja: Split compilation model
Splitting the Swift build into an object build and a separate link step,
instead of building and linking in one step. The immediate benefit is
LSP support because we are able to emit compile-commands for Swift files
now. Additionally, it is possible to specify flags to the compile step,
enabling folks to emit C and C++ headers from their Swift builds for
C/C++ interop, without needing custom commands. Eventually, this gives
us a path toward working object libraries.

Object Libraries:
 - Object libraries don't work today because CMake doesn't emit targets
   for object libraries into the Ninja build file.
 - tl;dr: Object libraries work if they aren't WMO. Still need work to
   make WMO'd object libraries work.

   Object libraries still don't completely work with this patch because,
   while we emit the targets, the `TARGET_OBJECTS` generator expression
   expansion has a separate mechanism for determining what the names of
   the objects are based on the input source files, so targets that
   depend on an object library built with a whole-module optimization
   will depend on objects based on the name of the source file instead
   of the actual emitted object file.

These features require being able to accurately model wholemodule builds
though, because we actually need to track object files and WMO affects
what objects are emitted. For that, we require CMP0157 use the NEW
policy. When it's OLD, we have to fall back on the old behavior and
cannot provide object libraries or the compile-commands for LSP.

Issue: #25308
2023-12-15 05:51:13 -08:00
Kitware Robot dc4ce42b66 CMake Nightly Date Stamp 2023-12-15 00:01:05 -05:00
Brad King 1eed682d7c CMake 3.28.1 2023-12-14 10:47:27 -05:00
Kitware Robot 889dd287d3 CMake Nightly Date Stamp 2023-12-14 00:01:05 -05:00
Ralf Habacker 88863d83d6 fileapi: Add test launcher to codemodel-v2
We do not need to bump the minor version because it was recently bumped
by addition of the cross-compiling emulator as another kind of launcher.
2023-12-13 10:20:43 -05:00
Ralf Habacker 1ec0372ed4 add_test: Optionally use a launcher for tests running in-project targets
Add a `CMAKE_TEST_LAUNCHER` variable and corresponding `TEST_LAUNCHER`
target property.

Issue: #23672
2023-12-13 10:20:43 -05:00
Ralf Habacker 478a5f4e04 fileapi: Make launcher attribute 'arguments' optional
This was missed in commit 80a64c9ce5 (fileapi: Add cross-compiling
emulator to codemodel-v2, 2023-11-11).
2023-12-13 10:20:41 -05:00
Ralf Habacker b44e38a397 cmFileAPICodemodel: Add missing std::move()
This was missed in commit 80a64c9ce5 (fileapi: Add cross-compiling
emulator to codemodel-v2, 2023-11-11).
2023-12-13 10:19:38 -05:00
Kitware Robot 3f1a2c8d52 CMake Nightly Date Stamp 2023-12-13 00:01:05 -05:00
Brad King 9642647646 Merge topic 'create_test_sourcelist-full-filepath'
a29ca55b1f create_test_sourcelist: use the full path to the driver
609af7734f cmCreateTestSourceList: simplify string operations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9060
2023-12-12 08:41:57 -05:00
Brad King dbede7be7e Merge topic 'cmake-sources-no-scan'
91b7bf59a7 cmGlobalXCodeGenerator: disable C++ module scanning for force-lang files
9e19a61ddb cmLocalGenerator: disable C++ module scanning for unity sources
fa9a72a788 cmLocalGenerator: disable C++ module scanning for copied PCH sources
e5dce1a37e cmQtAutoGenInitializer: disable C++ module scanning for autogen sources
4fd596c34c cmGeneratorTarget: disable C++ module scanning for verify targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9064
2023-12-12 08:33:38 -05:00
Kitware Robot 9be8198bcc CMake Nightly Date Stamp 2023-12-12 00:01:04 -05:00
Ben Boeckel a29ca55b1f create_test_sourcelist: use the full path to the driver
When using `FILE_SET` syntax, full paths to out-of-source files are
needed as they are not searched for.
2023-12-11 12:15:28 -05:00
Ben Boeckel 609af7734f cmCreateTestSourceList: simplify string operations
Use `cmStrCat` where possible and use character literals instead of
length-1 string literals.
2023-12-11 12:15:28 -05:00