7992 Commits

Author SHA1 Message Date
Brad King 1f1d705154 Merge topic 'policy-cmp0111-iface' into release-3.19
54ef732b0c cmVisualStudio10TargetGenerator: Avoid GetFullPath on INTERFACE library
f06f4b517c cmTarget: Do not enforce CMP0111 on imported INTERFACE libraries
43c95df8fb Tests: Match RunCMake.CMP0111 stderr more strictly

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5530
2020-11-24 08:43:22 -05:00
Brad King 6b4bb3bf7f Merge topic 'xcode-cc-work-dir' into release-3.19
36921d2d23 Xcode: Fix custom command work-dir placeholders in "new build system"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5527
2020-11-24 08:41:23 -05:00
Brad King f06f4b517c cmTarget: Do not enforce CMP0111 on imported INTERFACE libraries
Fix logic added by commit 359c500a24 (cmTarget: Raise error if imported
target location is not set, 2020-08-08, v3.19.0-rc1~273^2) to exclude
INTERFACE libraries from the policy.  They have no location.

Fixes: #21470
2020-11-23 15:56:28 -05:00
Brad King 43c95df8fb Tests: Match RunCMake.CMP0111 stderr more strictly 2020-11-23 15:50:58 -05:00
Brad King ed049d1678 Merge topic 'fix-compile-db-crash' into release-3.19
67e2130c96 Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile rule

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5521
2020-11-23 11:19:58 -05:00
Brad King 36921d2d23 Xcode: Fix custom command work-dir placeholders in "new build system"
The placeholders for `CONFIGURATION` and `EFFECTIVE_PLATFORM_NAME` need
to be handled in the `WORKING_DIRECTORY` of custom commands just as we
already do for the `COMMAND`.

Fixes: #21483
2020-11-23 10:24:13 -05:00
Brad King 67e2130c96 Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile rule
Fixes: #21471
2020-11-20 09:45:14 -05:00
Brad King 30aa715fac Revert "specify language flag when source LANGUAGE property is set"
Revert commit 74b1c9fc8e (Explicitly specify language flag when source
LANGUAGE property is set, 2020-06-01, v3.19.0-rc1~722^2) and the lookup
tables from its two immediate ancestors.  The purpose of that change was
to convert an explicit `LANGUAGE` source file property into an explicit
language specification compiler flag like `-x c`.  This seems reasonable
since the property is documented as meaning "indicate what programming
language the source file is".  It is also needed to help compilers deal
with non-standard source file extensions they don't recognize.

However, some projects have been setting `LANGUAGE C` on `.S` assembler
source files to mean "use the C compiler".  Passing `-x c` for them
breaks the build because the `.S` sources are not written in C.  These
projects should be updated to use `enable_language(ASM)`, for which
CMake often chooses the C compiler as the assembler when using
toolchains that support it (which would have to be the case for projects
using the approach).

Revert the change for now to preserve the old behavior for such projects.
We can re-introduce it with a policy in a future version of CMake.

Fixes: #21469
Issue: #14516, #20716
2020-11-19 17:06:03 -05:00
Tobias Ribizel fea49b2df0 CTest: Rename CudaMemcheck to CudaSanitizer 2020-11-17 21:06:30 +01:00
Ben Boeckel 86f196f634 Tests/FindBoost/TestPython: support finding 3.8 and 3.9 2020-11-12 17:55:31 -05:00
Marc Chevrier a00603af0b FindPython: Fix version range tests
Tests must be successful when multiple versions are installed.
2020-11-11 16:16:49 +01:00
Marc Chevrier 1c912056a1 cmake_path: remove new command from 3.19
Defer adding this command until post-3.19 development so that it
has more time to mature before being included in a release.

Issue: #21385
2020-11-03 09:55:35 -05:00
Kyle Edwards cb2d01c182 CMakePresets.json: Don't warn if no path argument is given
If --preset is specified with no path argument, use the current
directory as the source directory, the preset's binaryDir as the
binary directory, and don't issue the standard warning for no path
specified.

Fixes: #21386
2020-11-02 09:46:08 -05:00
Brad King 013c4133f7 Merge topic 'CheckSourceRuns-compatibility' into release-3.19
a524bf3aa7 CheckSourceRuns: do not fail on unrecognized arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5426
2020-10-30 09:51:35 -04:00
Ben Boeckel a524bf3aa7 CheckSourceRuns: do not fail on unrecognized arguments
The old `check_X_source_runs` modules did not verify the arguments, so
we cannot start doing it now. Downgrade the hard error introduced in
commit 357e2ef429 (CheckSoureRuns: Add a unified way to check if a
source runs, 2020-09-14) via !5223 into a noisy warning.
2020-10-28 15:06:02 -04:00
Brad King 8d6a0b9364 Merge topic 'cuda_vs_skip_computation' into release-3.19
dd77dec18d VS: Don't compute CUDA options unless necessary
e9109dec36 Merge branch 'ninja-multi-per-config-sources' into release-3.18
7c0de4175b Merge branch 'cmake-E-cat-binary' into release-3.18

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5422
2020-10-27 08:20:54 -04:00
Craig Scott 698851cdb7 Merge topic 'cmake-presets-path-arg' into release-3.19
b7d7eca66d CMakePresets.json: Rework how --preset argument is handled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5416
2020-10-27 07:33:45 -04:00
Raul Tambre dd77dec18d VS: Don't compute CUDA options unless necessary
In the following scenario (with 3.18 policies):
1. A CXX target is created.
2. CUDA language is enabled.

CMake 3.18 introduced CMP0104, which requires CUDA_ARCHITECTURES to be
set.  Because the CXX target was created before CUDA was enabled it
wouldn't have it set.  The Visual Studio generator would however end up
computing CUDA compile options for the CXX target, which would result in
a fatal error due to the policy violation.

There doesn't seem to be a reason to do this for targets that don't
actually use the CUDA language, so we can skip and generate the CXX
target just fine.

Fixes: #21341
2020-10-27 07:29:01 -04:00
Brad King 479a9dfb69 Merge topic 'check-module-name-conflicts' into release-3.19
d192918586 Modules: Do not implicitly add new functions via old Check Modules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5424
2020-10-27 07:02:49 -04:00
Brad King e9109dec36 Merge branch 'ninja-multi-per-config-sources' into release-3.18
Merge-request: !5430
2020-10-26 16:14:00 -04:00
Kyle Edwards b8937a992b Merge branch 'release' into ninja-multi-per-config-sources 2020-10-26 15:43:57 -04:00
Kyle Edwards d13bd6ec3d Ninja Multi-Config: Don't try to calculate dependencies for "all" 2020-10-26 15:37:04 -04:00
Robert Maynard d192918586 Modules: Do not implicitly add new functions via old Check Modules
The conversion of Check<Lang>CompilerFlag, SourceCompiles, and
SourceRuns over to the new functions has the possibility of breaking
projects that had functions with those existing names.

To reduce the possibility of collisions we now have all the
legacy code call functions that start with `cmake_`, and users
will need to explicitly include the new modules to get the
non-prefixed versions

Fixes: #21359
2020-10-26 10:57:55 -04:00
Brad King a1fe3be2bf Merge topic 'per-config-source-TARGET_FILE' into release-3.19
cd33bfcad5 add_custom_command: Properly recognize if sources depend on config

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5410
2020-10-26 10:28:30 -04:00
Kyle Edwards b7d7eca66d CMakePresets.json: Rework how --preset argument is handled
If a path argument with no -S or -B leads to a cache directory,
use that directory as the binary directory. Otherwise, use the
binary directory from the preset.

Fixes: #21311
2020-10-26 22:32:45 +11:00
Craig Scott 5e1858c0c2 Merge topic 'cmake-presets-toolset-arch-config' into release-3.19
64afabdbcb CMakePresets.json: Split cmakeGeneratorConfig field

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5387
2020-10-23 06:37:56 -04:00
Deniz Bahadir cd33bfcad5 add_custom_command: Properly recognize if sources depend on config
Fixes: #21349
2020-10-22 23:03:05 +02:00
Kyle Edwards 64afabdbcb CMakePresets.json: Split cmakeGeneratorConfig field
Make this field separate for both architecture and toolset. Allow
architecture and toolset to be either strings or objects with value
and strategy fields.

Fixes: #21317
2020-10-22 11:24:39 -04:00
Kyle Edwards 25742c589c CMakePresets.json: Add ${sourceDirName} macro
Fixes: #21312
2020-10-22 11:09:28 -04:00
Kyle Edwards 609122007d Merge topic 'cmake-presets-invalid-macro' into release-3.19
638557cbfe CMakePresets.json: Properly report macro expansion errors

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5397
2020-10-22 11:05:09 -04:00
Kyle Edwards 920d180047 CMakePresets.json: Allow boolean for cache variable value
Fixes: #21327
2020-10-21 10:37:08 -04:00
Kyle Edwards 638557cbfe CMakePresets.json: Properly report macro expansion errors
Make a distinction between strings which simply use the
$vendor{<...>} macro, which is valid but makes it unusable by CMake,
and strings which actually contain invalid macro expansions.

Fixes: #21308
2020-10-21 09:20:52 -04:00
Kyle Edwards e3bce8edf4 Tests: Add JSON schema validation to CMakePresets.json tests 2020-10-20 12:07:09 -04:00
Kyle Edwards 81c88bb261 Merge topic 'cmake-presets-doc-move' into release-3.19
4a123fc28c Help: Clarify purpose of warnings and errors
6c74bcfc20 Help: Make architecture and toolset descriptions generic
45766789a0 Help: Add inheritance to CMakePresets.json example
88c9d6f6eb Help: Add documentation for debug field
efab856008 Help: Show environment field
2208db114c Help: Show multiple ways of doing cacheVariables
d30f85193f Help: Move vendor field into example
b9c8c57860 Help: s/unusedVars/unusedCli/
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5373
2020-10-20 11:59:54 -04:00
Brad King f4e6dfe55d Merge topic 'separate_arguments-no-args' into release-3.19
747f80fe82 separate_arguments: Fix crash on *_COMMAND with no arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5382
2020-10-19 10:26:30 -04:00
Kyle Edwards efab856008 Help: Show environment field 2020-10-19 10:25:57 -04:00
Kyle Edwards 2208db114c Help: Show multiple ways of doing cacheVariables
This demonstrates both the simple string and the complex object,
and ensures that they get automated testing.
2020-10-19 10:25:57 -04:00
Brad King ae1ca3034e Merge topic 'doc-CMP0111' into release-3.19
5c3a91c808 CMP0111: Clarify that the new error is on a missing property setting

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Reinking <alex_reinking@berkeley.edu>
Merge-request: !5385
2020-10-19 10:23:50 -04:00
Craig Scott 792863ac29 Merge topic 'cmake-gui-disable-presets' into release-3.19
d471406f0b CMake GUI: Disable preset fields instead of hiding them

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !5374
2020-10-17 07:13:18 -04:00
Kyle Edwards d471406f0b CMake GUI: Disable preset fields instead of hiding them 2020-10-16 15:16:04 -04:00
Brad King e1d124286a Merge topic 'file-configure-angle-brackets' into release-3.19
06a9a3bdc3 file(CONFIGURE): Allow angle brackets in content

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5379
2020-10-16 09:23:42 -04:00
Brad King 0bdaa60e43 Merge topic 'CheckSource-Fortran' into release-3.19
c4c636cef5 Tests: Add cases for CheckSource{Compiles,Runs} bad arguments
1e519df025 CheckSource{Runs,Compiles}: Fix default Fortran source extension

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5378
2020-10-16 09:22:32 -04:00
Robert Bozzetto 747f80fe82 separate_arguments: Fix crash on *_COMMAND with no arguments
Fixes: #21320
2020-10-16 08:49:28 -04:00
Brad King 5c3a91c808 CMP0111: Clarify that the new error is on a missing property setting
The previous wording could be confused with the file missing on disk.
2020-10-16 08:26:00 -04:00
Brad King b9cb1d324d Fix regression in test/install/package configuration selection
In commit 7a969fe21d (cmMakefile: Refactor API to better handle empty
config values, 2020-06-30, v3.19.0-rc1~567^2), calls to
`GetGeneratorConfigs` that pass `OnlyMultiConfig` only want to get any
configurations listed if the generator is multi-config.  Fix the
implementation to actually do that.

Fixes: #21316
2020-10-15 10:53:09 -04:00
Brad King c4c636cef5 Tests: Add cases for CheckSource{Compiles,Runs} bad arguments 2020-10-15 09:42:56 -04:00
Cristian Adam 06a9a3bdc3 file(CONFIGURE): Allow angle brackets in content
Fixes: #21306
2020-10-15 15:42:21 +02:00
Brad King b1d9a25f35 Merge topic 'cmake-E-cat-binary' into release-3.19
f7a5f28318 cmake: Fix '-E cat' command for binary files on Windows
90b39a5209 cmConsoleBuf: Factor out cout/cerr console buffer management
f1fdd15863 clang-format: Fix include block order in ctest.cxx and cpack.cxx

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5364
2020-10-15 08:10:50 -04:00
Johnny Jazeix f7a5f28318 cmake: Fix '-E cat' command for binary files on Windows
Reset `std::cout` to write in binary mode with no encoding conversions.

Co-Author: Brad King <brad.king@kitware.com>
Fixes: #21295
2020-10-14 12:08:07 -04:00
Brad King 01ae8149b8 Merge topic 'android-verify-abi-in-ndk' into release-3.19
5c2f9e3eeb Android: Fatal if ABI is not supported by NDK

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5351
2020-10-13 08:38:54 -04:00