Commit Graph

34875 Commits

Author SHA1 Message Date
Kitware Robot
67be468693 CMake Nightly Date Stamp 2023-11-19 00:01:08 -05:00
Kitware Robot
ee3e050d23 CMake Nightly Date Stamp 2023-11-18 00:01:12 -05:00
Brad King
6f8532fbfa Merge topic 'autogen-rsp'
232610e60e Autogen: Use new API for limiting autogen command line lengths
7a07887055 Autogen: Add support for response files for moc predef targets
7eb5ab2c63 Autogen: Generalize MaybeWriteMocResponseFile to MaybeWriteResponseFile

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8944
2023-11-17 08:23:18 -05:00
Kitware Robot
1aa095c8ed CMake Nightly Date Stamp 2023-11-17 00:01:08 -05:00
tophoo
232610e60e Autogen: Use new API for limiting autogen command line lengths 2023-11-16 16:29:29 +01:00
tophoo
7a07887055 Autogen: Add support for response files for moc predef targets
Add support for response files for moc predef targets and make the limit when
to use response files for autogen targets configurable.
2023-11-16 16:29:02 +01:00
Brad King
2c923a7e28 Merge topic 'install-export-xcframework'
37bc3400cd CMakePackageConfigHelpers: Add generate_apple_platform_selection_file()
256bb0cc40 install(EXPORT): Add ability to point to .xcframework file
a90968e044 cmExportBuildFileGenerator: Add structs for target exports

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Jason Juang <jasjuang@gmail.com>
Merge-request: !8969
2023-11-16 09:13:16 -05:00
Kitware Robot
572f3105c1 CMake Nightly Date Stamp 2023-11-16 00:01:10 -05:00
Kyle Edwards
256bb0cc40 install(EXPORT): Add ability to point to .xcframework file
Issue: #25262
2023-11-15 09:10:58 -05:00
Brad King
175988a37a Merge topic 'target-objects'
d7988ff6b8 Merge branch 'backport-target-objects' into target-objects
1814853081 cmCommonTargetGenerator: Drop unused local variable
377b78aef9 cmComputeLinkInformation: Simplify recording OBJECT libraries as link items
50fdaf8f1f cmComputeLinkInformation: Track targets named by TARGET_OBJECTS sources
0e26bd334d cmCommonTargetGenerator: Factor out GetLinkedTargetDirectories loop body

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !8974
2023-11-15 08:44:40 -05:00
Kitware Robot
403374a81c CMake Nightly Date Stamp 2023-11-15 00:01:10 -05:00
Brad King
d7988ff6b8 Merge branch 'backport-target-objects' into target-objects 2023-11-14 15:42:07 -05:00
Brad King
1814853081 cmCommonTargetGenerator: Drop unused local variable 2023-11-14 15:40:33 -05:00
Brad King
377b78aef9 cmComputeLinkInformation: Simplify recording OBJECT libraries as link items
Simplify commit 2c7acd34e2 (cmComputeLinkInformation: add `OBJECT`
libraries as link items, 2023-07-24, v3.28.0-rc1~279^2) using the
existing local variables.
2023-11-14 15:40:29 -05:00
Brad King
50fdaf8f1f cmComputeLinkInformation: Track targets named by TARGET_OBJECTS sources
Since commit b6a5382217 (Ninja: depend on language module information
files directly, 2023-02-10, v3.27.0-rc1~502^2), the return value of
`cmCommonTargetGenerator::GetLinkedTargetDirectories` must account for
linked object libraries because they may provide modules (#25112).
These were added by commit b665966933 (cmComputeLinkInformation: track
OBJECT library dependencies, 2023-07-22, v3.27.1~5^2).  However, targets
named by `$<TARGET_OBJECTS:...>` sources are also needed (#25365).

The latter were added by commit 22da18b995 (Fortran: Restore support for
TARGET_OBJECTS providing modules, 2023-10-27, v3.28.0-rc4~9^2) and
commit 035302b7e3 (cmComputeLinkDepends: also copy the target from
object link items, 2023-10-27, v3.28.0-rc4~9^2~2).  However, their
approach added link entries not actually specified by projects.  It also
incorrectly re-used `cmComputeLinkDepends::AddLinkObject` for object
library targets when it is meant for their individual object files.
These problems caused additional regressions (#25417).  Revert the
implementation parts of those commits and leave behind an assertion and
comment to help avoid the mistake in the future.  Instead, track targets
named by `$<TARGET_OBJECTS:...>` sources with a dedicated member.

Issue: #25112
Issue: #25365
Fixes: #25417
Co-authored-by: Ben Boeckel <ben.boeckel@kitware.com>
2023-11-14 14:50:08 -05:00
tophoo
7eb5ab2c63 Autogen: Generalize MaybeWriteMocResponseFile to MaybeWriteResponseFile 2023-11-14 20:08:48 +01:00
Brad King
0e26bd334d cmCommonTargetGenerator: Factor out GetLinkedTargetDirectories loop body
Re-use the body in multiple loops instead of allocating to combine them.
2023-11-14 13:50:13 -05:00
Kyle Edwards
a90968e044 cmExportBuildFileGenerator: Add structs for target exports 2023-11-14 09:22:53 -05:00
Brad King
f22ecbacb6 Merge topic 'export-find_dependency-calls'
0ad8fc5a63 FetchContent: Set CMAKE_EXPORT_FIND_PACKAGE_NAME
c6e6861e63 install(EXPORT): Export find_dependency() calls
2837f592ab cmExportFileGenerator: Add function to set required CMake version
e62a3b8625 Help/export: Add signature directives

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Acked-by: Jason Juang <jasjuang@gmail.com>
Merge-request: !8957
2023-11-14 09:22:13 -05:00
Brad King
380b324103 Merge topic 'sources-per-config'
16c5977504 Fix per-config sources in multi-config generators when first config adds none

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8971
2023-11-14 09:09:15 -05:00
Brad King
7b2f771077 Merge topic 'genex-fix-short-circuit'
27244a8f73 cmGeneratorExpressionNode: Fix short-circuit logic

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8966
2023-11-14 09:07:11 -05:00
Kitware Robot
32342fa728 CMake Nightly Date Stamp 2023-11-14 00:01:07 -05:00
Brad King
16c5977504 Fix per-config sources in multi-config generators when first config adds none
Since commit b1c3ae33ea (cmTarget: Short-circuit language computation if
context independent., 2014-04-09, v3.1.0-rc1~669^2~1) we've tried to
avoid repeating computation of the list of sources for a target for
every configuration in the case that a per-config source (or object
library) contributes zero sources.  However, it is possible that an
entry contributes zero sources in the first configuration processed but
at least one source in other configurations.

Fixes: #25400
2023-11-13 14:00:12 -05:00
Martin Duffy
27244a8f73 cmGeneratorExpressionNode: Fix short-circuit logic
Fix logic added by commit 634079b86d (cmGeneratorExpressionEvaluator:
Short-circuit boolean operators, 2023-09-11, v3.28.0-rc1~47^2) and
add missing test cases.

Fixes: #25412
2023-11-13 11:11:18 -05:00
Kyle Edwards
c6e6861e63 install(EXPORT): Export find_dependency() calls
Issue: #20511
Co-Authored-by: Brad King <brad.king@kitware.com>
Co-Authored-by: Robert Maynard <rmaynard@nvidia.com>
2023-11-13 11:07:52 -05:00
Kyle Edwards
2837f592ab cmExportFileGenerator: Add function to set required CMake version 2023-11-13 11:07:52 -05:00
Brad King
5e79703f93 Merge topic 'make-test-depend-on-all'
5e0c1777a3 Optionally make `test` target depend on `all`
eaa00d4dfa Tests: Add case to verify that 'make test' does not 'make all'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: Jason Juang <jasjuang@gmail.com>
Merge-request: !8956
2023-11-13 09:53:04 -05:00
Brad King
af2fb376a4 Merge topic 'link-deduplicate-libs'
7b99c42e57 Link step: Enable to configure deduplication of libraries
07501c1678 Link Step: Introduce EntriesProcessing class

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8946
2023-11-13 09:51:51 -05:00
Kitware Robot
1af14eda2d CMake Nightly Date Stamp 2023-11-13 00:01:29 -05:00
Kitware Robot
a0f7d3b864 CMake Nightly Date Stamp 2023-11-12 00:01:09 -05:00
Kitware Robot
33d372ceca CMake Nightly Date Stamp 2023-11-11 00:01:07 -05:00
William Sciaroni
5e0c1777a3 Optionally make test target depend on all
Fixes: #8774
2023-11-10 13:19:11 -05:00
Brad King
7e8b689532 Merge topic 'ctest-remove-binary-dir-error'
07edab8ef2 ctest_empty_binary_directory: Report more detail in failure message

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8959
2023-11-10 09:58:25 -05:00
Brad King
f421f02c10 Merge topic 'cmtargetexport-iwyu'
c2974463d7 cmTargetExport: Analyze with IWYU

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8961
2023-11-10 09:57:36 -05:00
Kitware Robot
c09232c27d CMake Nightly Date Stamp 2023-11-10 00:01:08 -05:00
Marc Chevrier
7b99c42e57 Link step: Enable to configure deduplication of libraries
Some platforms, Apple or Windows for instance, do not require to duplicate
static libraries to resolve mutual dependencies. Moreover, Xcode version 15
emits a warning if a library is duplicated.
On Windows, enable a better control of libraries order.

Fixes: #20722, #25297
2023-11-09 19:20:40 +01:00
Kyle Edwards
c2974463d7 cmTargetExport: Analyze with IWYU
Since there is no cmTargetExport.cxx, cmTargetExport.h was not
being analyzed by IWYU. Associate cmTargetExport.h with
cmExportSet.cxx.
2023-11-09 10:49:50 -05:00
Brad King
07edab8ef2 ctest_empty_binary_directory: Report more detail in failure message 2023-11-09 09:11:55 -05:00
Kitware Robot
1cd9ebe4a6 CMake Nightly Date Stamp 2023-11-09 00:01:09 -05:00
Marc Chevrier
07501c1678 Link Step: Introduce EntriesProcessing class
This refactoring is done in preparation of the possibility to configure
the deduplication of the libraries as well as the order on the link command.
2023-11-08 17:06:19 +01:00
Brad King
85a9fe056f Merge topic 'cxx23'
a0fabc4769 cmGlobalGeneratorFactory: Provide complete cmGlobalGenerator to deleter
85627a93c9 cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publicly
641c02a3ce cmList: Avoid using operator-> on input iterator
e4483b8871 Tests: Avoid compiling call to dap::optional<dap::string>(nullptr)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8950
2023-11-08 10:32:04 -05:00
Brad King
56544c1874 Merge topic 'cxx23' into release-3.28
a0fabc4769 cmGlobalGeneratorFactory: Provide complete cmGlobalGenerator to deleter
85627a93c9 cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publicly
641c02a3ce cmList: Avoid using operator-> on input iterator
e4483b8871 Tests: Avoid compiling call to dap::optional<dap::string>(nullptr)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8950
2023-11-08 10:32:03 -05:00
Kitware Robot
7ebafbd065 CMake Nightly Date Stamp 2023-11-08 00:01:08 -05:00
Brad King
49df33c342 Merge topic 'static-library-link-xcframework'
7d19246138 Xcode: Fix linking against .xcframework from static libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8949
2023-11-07 09:56:25 -05:00
Brad King
4f26c238a6 Merge topic 'static-library-link-xcframework' into release-3.28
7d19246138 Xcode: Fix linking against .xcframework from static libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8949
2023-11-07 09:56:24 -05:00
Brad King
a0fabc4769 cmGlobalGeneratorFactory: Provide complete cmGlobalGenerator to deleter
The libc++ `unique_ptr` implementation requires this since C++23.

Fixes: #25388
2023-11-07 09:13:25 -05:00
Brad King
85627a93c9 cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publicly 2023-11-07 09:13:25 -05:00
Brad King
641c02a3ce cmList: Avoid using operator-> on input iterator
As of C++23, some standard library iterator types deprecate it.
2023-11-07 09:13:25 -05:00
Brad King
5afd411ed0 Merge topic 'vs-CharacterSet'
cbddc66277 VS: Consider macros with values when determining CharacterSet

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8940
2023-11-07 09:10:00 -05:00
Brad King
92cc1f3b62 Merge topic 'Ninja-use-depslog'
bb7a0497ef cmTransformDepfile: warn when a depfile is not written to
c22c473bde Tests/Ninja*/CustomCommandDepfile: check that deps are in the database
b0177003e1 cmGlobalNinjaGenerator: tell `ninja` to actually read the depfile
45eff9145e cmAddCustomCommandCommand: use `cmStrCat`
c6445c615b Tests/RunCMake/Ninja: fix subdir prefix check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8911
2023-11-07 09:07:46 -05:00