Commit Graph

8686 Commits

Author SHA1 Message Date
Brad King ecd557cbd7 Merge topic 'check_cxx_compiler_flag_no_normal_variable' into release-3.21
018d300ca0 Check*CompilerFlag: Do not set result as a normal variable too

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6318
2021-07-08 07:49:30 -04:00
Robert Maynard 018d300ca0 Check*CompilerFlag: Do not set result as a normal variable too
This was previously fixed by commit d46590910c (Check*CompilerFlag: Do
not set result as a normal variable too, 2020-09-21, v3.18.3~1^2^2), but
was regressed by refactoring in commit 90dead024c (CheckCompilerFlag:
unified way to check compiler flags per language, 2020-09-25,
v3.19.0-rc1~88^2) due to the changes being developed concurrently.
Fix it again, and add a test case.

Fixes: #21207
2021-07-08 07:44:03 -04:00
Kyle Edwards d9a3c9fad5 CMakePresets.json: Make --list-presets show presets with no generator
Fixes: #22389
2021-07-06 14:36:27 -04:00
Brad King 3ede66e17a Tests: Fix newline matching in several RunCMake.* cases
The RunCMake infrastructure's `*-stdout.txt` expected output files
interpret `\n` as a `\` and `n` rather than a newline.  Use a literal
newline instead.  Otherwise the cases that were trying to match any
configuration name via `[^\n]*` would fail on `RelWithDebInfo` because
it contains the letter `n`.
2021-07-02 08:19:34 -04:00
Brad King 825ad2fb4c Merge topic 'CMP0126-WARNING' into release-3.21
16208ac113 CMP0126: Add control for warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6282
2021-06-30 07:32:56 -04:00
Brad King e28c2ee9ae Merge topic 'rpm-suggests' into release-3.21
9b53eca317 CPack/RPM: Fix weak dep support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6274
2021-06-30 07:29:29 -04:00
Brad King e27a76f131 target_link_libraries: Restore transitive out-of-dir linking
Refactoring in commit 7f506b95a7 (cmGeneratorTarget: Refactor link item
lookup, 2021-05-26, v3.21.0-rc1~103^2~4) accidentally dropped the
persistent lookup scope tracking across multiple items that was added by
commit f0e67da061 (target_link_libraries: Fix out-of-dir linking of a
list of targets, 2020-01-14, v3.17.0-rc1~149^2).  This broke a
transitive out-of-dir linking case not covered by our test suite.
Restore the scope tracking and add a test case.

Fixes: #22363
2021-06-29 16:52:12 -04:00
Alex Sweet 9b53eca317 CPack/RPM: Fix weak dep support
RPM 4.11.3 for el7 contains backported support for the RPM weak dep tags.
It only supports querying those tags, but rpmbuild can not make use of them.
Since CPack relies on rpmbuild --querytags to check for support, this
commit switches to rpm --suggests to check for support of weak
dependencies.

Fixes: #22350
2021-06-29 11:14:54 -04:00
Marc Chevrier 16208ac113 CMP0126: Add control for warnings
Fixes: #22353
2021-06-29 13:36:28 +02:00
NAKAMURA Takumi 63177678d0 Tests/RunCMake/Ninja.*: Sanitize NINJA_STATUS since we expect default behavior
FYI, NINJA_STATUS is "[%f/%t] " by default.
2021-06-28 10:38:05 -04:00
Brad King 117b1545a9 Merge topic 'vs2022' into release-3.21
93c718791e VS: Use 64-bit MSBuild in VS 2022
c46b265839 VS: Add Visual Studio 17 2022 generator
b610b7a35c VS: Update v142 CL flag table for VS 17.0 Preview 1
43375c6418 Help: Remove unnecessary Sphinx versionadded markup in VS toolset selection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6268
2021-06-28 09:22:38 -04:00
Brad King c46b265839 VS: Add Visual Studio 17 2022 generator
Fixes: #22339
2021-06-25 12:45:44 -04:00
Brad King a95cbf3890 Tests: Shorten RunCMake.GenEx-* case names
Reduce the length of the longest path on disk needed by the tests.
2021-06-25 11:29:46 -04:00
Brad King 782b6bfc26 Merge topic 'test-xcode-13' into release-3.21
1dd0eae4fc Tests: Fix xcode version detection for Xcode 13 on ARM

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6248
2021-06-21 10:01:25 -04:00
Brad King 1dd0eae4fc Tests: Fix xcode version detection for Xcode 13 on ARM
Running `xcode -version` on an ARM box prints content to stderr:

    objc[...]: Class ... is implemented in both...
    One of the two will be used. Which one is undefined.

Capture and parse only stdout.  Otherwise we might configure test
behavior for the wrong version of Xcode.
2021-06-18 14:04:32 -04:00
Brad King 1aa16906e6 Merge topic 'fix-flow-control-override'
c017098d4d CMake: Allow override of unexpected non-flow-control commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6232
2021-06-17 06:47:42 -04:00
Kyle Edwards c017098d4d CMake: Allow override of unexpected non-flow-control commands
Fixes: #22310
2021-06-16 10:39:39 -04:00
Daniel Schürmann 0665d9092e CMakeDependentOption: Allow parentheses in the depends string
`if()` takes the condition as a list of arguments.
Parentheses need to be separated as well.

Fixes: #22303
2021-06-14 13:45:49 -04:00
Brad King f245a20ad0 Merge topic 'xcode13-linker-output'
a7bbbbf73b Tests: ignore Xcode DVTPlugInManager output
8dcdd4351f Tests: recognize Xcode 13 linker warning

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6216
2021-06-14 09:45:44 -04:00
Brad King f597bb396e Merge topic 'dir-IMPORTED_TARGETS'
e13704ce72 Add directory property to list imported targets
ea6d338ea1 cmState: Record imported target names in each directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6215
2021-06-11 06:11:42 -04:00
Brad King 15b1d5ab9c Merge topic 'ci-rpm'
369725faa5 gitlab-ci: add job to run CPack RPM tests
1186ed64d0 ci: add rpm-build to Fedora base image
60380bd77c Tests: Fix RunCMake.CPack_RPM.DEBUGINFO test case
5130ff6878 Tests: Fix CPackComponentsForAll-RPM-IgnoreGroup test on Fedora 34

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6214
2021-06-11 06:10:34 -04:00
Brad King 557e47f154 Merge topic 'test-CPackComponentsForAll-errors'
45935ac973 Tests: Improve CPackComponentsForAll test error formatting

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6212
2021-06-11 06:08:09 -04:00
Brad King 4217e1cf3a Merge topic 'FindBLAS-mkl-gnu'
daa0a1f877 Find{BLAS,LAPACK}: Add tests covering Intel MKL with GNU compiler
624110b90d FindBLAS: Revert "Do not statically link against iomp5 ... Intel MKL"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6213
2021-06-11 06:05:54 -04:00
Gregor Jasny a7bbbbf73b Tests: ignore Xcode DVTPlugInManager output 2021-06-10 22:50:06 +02:00
Gregor Jasny 8dcdd4351f Tests: recognize Xcode 13 linker warning
The linker shipped with Xcode 13 changed the architecture
mismatch linker warning into:

```
ld: warning: ignoring file libfoo.a, building for macOS-x86_64 but attempting to link with file built for macOS-i386
```
2021-06-10 22:24:31 +02:00
Brad King e13704ce72 Add directory property to list imported targets
Model the change after commit cbca65826c (Add directory property to list
buildsystem targets, 2016-09-19, v3.7.0-rc1~79^2~1).

Fixes: #22291
2021-06-10 15:52:12 -04:00
Brad King 60380bd77c Tests: Fix RunCMake.CPack_RPM.DEBUGINFO test case
Since commit c826745f5a (CPack/DEB: Do not crash when asked for debug
symbols when there are none, 2020-10-29, v3.20.0-rc1~461^2) the test
fails because CPackRPM warns about no sources in which to find debug
symbols.  Add expected output for this case.
2021-06-10 14:44:02 -04:00
Brad King 5130ff6878 Tests: Fix CPackComponentsForAll-RPM-IgnoreGroup test on Fedora 34
Update the cross-arch case from commit f174b919d6 (Tests: CpackRPM test
component architecture, 2015-02-19, v3.3.0-rc1~415^2~1) to use
`armv7hl`, which is supported by current RPM versions.

Fixes: #19983
2021-06-10 14:06:21 -04:00
Brad King daa0a1f877 Find{BLAS,LAPACK}: Add tests covering Intel MKL with GNU compiler 2021-06-10 13:00:45 -04:00
Brad King 45935ac973 Tests: Improve CPackComponentsForAll test error formatting
Format message content for `message(FATAL_ERROR)`.
2021-06-10 10:53:02 -04:00
Brad King 5fd68d3ef7 Merge topic 'vs-custom-depfile'
526e2ef71c VS: Add support for add_custom_command DEPFILE
794ad78abb Help: Generalize release note filename for add_custom_command DEPFILE
7291f31254 cmTransformDepfile: Add support for MSBuild AdditionalInputs format
a6de8ec51b cmTransformDepfile: Make directory for transformed depfile automatically

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6206
2021-06-10 08:23:45 -04:00
Brad King cf85c6bf85 Merge topic 'ctest_custom_details'
02f1271bdf ctest: allow test output to override the 'details' field

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6204
2021-06-10 08:20:18 -04:00
Brad King 526e2ef71c VS: Add support for add_custom_command DEPFILE
Transform the depfile into MSBuild `AdditionalInputs` content.  Add
MSBuild Targets to update `AdditionalInputs` and the `.tlog` files for
future builds without actually modifying the `.vcxproj` file.

Fixes: #20286
2021-06-09 10:09:58 -04:00
Zack Galbreath 02f1271bdf ctest: allow test output to override the 'details' field
Parse test output for <CTestDetails>...</CTestDetails>.
If found, use this value to override the default 'Details' string reported
to CDash.
2021-06-09 08:31:32 -04:00
Brad King d4056f24a1 Tests: Improve RunCMake.CPack*.SOURCE_PACKAGE test error formatting
Format message content for `message(FATAL_ERROR)`.

Apply the change from commit c54c284de7 (Tests: Improve RunCMake.CPack*
test error formatting, 2021-04-22) to the `SOURCE_PACKAGE` script too.
Also fix a typo from commit f5d79dec53 (Tests: Cleanup CPack message when
files are expected and none are found, 2021-01-15, v3.20.0-rc1~89^2~22).
2021-06-09 08:15:30 -04:00
Brad King 5c18c8a178 Merge topic 'ctest_measurement_file'
cbcb92d1cb ctest: add support for attaching files to tests at run time

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6192
2021-06-09 08:04:23 -04:00
Brad King e3c420a74f Merge topic 'presets-build-fixes' into release-3.20
534c40e6d8 presets: Fix buildPreset "targets" not allowing a single string
5d67632813 presets: Fix buildPreset "jobs"
93e396b402 presets: Fix buildPreset "jobs" field test case

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !6190
2021-06-09 07:57:34 -04:00
Brad King 072f8b7d0e Merge topic 'presets-build-fixes'
de2b14a711 Merge branch 'backport-3.20-presets-build-fixes' into presets-build-fixes
534c40e6d8 presets: Fix buildPreset "targets" not allowing a single string
5d67632813 presets: Fix buildPreset "jobs"
93e396b402 presets: Fix buildPreset "jobs" field test case
efe7ac9022 presets: Fix buildPreset "targets" not allowing a single string

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !6190
2021-06-09 07:57:34 -04:00
Brad King 7aad9e8685 Merge topic 'add_hip_language'
8514ee9b31 HIP: analyze output of `hipcc` to determine default GPU architecture
20d086f1a2 HIP: All HIP tests now run on CMake's current AMD hardware
2e86e50c2f HIP: Add HIP to all the Check* modules
947dbed0aa HIP: Automatically inject the `hip::device` runtime target
b50bfc8913 HIP: Add language to CMake
ff0d2858e1 HIP: Extract clang compiler details from hipcc
bd844387df ROCMClang: Add the ROCm toolkit derived clang compiler to CMake
590553f322 Compilers: protect use of  __has_include
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Zack Galbreath <zack.galbreath@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Acked-by: Axel Huebl <axel.huebl@plasma.ninja>
Merge-request: !6121
2021-06-09 07:53:32 -04:00
Brad King 143f7fe61a Tests: Remove unused RunCMake.TransformDepfile files
Remove files missed by commit f0e9d74a2d (cmake_transform_depfile:
Remove unused incomplete vstlog support, 2021-06-02).
2021-06-08 13:10:02 -04:00
Zack Galbreath cbcb92d1cb ctest: add support for attaching files to tests at run time
Allow tests to specify files to upload at runtime. Previously this was
only possible to specify at configure time with the ATTACHED_FILES
test properties.

This commit also fixes a bug in how our test data tarballs were generated
by CTest. Previously, if you tried to attach a file outside of the binary
directory, CTest would generate a tar file with a relative path, and tar
would not allow you to extract it. We resolve this problem by creating
tar files with a flat directory structure instead.

Fixes: #22284
2021-06-08 09:27:19 -04:00
Brad King acb25d50d9 Merge topic 'install-with-runtime-dependencies'
8d898cb3e1 FileAPI: Add integration for runtime dependency installers
72f2448e82 Help: Add documentation for runtime dependency installation
0c3c6acaff Tests: Add tests for new options
4910132d8c install: Add RUNTIME_DEPENDENCY_SET mode
bc8a4a06a4 install(IMPORTED_RUNTIME_ARTIFACTS): Add RUNTIME_DEPENDENCY_SET option
3e7d3c252a install(TARGETS): Add RUNTIME_DEPENDENCY_SET argument
ed3633d88c install(TARGETS): Add RUNTIME_DEPENDENCIES option
f2617cf8e6 Source: Add cmInstallRuntimeDependencySet
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6186
2021-06-08 08:09:04 -04:00
Brad King d1517a4ef9 Merge topic 'compile-options-order'
8f68bcad8f Tests: Add cases verifying flag ordering rules
ccc83ce162 Help: Document order of flags from CMAKE_<LANG>_FLAGS and COMPILE_OPTIONS
df79fe055b Help: Remove incorrect "versionadded" for CMAKE_<LANG>_FLAGS_<CONFIG>
c48d2d8480 VS: Place per-source preprocessor definitions after target-wide ones

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6187
2021-06-08 08:04:16 -04:00
Sam Freed de2b14a711 Merge branch 'backport-3.20-presets-build-fixes' into presets-build-fixes 2021-06-08 07:49:50 -04:00
Sam Freed 534c40e6d8 presets: Fix buildPreset "targets" not allowing a single string
Fixes: #22272
2021-06-08 07:47:54 -04:00
Brad King 93e396b402 presets: Fix buildPreset "jobs" field test case
Avoid passing parallel build options to Make tools that do not support
them.
2021-06-08 07:47:20 -04:00
Zack Galbreath 8514ee9b31 HIP: analyze output of hipcc to determine default GPU architecture 2021-06-07 19:25:34 +00:00
Robert Maynard 20d086f1a2 HIP: All HIP tests now run on CMake's current AMD hardware 2021-06-07 19:25:33 +00:00
Robert Maynard 2e86e50c2f HIP: Add HIP to all the Check* modules 2021-06-07 19:25:33 +00:00
Robert Maynard 947dbed0aa HIP: Automatically inject the hip::device runtime target
Any target that might need to link to hip code needs the `hip::device`
target
2021-06-07 19:25:33 +00:00