Commit Graph

8089 Commits

Author SHA1 Message Date
Brad King af966ec25c Merge topic 'ci-xcode-12.2'
5213328008 gitlab-ci: update macOS jobs to use Xcode 12.2
928ca50b6f Tests: Teach RunCMake to ignore Xcode install_name_tool signature warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5534
2020-11-25 08:38:56 -05:00
Brad King 52c8c4b826 Merge topic 'test-java-default'
1af2d1d0ea Tests: Add CMake_TEST_Java option to control Java tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5532
2020-11-25 08:38:06 -05:00
Brad King 928ca50b6f Tests: Teach RunCMake to ignore Xcode install_name_tool signature warnings
The `install_name_tool` may warn:

    install_name_tool: warning: changes being made to the file will
    invalidate the code signature in: ...

Teach RunCMake to drop such incidental lines before matching against
expected output.
2020-11-24 14:33:59 -05:00
Brad King 1af2d1d0ea Tests: Add CMake_TEST_Java option to control Java tests 2020-11-24 13:29:30 -05:00
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 adf3ea701d Merge topic 'policy-cmp0111-iface'
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 2bca5fa6aa Merge topic 'xcode-cc-work-dir'
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:24 -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 c178fad186 Merge topic 'fix-compile-db-crash'
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:59 -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 bf241bcc1e Merge topic 'improve_cmakes_error_handling_of_bad_parameters'
7302a23a1f cmake: Simplify -W recognition of no- and error= prefixes
98290782b6 cmake: redesign command-line argument parsing
d800c26ce9 cmake: Fix processing of -Wno-error= flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Axel Huebl <axel.huebl@plasma.ninja>
Merge-request: !5458
2020-11-20 10:09:03 -05:00
Brad King 60a131efd5 Merge topic 'revert-explicit-LANGUAGE-flag'
30aa715fac Revert "specify language flag when source LANGUAGE property is set"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5519
2020-11-20 10:05:11 -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
Robert Maynard 98290782b6 cmake: redesign command-line argument parsing
Make handling more consistent:

   "-S" -> invalid
   "-S/path/to/source" -> valid
   "-S /path/to/source" -> valid
   "-S=/path/to/source" -> now valid

   "-D" -> invalid
   "-DStr" -> valid
   "-D Str" -> valid
   "-D=Str" -> now valid

   "--log-level=" -> invalid
   "--log-level" -> invalid
   "--log-level=2" -> valid
   "--log-level 2" -> now valid
2020-11-19 08:53:58 -05:00
Brad King c8b2331e8b Merge topic 'rename_cuda_memcheck'
fea49b2df0 CTest: Rename CudaMemcheck to CudaSanitizer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5514
2020-11-18 07:29:54 -05:00
Tobias Ribizel fea49b2df0 CTest: Rename CudaMemcheck to CudaSanitizer 2020-11-17 21:06:30 +01:00
Brad King d800c26ce9 cmake: Fix processing of -Wno-error= flags
Fix two bugs that happened to cancel each other out for cases covered
by our test suite.  Add a test case that distinguishes them.
2020-11-17 13:22:52 -05:00
Brad King c0619861c9 Merge topic 'cmake-build-specify-makefile-name'
cfce067b3f Tests: Add RunCMake.Make case for conflicting Makefile names
378c047ae3 Makefiles: Explicitly tell 'make' tool what Makefile name to use

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5509
2020-11-17 13:16:02 -05:00
Andrew Fuller c826745f5a CPack/DEB: Do not crash when asked for debug symbols when there are none
Fixes: #21356
2020-11-16 14:03:07 -05:00
Brad King cfce067b3f Tests: Add RunCMake.Make case for conflicting Makefile names
Issue: #21418
2020-11-16 11:34:53 -05:00
Brad King 01b473b810 Merge topic 'msvc-no-GR'
c00a6d3967 MSVC: Do not add /GR to CMAKE_CXX_FLAGS by default
6114c8e994 MSVC: Factor out initialization of /GR flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5508
2020-11-16 11:19:28 -05:00
Brad King 1efdba91ae Merge topic 'ci-fedora33'
3d1183c457 Merge branch 'ci-fedora33-release' into ci-fedora33
6e35919e15 gitlab-ci: use Fedora 33 to build sources
061f7d5ca3 gitlab-ci: update Linux CI to use Fedora 33
bd62d2ecf3 ci: update to Fedora 33 for Linux builds
ada3170625 ci: install gmock in the Fedora 31 image
86f196f634 Tests/FindBoost/TestPython: support finding 3.8 and 3.9
6a83417908 clang-tidy: ignore new warnings from newer versions
d2b648ec4c clang-tidy: ignore `misc-no-recursion`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5504
2020-11-16 11:16:12 -05:00
Craig Scott eb04e25ba6 Merge topic 'cmake_path-enhancements'
ed21ad181e cmake_path: various enhancements to subcommands/keywords

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5457
2020-11-14 06:39:42 -05:00
Brad King c00a6d3967 MSVC: Do not add /GR to CMAKE_CXX_FLAGS by default
The `/GR` flag has been on by default since MSVC cl 14.0 from VS 2005.
Remove it from the default flags to make it easier for projects to pass
`/GR-` themselves to turn it off.

Projects may be using string processing to replace `/GR` with another
flag, so we cannot simply drop it.  Add a policy to drop it in a
compatible way.

Fixes: #21428
2020-11-13 11:46:23 -05:00
Ben Boeckel 3d1183c457 Merge branch 'ci-fedora33-release' into ci-fedora33
* ci-fedora33-release:
  gitlab-ci: use Fedora 33 to build sources
  gitlab-ci: update Linux CI to use Fedora 33
  ci: update to Fedora 33 for Linux builds
  ci: install gmock in the Fedora 31 image
  Tests/FindBoost/TestPython: support finding 3.8 and 3.9
  clang-tidy: ignore new warnings from newer versions
  clang-tidy: ignore `misc-no-recursion`
2020-11-13 09:46:40 -05:00
Ben Boeckel 86f196f634 Tests/FindBoost/TestPython: support finding 3.8 and 3.9 2020-11-12 17:55:31 -05:00
Brad King ccd87d89d8 Merge topic 'FindPython-version-range-fix-tests'
a00603af0b FindPython: Fix version range tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5497
2020-11-12 09:10:53 -05:00
Marc Chevrier ed21ad181e cmake_path: various enhancements to subcommands/keywords
This change address partly the remarks done in issue #21385
2020-11-11 23:43:51 +01: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
Brad King f4f3fca99f Merge topic 'android-root'
cbc51a8be3 Android: restructure android search paths

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: huangqinjin <huangqinjin@gmail.com>
Merge-request: !5479
2020-11-10 09:42:31 -05:00
Haibo Huang cbc51a8be3 Android: restructure android search paths
1. Set CMAKE_FIND_ROOT_PATH unconditionally.

Revise the implementation from commit a7f41a7ee4 (Android: Fix find_*
search order within NDK for unified toolchains, 2020-10-13).  In the old
implementation, if people set CMAKE_FIND_ROOT_PATH, CMAKE_ANDROID_NDK
won't be added to find root. And all paths added to CMAKE_SYSTEM_*_PATH
below will be rerooted to the user specified root.

2. Add api level specific library path to CMAKE_SYSTEM_PREFIX_PATH.

As the discussion in [1], some people want the paths added by
UnixPaths.cmake. They install their libraries according to
GNUInstallDirs [2].

As a result, we cannot clear CMAKE_SYSTEM_PREFIX_PATH. It includes /usr
so no matter what we specify in CMAKE_SYSTEM_LIBRARY_PATH,
/usr/lib/<arch> will be searched first.

The author also pointed out a way to solve this issue [3]. In addition
to other paths, CMake also searches <root>/<prefix> [4]. So we can add
the API specific lib path to the beginning of CMAKE_SYSTEM_PREFIX_PATH,
to have it searched first.

[1] https://android-review.googlesource.com/c/platform/ndk/+/1486800
[2] https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
[3] https://github.com/android/ndk/issues/1179#issuecomment-613435081
[4] https://gitlab.kitware.com/cmake/cmake/-/blob/11425041f04fd0945480b8f9e9933d1549b93981/Source/cmSearchPath.cxx#L202
2020-11-09 08:15:46 -05:00
Brad King fcc89bda1d TestBigEndian: Re-implement using byte order detected from ABI check
Document the module as deprecated in favor of the ABI check results.
2020-11-06 09:17:30 -05:00
Brad King 412ce907a2 Tests: Prepare RunCMake.ABI cases to run more checks 2020-11-06 08:33:03 -05:00
Brad King ffda92d4bf Merge topic 'clang-tidy-for-objc'
1134064e22 clang-tidy: allow OBJC and OBJCXX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5467
2020-11-06 08:05:00 -05:00
Andrew Fuller 1134064e22 clang-tidy: allow OBJC and OBJCXX 2020-11-05 11:39:32 -08:00
Brad King d416b0996a Merge topic 'GNUInstallDirs-dir'
a61007b3b0 Tests: Add RunCMake.GNUInstallDirs case for get_absolute_install_dir
229b5ee994 GNUInstallDirs: Add dir argument to GNUInstallDirs_get_absolute_install_dir

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5450
2020-11-05 07:56:30 -05:00
Craig Scott 73974d84c2 Merge topic 'abi-byte-order'
f511a1c009 CMakeDetermineCompilerABI: Detect byte order as part of check
606b34b3a6 CMakeDetermineCompilerABI: Look for more INFO strings in test binary

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Juan Ramos <juan.ramos@amd.com>
Acked-by: John Palmer <juanr0911@gmail.com>
Merge-request: !5460
2020-11-05 07:47:59 -05:00
Brad King a61007b3b0 Tests: Add RunCMake.GNUInstallDirs case for get_absolute_install_dir 2020-11-04 15:10:25 -05:00
Brad King f511a1c009 CMakeDetermineCompilerABI: Detect byte order as part of check
We already detect `sizeof(void*)`.  Detect the byte order as part of the
same check.

Issue: #21392
2020-11-04 10:08:13 -05: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
Marc Chevrier e452f6e2cf FindPython: Adds control over artifact names to search
Fixes: #21371
2020-11-03 15:12:58 +01:00
Brad King 7cef3fad02 Merge topic 'nmc-test-fix'
e0a7c0d40d Tests: Fix one RunCMake.NinjaMultiConfig case name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5447
2020-11-03 07:30:01 -05:00
Brad King db02ccf406 Merge topic 'cmake-presets-no-path-arg-warning'
cb2d01c182 CMakePresets.json: Don't warn if no path argument is given

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5455
2020-11-03 07:24:25 -05:00
Brad King e0a7c0d40d Tests: Fix one RunCMake.NinjaMultiConfig case name
The CustomCommandGenerator `debug-in-release-graph-clean` case actually
cleans using the Debug graph.  This is intentional in order to test
cleaning only the Debug parts, so fix the test name rather than changing
what graph it uses.
2020-11-02 10:25:54 -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
Kyle Edwards 89310efa4a Merge topic 'fix-test-for-qemu'
8c42cfb2e8 test/CMakeLib: make testUVProcessChain work with qemu

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5442
2020-11-02 09:31:08 -05:00