Commit Graph

10713 Commits

Author SHA1 Message Date
Brad King 04c33e0990 Merge topic 'modules-depends-via-target-objects'
22da18b995 Fortran: Restore support for TARGET_OBJECTS providing modules
64d9240564 cmComputeLinkInformation: skip over linking to items for object purposes
035302b7e3 cmComputeLinkDepends: also copy the target from object link items
861876b936 Tests/ObjectLibrary: fix comment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8923
2023-10-31 09:12:30 -04:00
Ben Boeckel 22da18b995 Fortran: Restore support for TARGET_OBJECTS providing modules
Continue b665966933 (cmComputeLinkInformation: track OBJECT library
dependencies, 2023-07-22) which added explicitly listed `OBJECT`
libraries to the list of targets which the collator needs to consider.
Now also consider targets which provide objects directly to the target
via a `$<TARGET_OBJECT>` source lists.

Also add tests which use target objects directly and through an
`INTERFACE` library with target objects in its own sources.

Fixes: #25365
2023-10-30 10:06:12 -04:00
Brad King 728646434f Merge topic 'cxxmodules-ninja-forced-rsp-files'
09c962a6a4 Tests/CXXModules: test forced rsp files with ninja

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8926
2023-10-30 08:26:09 -04:00
Brad King ea52c7bd78 Merge topic 'cmp0153-suggestion'
d3cc815c98 CMP0153: Add suggestion to use execute_process()
8313d26198 cmState::AddDisallowedCommand(): Allow additional warning info

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !8921
2023-10-30 08:22:17 -04:00
Ben Boeckel 09c962a6a4 Tests/CXXModules: test forced rsp files with ninja
Fixes: #25367
2023-10-27 23:55:39 -04:00
Ben Boeckel 861876b936 Tests/ObjectLibrary: fix comment 2023-10-27 13:25:33 -04:00
Kyle Edwards d3cc815c98 CMP0153: Add suggestion to use execute_process() 2023-10-27 09:43:18 -04:00
Brad King f884a94a0b Merge topic 'cpack-archive-dedup'
770efceccb CPack: Avoid adding duplicate files to archive when combining components

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8839
2023-10-27 09:07:49 -04:00
Brad King f55043f87e Merge topic 'unity-build-objc'
e218db1a90 Unity: Enable UNITY_BUILD for OBJC and OBJCXX files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8906
2023-10-27 09:06:44 -04:00
Brad King 9627ef86c9 Merge topic 'debugger-function-name-in-stacktrace'
c028425df9 Debugger: report function name in DAP stackframes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8913
2023-10-27 09:04:06 -04:00
Brad King 0ca2253087 Merge topic 'fix-Wstrict-prototypes'
81022213f6 Modules: Fix clang -Wstrict-prototypes warnings
47c3334203 Source: Fix clang -Wstrict-prototypes warnings
264dcae5e4 Tests: Fix clang -Wstrict-prototypes warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8916
2023-10-27 08:58:43 -04:00
Atılhan Emre Dursunoğlu 770efceccb CPack: Avoid adding duplicate files to archive when combining components
Fixes: #25280
2023-10-26 18:20:48 +03:00
Rob Raguet-Schofield e218db1a90 Unity: Enable UNITY_BUILD for OBJC and OBJCXX files 2023-10-26 10:01:41 -04:00
Dmitry.Neverov c028425df9 Debugger: report function name in DAP stackframes
Before a file name and a line were returned, but they can be
obtained by other means.

Fixes: #25091
2023-10-26 09:51:32 -04:00
Brad King 91e4d86df3 Merge topic 'hint-about-missing-extension-on-windows'
186673ba0b cmGlobalGenerator: hint about missing extensions on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8914
2023-10-26 09:42:43 -04:00
Brad King a82c7040d4 Merge topic 'iar-nightly'
37e44707bc IAR: Add tests covering IAR toolchains

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8909
2023-10-26 09:41:38 -04:00
Brad King 264dcae5e4 Tests: Fix clang -Wstrict-prototypes warnings 2023-10-26 09:20:45 -04:00
Ben Boeckel 186673ba0b cmGlobalGenerator: hint about missing extensions on Windows
Discussed on Discourse:

    https://discourse.cmake.org/t/cross-compiling-from-a-windows-host-targeting-raspbian-32-bits-arm/9250
2023-10-24 11:21:31 -04:00
Brad King fd3c95140e Merge topic 'misc-warnings'
6ed999674c Fix clang -Wdeprecated-pragma warnings by removing deprecated ATOMIC_VAR_INIT
162e017b2d Fix clang -Wstrict-prototypes by making main take void instead of nothing
b373a22991 Fix clang -Wreserved-identifier by renaming an enum

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8905
2023-10-24 08:31:55 -04:00
Felipe Torrezan 37e44707bc IAR: Add tests covering IAR toolchains
Run the tests only if enabled explicitly by an undocumented cache
entry.  We will enable it on hosts known to have the toolchains.
2023-10-23 15:59:40 -04:00
Brad King e93ad8eecd Merge topic 'ninja-better-order-depends'
ed45432571 cmNinjaTargetGenerator: do not order-depend on C++ module sources
0973cd6702 cmNinjaTargetGenerator: use the file set visibility API
4625170925 cmFileSet: add a query for includeable file set types
51f9d9f0a2 cmNinjaTargetGenerator: avoid traversing old outputs repeatedly

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8902
2023-10-23 09:39:23 -04:00
Sean McBride 162e017b2d Fix clang -Wstrict-prototypes by making main take void instead of nothing 2023-10-20 12:20:13 -04:00
Ben Boeckel ed45432571 cmNinjaTargetGenerator: do not order-depend on C++ module sources
C++ module sources should not be included by any other TUs, so their
presence cannot matter for order-only dependencies of the entire target.
Exclude them.

Update CMP0154 to take this into consideration and add tests to the
`CXXModules` suite (which already deals with module support detection).
2023-10-20 07:18:33 -04:00
Cristian Le b37b912e8f CMAKE_PROJECT_INCLUDE: Allow to run module files
Signed-off-by: Cristian Le <cristian.le@mpsd.mpg.de>
2023-10-18 18:01:05 +02:00
Brad King a3fbc255ff Merge topic 'project-include-multiple'
704acca96b CMAKE_PROJECT_INCLUDE: Add support for including multiple files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8884
2023-10-18 10:08:49 -04:00
Brad King aff7870172 Merge topic 'cxxmodules-vs-no-synthetic-targets'
17fd7fe2ae Tests/CXXModules: test Visual Studio synthetic target error
badb6ab120 VS: Explicitly disallow C++ modules provided by imported targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8895
2023-10-18 09:51:53 -04:00
Brad King dc7bed55e6 Merge topic 'cxxmodules-vs-no-synthetic-targets' into release-3.28
17fd7fe2ae Tests/CXXModules: test Visual Studio synthetic target error
badb6ab120 VS: Explicitly disallow C++ modules provided by imported targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8895
2023-10-18 09:51:52 -04:00
Cristian Le 704acca96b CMAKE_PROJECT_INCLUDE: Add support for including multiple files
Fixes: #25341
Signed-off-by: Cristian Le <cristian.le@mpsd.mpg.de>
2023-10-18 13:39:55 +02:00
Ben Boeckel 17fd7fe2ae Tests/CXXModules: test Visual Studio synthetic target error 2023-10-17 14:47:18 -04:00
Brad King dd78592ba1 Merge topic 'try_compile-alias-targets'
8f9f371668 try_compile: Add support for using ALIAS targets
9f8aa94192 Add missing `OUTPUT` in ExportImport test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8877
2023-10-17 10:22:54 -04:00
Brad King c672e51bd3 Merge topic 'try_compile-linker-language'
0f37000304 try_{compile,run}: add LINKER_LANGUAGE option
dc0dbffb0f Tests: Remove redundant policy setting from RunCMake.try_{compile,run} cases

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8871
2023-10-17 10:18:56 -04:00
Brad King 46dc523d7e Merge topic 'cxxmodules-export-fileset-info'
0f36156740 cxxmodules: include `INCLUDES DESTINATION` directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8886
2023-10-17 09:50:07 -04:00
Brad King 84ac583bc6 Merge topic 'cxxmodules-export-fileset-info' into release-3.28
0f36156740 cxxmodules: include `INCLUDES DESTINATION` directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8886
2023-10-17 09:50:06 -04:00
Brad King 5c1daf8e24 Merge topic 'execute_process-output_file-directory'
35f031e3b2 execute_process(): Restore opening files relative to WORKING_DIRECTORY

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8883
2023-10-17 09:41:39 -04:00
Brad King ec916350db Merge topic 'execute_process-output_file-directory' into release-3.28
35f031e3b2 execute_process(): Restore opening files relative to WORKING_DIRECTORY

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8883
2023-10-17 09:41:38 -04:00
Brad King d0de24f0c9 Merge topic 'Tests-NinjaPrivateDeps-error-message'
fe8a5a6fbf Tests/NinjaPrivateDeps: fix error message for Build-PrivateFileSet-check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8882
2023-10-17 09:38:49 -04:00
Cristian Le 8f9f371668 try_compile: Add support for using ALIAS targets
Fixes: #25337
Signed-off-by: Cristian Le <cristian.le@mpsd.mpg.de>
2023-10-16 20:22:23 +02:00
Ben Boeckel 0f36156740 cxxmodules: include INCLUDES DESTINATION directories
These paths are added outside the normal property management mechanisms.
Shuttle the value to the C++ module export as needed.

Fixes: #25289
2023-10-16 13:57:54 -04:00
Cristian Le 9f8aa94192 Add missing OUTPUT in ExportImport test 2023-10-16 18:26:04 +02:00
Kyle Edwards 35f031e3b2 execute_process(): Restore opening files relative to WORKING_DIRECTORY
Prior to 5420639a, execute_process() would open INPUT_FILE, OUTPUT_FILE,
and ERROR_FILE relative to the WORKING_DIRECTORY argument if it was
provided. Restore this behavior for backwards compatibility.

Fixes: #25338
2023-10-16 12:23:41 -04:00
Ben Boeckel fe8a5a6fbf Tests/NinjaPrivateDeps: fix error message for Build-PrivateFileSet-check
The file *should* exist, so word the error message as such.
2023-10-16 11:38:43 -04:00
scivision 0f37000304 try_{compile,run}: add LINKER_LANGUAGE option
Fixes: #25326
2023-10-16 11:30:17 -04:00
Brad King dc0dbffb0f Tests: Remove redundant policy setting from RunCMake.try_{compile,run} cases
Since commit 1edf138506 (Tests/RunCMake: Update cmake_minimum_required
versions, 2023-02-06, v3.27.0-rc1~508^2~1) policy CMP0054 is
automatically set to NEW in these tests.
2023-10-16 11:30:17 -04:00
Brad King fceeaff949 Merge topic 'linker-user-selection'
96a953b1ed Add options to specify linker tool

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8861
2023-10-16 10:39:51 -04:00
Brad King 5dce52e417 Merge topic 'revert-autogen-exe-per-config'
c074f5c81e Autogen: Revert "AUTO*_EXECUTABLE: add support for per-config values"
06a9b25b17 Tests: Revert "NinjaMultiConfig: Update tests for the new dependency change"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8878
2023-10-16 10:35:59 -04:00
Orkun Tokdemir c074f5c81e Autogen: Revert "AUTO*_EXECUTABLE: add support for per-config values"
Changing the `timestamp` file to `timestamp_$<CONFIG>` causes some user
projects to break when using Qt versions older than 6.6.

Revert commit fddd0f0443 (Autogen: AUTO*_EXECUTABLE: add support for
per-config values, 2023-06-14, v3.28.0-rc1~96^2~1) pending further
investigation.

Issue: #20074
2023-10-13 14:16:26 -04:00
Orkun Tokdemir 06a9b25b17 Tests: Revert "NinjaMultiConfig: Update tests for the new dependency change"
Revert commit e454314daa (NinjaMultiConfig: Update tests for the new
dependency change, 2023-07-05, v3.28.0-rc1~96^2) because we are about
to revert the change for which it updated tests.
2023-10-13 14:12:05 -04:00
Marc Chevrier 96a953b1ed Add options to specify linker tool
Offer the capability, through variable `CMAKE_LINKER_TYPE`, as well as
the target property `LINKER_TYPE` to specify which linker must be used.

The implementation of this capability is specified by variables specific
to the language and linker type: `CMAKE_<LANG>_USING_LINKER_<TYPE>`.
Some definitions are provided as part of `CMake`.

For example, to select the `LLVM` linker rather than the standard one,
the type `LLD` should be specified through the variable `CMAKE_LINKER_TYPE`.
And, on `Apple`, `Linux` and some environments on `Windows`, the variable
`CMAKE_<LANG>_USING_LINKER_LLD` has value `-fuse-ld=lld`. And for `Windows`
environments  based on `MSVC`, where the linker is used directly, the tool
`lld-link.exe` will be used rather than `link.exe`.

Fixes: #19174, #24254, #24990
2023-10-13 11:52:35 +02:00
Brad King b232269c4f Merge topic 'cxxmodules-try_compile'
fd81024e80 cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compile

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !8865
2023-10-11 10:31:06 -04:00
Brad King 581a03a138 Merge topic 'cxxmodules-try_compile' into release-3.28
fd81024e80 cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compile

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !8865
2023-10-11 10:31:05 -04:00