Commit Graph

7072 Commits

Author SHA1 Message Date
Frank Winklmeier
c829f0cfca trace: Add time and stack level to JSON output format
Add the timestamp and stack depth of the function call to the JSON trace
output format. This information can be useful for cmake profiling and
call stack inspection (see e.g. https://github.com/volo-zyko/cmake-profile-stats).

Improve unit test to allow for varying set of keys to check in trace lines.
2020-01-22 09:58:52 -05:00
Brad King
a7fca06c46 Merge topic 'out-of-dir-link-list'
f0e67da061 target_link_libraries: Fix out-of-dir linking of a list of targets
acee629103 cmTargetLinkLibrariesCommand: Move HandleLibrary to helper struct
ba675f1ecc Tests: Enable CMP0022 in ExportImport out-of-dir linking case

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4226
2020-01-17 09:41:10 -05:00
Brad King
cd6f6b2a9f Merge topic 'cmake-ctest-arguments'
4153d8445b Add CMAKE_CTEST_ARGUMENTS variable to pass command-line arguments to ctest

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4168
2020-01-17 09:40:23 -05:00
Brad King
796d66438b Merge topic 'rename-cross-config-variable'
310b58e961 Ninja Multi-Config: Rename variable to be more consistent

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4234
2020-01-17 09:39:32 -05:00
Craig Scott
808888aa47 Merge topic 'cpack-custom-dmg-names'
6d6f4b9316 CPack/DragNDrop: Support CPACK_DMG_<component>_FILE_NAME
b53230fbee Tests: Add DragNDrop as a testable CPack generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4227
2020-01-17 08:33:01 -05:00
Brad King
f0e67da061 target_link_libraries: Fix out-of-dir linking of a list of targets
In a case like

    target_link_libraries(targetInOtherDir PUBLIC "$<1:a;b>")

then all entries in the list need to be looked up in the caller's
scope.  Previously our `::@(directory-id)` suffix would apply only
to the last entry.  Instead surround the entire entry by a pair
`::@(directory-id);...;::@` so that the `::@` syntax can encode
a directory lookup scope change evaluated as the list is processed.

Fixes: #20204
2020-01-16 13:24:27 -05:00
Andrew Fuller
6d6f4b9316 CPack/DragNDrop: Support CPACK_DMG_<component>_FILE_NAME 2020-01-16 08:04:35 -08:00
Andrew Fuller
b53230fbee Tests: Add DragNDrop as a testable CPack generator 2020-01-16 08:04:35 -08:00
Brad King
2a850232fc Merge topic 'cpack-nsis-test'
b796749ba8 Tests: Fix CPackNSISGenerator test on non-x86 Windows platforms

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !4230
2020-01-16 10:40:56 -05:00
Kyle Edwards
310b58e961 Ninja Multi-Config: Rename variable to be more consistent
Also make some tweaks to the documentation.
2020-01-16 10:34:43 -05:00
Brad King
c0ac53b90c Merge topic 'file_download_filename'
c0da651c09 file(DOWNLOAD): Don't fail if given just a filename to write to
b56d429324 Tests: Fix CMake.FileDownload test failures not reported
3bc73803b4 Tests: Fix CMake.FileDownload test in presence of proxy
1352585301 Tests: Extend CMake.FileDownload test internal timeouts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4159
2020-01-16 10:26:04 -05:00
Robert Goulet
4153d8445b Add CMAKE_CTEST_ARGUMENTS variable to pass command-line arguments to ctest
Fixes: #20172
2020-01-15 15:02:56 -05:00
Brad King
b796749ba8 Tests: Fix CPackNSISGenerator test on non-x86 Windows platforms
In commit ebfffc609e (CPack/NSIS: Add option for setting
MUI_HEADERIMAGE_BITMAP, 2020-01-02) this test was added but only globbed
for 32-bit windows packages.  Fix the test to glob for packages of any
architecture.
2020-01-15 14:33:37 -05:00
Brad King
9f1ce93d92 Merge topic 'add_cuda_toolkit_tests'
6e474364d1 CUDAToolkit: No targets now depend on the CUDA runtime
907bb7df57 CUDAToolkit: Gracefully handle missing SDK components
e500eb80cd CUDAToolkit: add_cuda_link_dependency correctly sets dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4183
2020-01-15 13:40:07 -05:00
Brad King
6e6f5afd03 Merge topic 'unity-lang-filename'
274a6f3699 Unity Build: include language in generated source file name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4223
2020-01-15 13:37:33 -05:00
Brad King
2272d256fb Merge topic 'ctest-timeout-on-pipe'
d1976cd1f2 CTest: Fix timeout when grandchild keeps pipes open
2f5eb1800b Tests: Add RunCMake.CTestTimeout test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4217
2020-01-15 13:35:51 -05:00
Johnny Jazeix
c0da651c09 file(DOWNLOAD): Don't fail if given just a filename to write to
Fixes: #17969
2020-01-15 10:03:35 -05:00
Craig Scott
b56d429324 Tests: Fix CMake.FileDownload test failures not reported
Because the PASS_REGULAR_EXPRESSION test property is set,
the exit code of the test is ignored, so we can't just rely on using
message(SEND_ERROR) or the command itself failing. We have to
add an explicit error message for all unexpected status codes
and check for such messages with a FAIL_REGULAR_EXPRESSION.
2020-01-15 10:03:35 -05:00
Brad King
3bc73803b4 Tests: Fix CMake.FileDownload test in presence of proxy
We do not actually need to contact any real http servers.
The one attempt we make is to an intentionally bad domain name.
Unset any proxy configuration that may change behavior.
2020-01-15 10:03:34 -05:00
Brad King
1352585301 Tests: Extend CMake.FileDownload test internal timeouts
On a busy machine running many tests in parallel the `file(DOWNLOAD)`
step can take longer than 2 seconds even to simply copy a file.
Raise the timeout to 4 seconds to reduce spurious failures.
2020-01-15 10:03:19 -05:00
Brad King
ba675f1ecc Tests: Enable CMP0022 in ExportImport out-of-dir linking case
Since out-of-dir linking is enabled by CMP0079, which is newer than
CMP0022, it is likely that both will be set in practice when out-of-dir
linking is used.
2020-01-14 15:27:07 -05:00
Kyle Edwards
93526fd913 Merge topic 'ninja_multi_config_support_cuda'
c7ac13e8ed CUDA: Mult-Config Ninja generator now supports CUDA

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4187
2020-01-14 15:11:35 -05:00
Robert Maynard
6e474364d1 CUDAToolkit: No targets now depend on the CUDA runtime
It is not a requirement to have shared|static consistent across your
CUDA libraries (e.g curand, nppc ) and your CUDA runtime library.
It is entirely allowable to use a static nppc and a shared runtime.
2020-01-14 13:50:37 -05:00
Cristian Adam
274a6f3699 Unity Build: include language in generated source file name
Fixes: #20206
2020-01-14 18:48:08 +01:00
Brad King
d1976cd1f2 CTest: Fix timeout when grandchild keeps pipes open
When a test's process creates its own child and exits, the grandchild
may keep pipes open.  Fix CTest logic to correctly timeout if the
grandchild does not exit and close the pipes before the timeout expires.
This was broken by commit b5e21d7d2e (CTest: Re-implement test process
handling using libuv, 2017-12-10, v3.11.0-rc1~117^2) which added an
unnecessary condition to the timeout handling.

Fixes: #20116
2020-01-14 10:29:05 -05:00
Brad King
2f5eb1800b Tests: Add RunCMake.CTestTimeout test
This test will consolidate CTest timeout-related tests.
2020-01-14 10:28:51 -05:00
Brad King
710371ca2f Merge topic 'tutorial'
a7d25358a0 Tutorial: Add the PRIVATE keyword to target_link_libraries command
cf2afb1065 Tutorial: Remove 'Consumer' example
77b515f3eb Tutorial: Improve "MultiPackage" example
3a510a47b0 Tutorial: Add links to relevant CMake documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4113
2020-01-14 09:06:40 -05:00
Robert Maynard
c7ac13e8ed CUDA: Mult-Config Ninja generator now supports CUDA 2020-01-13 12:50:37 -05:00
Kyle Edwards
ca9100c5ce Ninja Multi-Config: Improve error handling when not doing cross-config build 2020-01-13 11:58:07 -05:00
Brad King
4bac5b628e Merge topic 'target_compile_options-BEFORE-keyword'
2678e31053 target_compile_options: ensure BEFORE keyword is handled in all scopes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4203
2020-01-13 10:38:00 -05:00
Brad King
041e58d195 Merge topic 'ninja-cross-build-disable'
e8032e202e Ninja Multi-Config: Make cross-config building opt-in

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4205
2020-01-13 10:34:18 -05:00
Brad King
9a5d399725 Merge topic 'out-of-dir-link-keyword'
09721ca078 target_link_libraries: Fix out-of-dir calls with debug/optimized keywords
c40229968c target_link_libraries: Add FIXME comment for out-of-dir genex list

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4202
2020-01-13 10:29:10 -05:00
Brad King
e61c2ed9ac Merge topic 'fix-cpack-deb-description-file'
d491f34a5e CPack: Fix regression in DEB generator description

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4204
2020-01-13 10:23:26 -05:00
Marc Chevrier
2678e31053 target_compile_options: ensure BEFORE keyword is handled in all scopes
Fixes: #20200
2020-01-11 01:25:25 +01:00
Kyle Edwards
d491f34a5e CPack: Fix regression in DEB generator description
Fixes: #20102
2020-01-10 17:22:52 -05:00
Kyle Edwards
e8032e202e Ninja Multi-Config: Make cross-config building opt-in
Many users will want to use the Ninja Multi-Config generator like a
traditional Visual Studio-style multi-config generator, which doesn't
mix configurations - custom commands are built using target executables
of the same configuration the command is for. We do not want to force
these people to generate an N*N build matrix when they only need N*1,
especially if they have lots of targets. Add a new variable,
CMAKE_NINJA_CROSS_CONFIG_ENABLE, to opt-in to the cross-config build
matrix.
2020-01-10 16:31:29 -05:00
Kyle Edwards
78f9c9dd0e Merge topic 'nsis-headerimage'
ebfffc609e CPack/NSIS: Add option for setting MUI_HEADERIMAGE_BITMAP

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4157
2020-01-10 13:48:47 -05:00
Brad King
9fa8b7d5dd Merge topic 'cuda-device-link-only-cuda' into release-3.16
7ffa42288e Merge branch 'backport-3.15-cuda-device-link-only-cuda'
071c4f1a2a CUDA: Do not device link if target has no CUDA usage

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4191
2020-01-10 13:21:12 -05:00
Brad King
4a010ee52b Merge topic 'cuda-device-link-only-cuda'
01c90d76a1 Merge branch 'backport-3.16-cuda-device-link-only-cuda'
7ffa42288e Merge branch 'backport-3.15-cuda-device-link-only-cuda'
071c4f1a2a CUDA: Do not device link if target has no CUDA usage

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4191
2020-01-10 13:21:12 -05:00
Brad King
eb672da7d4 Merge topic 'objc-compiler-launcher'
f6ef6e5a73 Merge branch 'backport-3.16-objc-compiler-launcher'
1a9f6bad98 ObjC: Add _COMPILE_LAUNCHER support
a05b9d4239 ObjC: Add _COMPILE_LAUNCHER support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4189
2020-01-10 13:18:35 -05:00
Brad King
18e97c00f4 Merge topic 'reduce_verbosity_find_package_debug_mode'
6c92df382f find_package: Improve debug logging output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4175
2020-01-10 13:16:30 -05:00
Brad King
09721ca078 target_link_libraries: Fix out-of-dir calls with debug/optimized keywords
In commit a1ad0a699b (target_link_libraries: Allow use with targets in
other directories, 2018-09-07, v3.13.0-rc1~94^2) we added use of `<...>`
to encode a directory id, but the closing `>` can incorrectly terminate
a surrounding generator expression early.  Encode the directory id using
`(...)` instead.

Fixes: #20202
2020-01-10 11:40:34 -05:00
Brad King
c40229968c target_link_libraries: Add FIXME comment for out-of-dir genex list
Issue: #20204
2020-01-10 11:40:18 -05:00
Betsy McPhail
77b515f3eb Tutorial: Improve "MultiPackage" example
Rename to Step 12 and ensure that it follows Step 11
2020-01-10 11:37:54 -05:00
Cristian Adam
1a9f6bad98 ObjC: Add _COMPILE_LAUNCHER support
Fixes: #20178
2020-01-09 13:52:37 -05:00
Cristian Adam
a05b9d4239 ObjC: Add _COMPILE_LAUNCHER support
Fixes: #20178
2020-01-09 11:35:23 -05:00
Brad King
01c90d76a1 Merge branch 'backport-3.16-cuda-device-link-only-cuda' 2020-01-09 11:21:09 -05:00
Brad King
7ffa42288e Merge branch 'backport-3.15-cuda-device-link-only-cuda' 2020-01-09 11:13:51 -05:00
Robert Maynard
071c4f1a2a CUDA: Do not device link if target has no CUDA usage
When CUDA is enabled, and a pure non-CUDA target has
CMAKE_CUDA_SEPARABLE_COMPILATION enabled, don't actually perform
the device linking step, as it will fail. A target that has
CMAKE_CUDA_SEPARABLE_COMPILATION enabled must also have CUDA
usage (either itself, or something it links to).

Fixes: #20182
2020-01-09 11:02:17 -05:00
Marc Chevrier
61502d3956 FindPython: Add variable Python_SOABI
This variable holds the standard extension suffix for modules.

Fixes: #20150
2020-01-09 14:43:22 +01:00