Commit Graph

34664 Commits

Author SHA1 Message Date
Brad King
37c80628ba Merge topic 'ctest-timeout-flag'
d267c128a2 ctest: Restore support for --timeout values higher than default test timeout
dd779a4bc2 Tests: Clarify RunCMake.CTestTimeout case name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8851
2023-10-02 08:57:36 -04:00
Kitware Robot
393d94094e CMake Nightly Date Stamp 2023-10-02 00:02:02 -04:00
Kitware Robot
6b645297b9 CMake Nightly Date Stamp 2023-10-01 00:01:11 -04:00
Kitware Robot
f822df37fd CMake Nightly Date Stamp 2023-09-30 00:01:11 -04:00
Brad King
b3205afcde Merge topic 'help-arbitrary'
4e50320978 Help: Allow help for arbitrary keywords

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8674
2023-09-29 09:36:24 -04:00
Brad King
d267c128a2 ctest: Restore support for --timeout values higher than default test timeout
Since refactoring in commit 0a5aeaf302 (cmCTestRunTest: Consolidate test
timeout selection logic, 2023-05-04, v3.27.0-rc1~120^2) we accidentally
truncate `--timeout` values to ctest's default `TimeOut`.  Fix the
logic to prefer the flag whenever the `TIMEOUT` property is not set.

In combination with the prior refactoring, this also fixes a bug that
caused `--timeout` values of 10000000 seconds or more to be ignored.

Fixes: #23979
2023-09-29 09:25:01 -04:00
Kitware Robot
e74c885aaa CMake Nightly Date Stamp 2023-09-29 00:01:21 -04:00
Kitware Robot
3ab5f3ccf1 CMake Nightly Date Stamp 2023-09-28 00:01:18 -04:00
Martin Duffy
4e50320978 Help: Allow help for arbitrary keywords
Changes `cmake --help [arg]` to search `Help/*/` instead of `Help/command/`
Allows editors to easily display manual for `<cword>`
2023-09-27 18:01:12 -04:00
Brad King
6bb05172ac Merge topic 'cxxmodules-export-dirs-with-prefix'
42654cc818 Tests/CXXModules: add tests for modules with include requirements
7217cb78cf Tests/CXXModules: relax line number matching in stderr
b3d1bbbbcc cmExportFileGenerator: relocate include directories for C++ modules
349ff8b080 cmGeneratorTarget: remove not-INTERFACE assertion
681a763425 cmGeneratorTarget: use a character literal

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8838
2023-09-27 11:25:22 -04:00
Brad King
2a12a83037 Merge topic 'misc-cxxmodule-fixes'
3b632f32fa Tests/CXXModules: forward the default build type
5ab6b09691 Tests/CXXModules: fix multi-config and MSVC details
11b62ef118 Tests/CXXModules: add missing `bmi-only` and compiler id fields
5d9631fbdd Tests/CXXModules: fix key set mismatch error messages
86e7fb72cb Tests/CXXModules: use a less generic name for the config
6b940dc590 Tests/CXXModules: replace the object extension as well
1c9f83c8ec Tests/CXXModules: fix error detection propagation
7a4c02cb38 cmGlobalGenerator: factor out messaging for CMP0037
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com>
Merge-request: !8834
2023-09-27 11:22:05 -04:00
Brad King
81d863b60a Merge topic 'autogen-timestamp-per-config'
bac468ddfd AutoGen: Fix regression in timestamps on multi-config generators
c3f0825d3c Tests/RunCMake/Autogen: Factor out test setup
9654835b4f Tests/RunCMake/Autogen: Add expect_n_times() function

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8840
2023-09-27 11:21:07 -04:00
Kitware Robot
a314fbe4b2 CMake Nightly Date Stamp 2023-09-27 00:01:18 -04:00
Ben Boeckel
b3d1bbbbcc cmExportFileGenerator: relocate include directories for C++ modules
Include directories are paths that need munged on install to support the
installation prefix.

Fixes: #25275
2023-09-26 14:32:46 -04:00
Ben Boeckel
349ff8b080 cmGeneratorTarget: remove not-INTERFACE assertion
IMPORTED INTERFACE targets which provide C++ modules may have include
directories that need checked for whether they are system directories or
not. These directories are intended for the module compilation
themselves (which may include headers that module consumers do not need).
2023-09-26 14:31:42 -04:00
Orkun Tokdemir
bac468ddfd AutoGen: Fix regression in timestamps on multi-config generators
Since commit fddd0f0443 (Autogen: AUTO*_EXECUTABLE: add support for
per-config values, 2023-06-14) we do not correctly generate outputs
for one configuration after another configuration has been built.
Fix this:

- Revert some config based stuff for `Xcode` due to the `$<CONFIG>`
  genex usage limitation in source files with `Xcode`.
- For multi-config generators use a per-config `timestamp_$<CONFIG>`
  file instead of one `timestamp` file.

Fixes: #25261
2023-09-26 11:54:26 -04:00
Brad King
5a79ea2799 Merge topic 'cuda_handle_target_objects_in_device_link'
cd984261e1 CUDA: Device linking now uses TARGET_OBJECTS content
aa8facefe8 CUDA: Visual Studio propagate objects to device linking

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8829
2023-09-26 09:42:42 -04:00
Brad King
5d32320bf3 Merge topic 'hip-nvidia'
fd982eec10 HIP: Add tests for special NVIDIA values of CMAKE_HIP_ARCHITECTURES
8c8b3f1bfa HIP: Fix support for -DCMAKE_HIP_ARCHITECTURES=native with NVCC
b3e92775ab HIP: Add CMAKE_HIP_HOST_COMPILER when compiler is NVCC
e43918b4ca HIP: Fix linking mixed-lang binary with CXX compiler and Makefile generators
4794505122 HIP: Do not require hip-lang package for NVIDIA platform
09d759dc7f HIP: Simplify exclusion of AMD device runtime with NVIDIA GPUs
2a60663670 HIP: Simplify CMAKE_GENERATOR references for determining compiler
8124950f6c CUDA: Generalize CMAKE_{CUDA => <LANG>}_HOST_COMPILER variable docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8836
2023-09-26 09:40:25 -04:00
Brad King
b8151299de Merge topic 'genexp-no-eval'
634079b86d cmGeneratorExpressionEvaluator: Short-circuit boolean operators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com>
Merge-request: !8791
2023-09-26 09:31:42 -04:00
Brad King
7831781155 Merge topic 'lint-genex-empty'
80df7b1745 Linting: Fix empty evaluated genex

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8833
2023-09-26 09:30:10 -04:00
Ben Boeckel
681a763425 cmGeneratorTarget: use a character literal 2023-09-26 08:52:48 -04:00
Kitware Robot
3330869964 CMake Nightly Date Stamp 2023-09-26 00:01:11 -04:00
Ben Boeckel
7a4c02cb38 cmGlobalGenerator: factor out messaging for CMP0037
Also make some strings into character literals.
2023-09-25 17:39:35 -04:00
Ben Boeckel
34b393f97f cmGlobalGenerator: use static string views for reserved targets
Also make the array static.
2023-09-25 17:39:35 -04:00
Ben Boeckel
0cf0a8e632 cmGeneratorTarget: use GetSupportDirectory in PCH codepaths
Instead of recalculating the support directory path, use the intended
method.
2023-09-25 17:39:34 -04:00
Brad King
e43918b4ca HIP: Fix linking mixed-lang binary with CXX compiler and Makefile generators
Following commit 6377a43814 (CUDA: Support response files with nvcc,
2022-06-01, v3.25.0-rc1~636^2), while determining the compiler ABI, do
not use response files, so that we can extract implicit link flags.

Fixes: #25272
2023-09-25 16:06:36 -04:00
Orkun Tokdemir
80df7b1745 Linting: Fix empty evaluated genex
Update logic added by commit 099934e313 (Add generator expression
support to static code analysis hooks, 2023-03-24, v3.27.0-rc1~261^2),
and preserved by commit 993dde925f (TargetGenerator: Factor out
generation of code check rules, 2023-05-12, v3.27.0-rc1~84^2~2), to
handle a generator expression that evaluates to the empty string.

If `<LANG>_CPPCHECK`, `<LANG>_CPPLINT`, `<LANG>_CLANG_TIDY`, or
`<LANG>_INCLUDE_WHAT_YOU_USE` are empty after evaluating generator
expressions, do not run their lints.

Fixes: #25265
2023-09-25 09:16:33 -04:00
Robert Maynard
cd984261e1 CUDA: Device linking now uses TARGET_OBJECTS content
Due to an oversight in cmLinkLineDeviceComputer object
files did not get propagate to the device linking phase
when given via the `$<TARGET_OBJECTS>` generator expression.
2023-09-25 08:50:38 -04:00
Kitware Robot
1db7ca915f CMake Nightly Date Stamp 2023-09-25 00:01:47 -04:00
Kitware Robot
8847fceac6 CMake Nightly Date Stamp 2023-09-24 00:01:12 -04:00
Kitware Robot
b26892e8a2 CMake Nightly Date Stamp 2023-09-23 00:01:12 -04:00
Robert Maynard
aa8facefe8 CUDA: Visual Studio propagate objects to device linking
When given objects via `target_link_libraries(consumer PRIVATE producer)` the VisualStudio solution adds the objects
under as `<Object>` entries in the solution.

This works for host side linking but isn't handled by
the cuda msbuild extensions. So to work around this we
manually add the objects as additional link items.
2023-09-22 11:54:12 -04:00
Brad King
122ec98dcf Merge topic 'hip-nvidia'
6546aa2a2a ci: Add HIP job using CUDA on NVIDIA GPUs
18158bf81c HIP: Add support for NVIDIA GPUs
127b6fa06b HIP: Add CMAKE_HIP_PLATFORM variable to specify GPU platform
90e23f40ee Tests/HIP/WithDefs: Clean up test case
9ebdf3281f Tests/HIP/ArchitectureOff: Cover HIP_ARCHITECTURES initialization
cfec29196e ci: Add CUDA 11.8 to HIP 5.5 image
26470eb987 ci: Put HIP GPU platform in CMake_TEST_HIP

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8817
2023-09-22 09:19:52 -04:00
Brad King
d2655c59dc Merge topic 'cuda-factor-out-lang'
b32ea7cff0 CUDA: Factor out helper to generate CUDA architecture flags
b3a1f17567 CUDA: Factor out helper to validate CMAKE_CUDA_ARCHITECTURES
8617c28221 CUDA: Factor out helper for detecting native CUDA architectures
0db0fe7958 CUDA: Factor out helper to compute all CUDA architectures
c16f1e2b93 CUDA: Factor out helper to find CUDA Toolkit for compiler
a6841a967b CUDA: Factor out helper to filter implicit link libraries
deff0e638d CUDA: Factor out helper to parse NVCC implicit compiler and linker flags
e1b2a5062f CUDA: Factor out some NVCC compiler information
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !8816
2023-09-22 09:18:53 -04:00
Brad King
2dafd1f092 Merge topic 'macOS-system-framework-link'
3bdf95f942 macOS: GNU toolchain: ensure framework, marked as SYSTEM, can be linked

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8825
2023-09-22 09:07:11 -04:00
Kitware Robot
cc49d22e62 CMake Nightly Date Stamp 2023-09-22 00:01:16 -04:00
Brad King
18158bf81c HIP: Add support for NVIDIA GPUs
Add support for using the CUDA Toolkit's NVCC to compile HIP code.

Fixes: #25143
2023-09-21 15:34:37 -04:00
Brad King
127b6fa06b HIP: Add CMAKE_HIP_PLATFORM variable to specify GPU platform
For now, require the value to be `amd`, since that is the only
platform we currently support.
2023-09-21 15:34:37 -04:00
Brad King
b32ea7cff0 CUDA: Factor out helper to generate CUDA architecture flags
Prepare to use it for other languages.
2023-09-21 15:34:28 -04:00
Marc Chevrier
3bdf95f942 macOS: GNU toolchain: ensure framework, marked as SYSTEM, can be linked
Fixes: #25263
2023-09-21 16:29:40 +02:00
Brad King
f83790af0b Merge topic 'fileset-private-dep'
ec2ba29ac5 Ninja: Allow compilation before generation of dependencies' private sources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8420
2023-09-21 09:39:56 -04:00
Kitware Robot
4ac624debc CMake Nightly Date Stamp 2023-09-21 00:01:19 -04:00
Brad King
51b34a5483 CMake 3.27.6 2023-09-20 10:33:04 -04:00
Martin Duffy
ec2ba29ac5 Ninja: Allow compilation before generation of dependencies' private sources
This requires knowing when a generated header is public, which we can
model using file sets.  Add policy CMP0154 to treat generated sources
as private by default in targets with file sets.  Generated public
headers can be specified in public file sets.

Fixes: #24959
Issue: #15555
2023-09-20 10:25:24 -04:00
Brad King
787dde5569 Merge topic 'fortran-in-custom-targets'
d870a47e23 Tests/FortranModules: add a test for iface Fortran sources
e3d511fb9c Tests/FortranModules: also test INTERFACE targets with Fortran sources
978b68d3bb add_custom_target: Fix regression with Fortran sources
619aca80ae Tests/FortranModules: add a test case for #25223
45513c1a69 Tests/FortranModules: move issue 25112 fix from FortranOnly

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8814
2023-09-20 10:16:18 -04:00
Brad King
7b1e930b0f Merge topic 'remove-redundant-stat'
d49ea4a4d9 Source: Remove redundant FileIsDirectory checks
f5ff17fcf2 Source: Remove redundant FileIsSymlink checks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8810
2023-09-20 09:48:36 -04:00
Brad King
3a21087282 Merge topic 'cache-ldconfigpaths'
f173ca21ca cmBinUtilsLinuxELFLinker: Cache ldconfig results

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8811
2023-09-20 09:46:38 -04:00
Ben Boeckel
978b68d3bb add_custom_target: Fix regression with Fortran sources
Since commit 74b1d6caf3 (cmComputeLinkInformation: compute link info for
module-using targets, 2023-09-05, v3.27.5~7^2) we accidentally try to
compute link information for custom targets if they have Fortran
sources.  For module dependencies, we only need to consider target types
that can compile.

Fixes: #25252
2023-09-20 09:14:58 -04:00
Kitware Robot
de7c036304 CMake Nightly Date Stamp 2023-09-20 00:01:12 -04:00
Brad King
711de9aef6 cmGeneratorTarget: Clarify local variable names for device architectures 2023-09-19 11:31:23 -04:00