Commit Graph

7865 Commits

Author SHA1 Message Date
Andrey Starodubtsev c1f1eaf7a4 VS: Teach CMAKE_MFC_FLAG to support generator expressions 2020-09-30 12:24:13 -04:00
Raul Tambre c63fe01835 CUDA: Clang separable compilation
For NVCC the compiler takes care of device linking when passed the "-dlink"
flag.
Clang doesn't support such magic and requires the buildsystem to do the work
that NVCC does behind the scenes.

The implementation is based on Bazel's device linking documentation:
https://github.com/tensorflow/tensorflow/blob/7cabcdf073abad8c46e9dda62bb8fa4682d2061e/third_party/nccl/build_defs.bzl.tpl#L259

Closes: #20726
2020-09-24 15:19:54 -04:00
Brad King 0ff74958f4 Merge topic 'cmake-gui-tests'
1dcc569828 gitlab-ci: Add GUI testing to each OS
4c6e5cd0fa Tests: Add some basic tests for CMake GUI
41e223deb3 CMake GUI: Split up into libraries, add test shim
b7995b62f0 QCMakeCacheView: Default to nullptr for parent

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5224
2020-09-24 15:15:19 -04:00
Brad King 4ae8cc7f0b Merge topic 'proper_device_libraries_architecture'
1cd4a37c12 Tests: Use sm_35 in Cuda.ProperDeviceLibraries for CUDA <10.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5261
2020-09-24 15:14:18 -04:00
Brad King 7b38161ca1 Merge topic 'check-source-modules'
357e2ef429 CheckSoureRuns: Add a unified way to check if a source runs
10ae907de0 CheckSoureCompiles: Add a unified way to check if a source compiles
f5c928f73c Add a test to verify '\' handling in CHECK_CXX_SOURCE_COMPILES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Michael Hirsch, Ph.D. <michael@scivision.dev>
Merge-request: !5223
2020-09-24 15:12:59 -04:00
Brad King 9aa93937f9 Merge topic 'obj-lib-per-config-source'
2f76e7429b OBJECT libraries: Properly recognize if sources depend on configuration
d575ecc9de cmGeneratorTarget: Better name for internal variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5252
2020-09-24 15:10:04 -04:00
Craig Scott ac5195c408 Merge topic 'find_package-version-range'
5b3356263c CMakePackageConfigHelpers: Add version range support
6bfc442fde FPHSA: add support of version range
d7df81067b find_package: Add support of version range
09095dbcd2 cmFindPackageCommand: Refactoring

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Michael Hirsch, Ph.D. <michael@scivision.dev>
Merge-request: !5226
2020-09-24 07:29:03 -04:00
Raul Tambre 1cd4a37c12 Tests: Use sm_35 in Cuda.ProperDeviceLibraries for CUDA <10.0
Using the cublas device libraries seems to require at least sm_35.
Set the architecture explicitly to sm_35 for old CUDA versions, which still
have the cublas device library.
2020-09-23 21:29:21 +03:00
Kyle Edwards 4c6e5cd0fa Tests: Add some basic tests for CMake GUI 2020-09-23 14:10:40 -04:00
Robert Maynard 357e2ef429 CheckSoureRuns: Add a unified way to check if a source runs 2020-09-23 12:28:37 -04:00
Robert Maynard 10ae907de0 CheckSoureCompiles: Add a unified way to check if a source compiles 2020-09-23 12:28:37 -04:00
Robert Maynard f5c928f73c Add a test to verify '\' handling in CHECK_CXX_SOURCE_COMPILES 2020-09-23 12:05:39 -04:00
Brad King d827fdb6f9 Merge topic 'separate_arguments-program'
d832c1cc7d separate_arguments: add option PROGRAM
f4c21d4953 separate_arguments: refactoring

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5253
2020-09-23 12:05:26 -04:00
Brad King a41f375e65 Merge topic 'test-issue-21144'
e02f677f61 Tests: Add test for early source lookup of file(GENERATE)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5248
2020-09-23 12:04:37 -04:00
Brad King 869d6c82a0 Merge topic 'install-EXPORT-source-CONFIG'
bf114602da install(EXPORT): Fix exporting target w/ source named using CONFIG genex

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5240
2020-09-23 11:58:02 -04:00
Brad King 226f6bc615 Merge topic 'cuda_tests_architecture'
4fe9f534f5 Tests: Don't unnecessarily set CUDA_ARCHITECTURES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5246
2020-09-23 11:56:34 -04:00
Deniz Bahadir 2f76e7429b OBJECT libraries: Properly recognize if sources depend on configuration
Fixes: #21198
2020-09-23 10:05:55 -04:00
Brad King f2daa025e3 {get,set}_property: Add support for referencing binary directories
Index directories by their binary directory path in addition to their
source directory path.

Fixes: #19262
2020-09-23 09:25:42 -04:00
Marc Chevrier 5b3356263c CMakePackageConfigHelpers: Add version range support 2020-09-23 12:52:25 +02:00
Marc Chevier 6bfc442fde FPHSA: add support of version range 2020-09-23 12:52:25 +02:00
Marc Chevier d7df81067b find_package: Add support of version range
This enhancement is the first step for solving issue #21107
2020-09-23 12:52:25 +02:00
Marc Chevrier d832c1cc7d separate_arguments: add option PROGRAM
Fixes: #21217
2020-09-22 16:32:34 +02:00
Marc Chevrier f4c21d4953 separate_arguments: refactoring 2020-09-22 16:32:34 +02:00
Brad King 44c5f5d4ec Merge topic 'cmake_path-updates'
82c9508313 cmake_path: enhancements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !5245
2020-09-22 08:03:51 -04:00
Brad King 966c3263c2 Merge topic 'file-ARCHIVE-compression-level'
195d14e781 file(ARCHIVE_CREATE): Add option to control compression level

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Cristian Adam <cristian.adam@gmail.com>
Merge-request: !5242
2020-09-22 07:43:31 -04:00
Deniz Bahadir bf114602da install(EXPORT): Fix exporting target w/ source named using CONFIG genex
Fixes: #21203
2020-09-22 07:35:02 -04:00
Josef Angstenberger e02f677f61 Tests: Add test for early source lookup of file(GENERATE)
The output file structures of file(GENERATE) have to be created early to
be able to use the generated files in source lists.

This was not done correctly for subdirectories which has been fixed
in commit aee2c51224 (file(GENERATE): Create output file structures for
all directories first, 2020-09-10).

Add a test case to address issue #21144.
2020-09-21 23:02:08 +02:00
Raul Tambre 4fe9f534f5 Tests: Don't unnecessarily set CUDA_ARCHITECTURES
Architecture 30 was removed with CUDA 11, so most of the CUDA tests fail with
it.
Remove setting the architecture and bump the minimum version to 3.18, so
CMP0104 takes effect and we can rely on the default architecture, which is
guaranteed to be compilable.

Use of __ldg() in ProperLinkFlags was removed as it only affects performance
and is available only on sm_35 and above.

Testing the functionality of CUDA_ARCHITECTURES is already covered by
CudaOnly.Architecture and CudaOnly.CompileFlags.
2020-09-21 20:37:07 +03:00
Asit Dhal 195d14e781 file(ARCHIVE_CREATE): Add option to control compression level
Fixes: #21125
2020-09-21 13:08:11 -04:00
Brad King 64901e053b Merge topic 'xcode-12-new-build-system'
b8ecd4df5f ExternalProject: Use CMP0114 NEW behavior with Xcode "new build system"
fe258f6382 Tests: Skip RunCMake.XcodeProject device cases for Xcode "new build system"
1c3d2d0951 Tests: Skip Qt*Autogen.MocSkipSource case for Xcode "new build system"
542884e527 Tests: Update RunCMake.XcodeProject cases for Xcode "new build system"
832a78be2d Tests: Update BuildDepends test for Xcode "new build system"
ff76c51ec3 Tests: Update RunCMake.file case with workaround for Xcode "new build system"
1806cdd17c Tests: Avoid duplicate custom commands for Xcode "new build system"
8d5f4c4db9 Xcode: Switch to the "new build system" for Xcode 12 and above
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5229
2020-09-21 09:10:48 -04:00
Brad King ca5e309940 Merge topic 'foreach-int-parse-range-check'
0412b55b83 foreach: Fix crash parsing integer out of range

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5239
2020-09-21 08:55:29 -04:00
Marc Chevrier 82c9508313 cmake_path: enhancements
* Fix error on parsing "c:a" (root-name without root-directory)
* Enrich documentation
2020-09-20 15:17:34 +02:00
Brad King b8ecd4df5f ExternalProject: Use CMP0114 NEW behavior with Xcode "new build system"
The ExternalProject module cannot be implemented in the Xcode "new build
system" without using CMP0114's NEW behavior.  When configuring for that
build system, warn if the policy is not set to NEW and use NEW behavior
anyway.
2020-09-18 13:46:45 -04:00
Brad King fe258f6382 Tests: Skip RunCMake.XcodeProject device cases for Xcode "new build system"
The Xcode "new build system" selects different architectures for device
builds than the old build system does.  Skip those tests on Xcode 12+
pending further investigation.

Issue: #21206
2020-09-18 13:46:39 -04:00
Brad King 1c3d2d0951 Tests: Skip Qt*Autogen.MocSkipSource case for Xcode "new build system"
This test case enables AUTOMOC on the same sources in two separate targets.
This causes the `moc_*.cpp` generation custom commands to be added to multiple
`_autogen` targets, which is not allowed by the Xcode "new build system".
Skip the part of the test that triggers this problem for now.

Issue: #21205
2020-09-18 13:46:39 -04:00
Brad King 542884e527 Tests: Update RunCMake.XcodeProject cases for Xcode "new build system" 2020-09-18 13:02:20 -04:00
Brad King 832a78be2d Tests: Update BuildDepends test for Xcode "new build system"
Xcode somehow tracks what we're running inside a custom command,
so we cannot prevent it from regenerating the `noregen.h` header
even though we do not declare any dependencies of it.
2020-09-18 13:02:19 -04:00
Brad King ff76c51ec3 Tests: Update RunCMake.file case with workaround for Xcode "new build system" 2020-09-18 13:02:19 -04:00
Brad King 1806cdd17c Tests: Avoid duplicate custom commands for Xcode "new build system" 2020-09-18 13:02:19 -04:00
Brad King 8d5f4c4db9 Xcode: Switch to the "new build system" for Xcode 12 and above
Provide an option to switch back to the original build system via
`-T buildsystem=1`.

Fixes: #18088
2020-09-18 13:02:14 -04:00
Brad King 2db623f554 Xcode: Add option to specify build system variant
Extend the `-T <toolset>` option to support a `buildsystem=` field with
the Xcode generator.  Add a `CMAKE_XCODE_BUILD_SYSTEM` variable to
inform project code about the selected build system variant.
2020-09-18 12:49:17 -04:00
Brad King 5a15fcf597 Tests: Avoid duplicate custom commands in QtAutogen.AutogenOriginDependsOff 2020-09-18 12:49:09 -04:00
Ben McMorran 0412b55b83 foreach: Fix crash parsing integer out of range 2020-09-18 09:54:58 -04:00
Brad King ce89f54ee3 Merge topic 'rel-drop-old'
6a88e6332f Utilities/Release: Drop now-unused scripts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5234
2020-09-18 08:43:13 -04:00
Brad King 5d952fd6e2 Merge topic 'ninja-multi-automoc-regression'
23fe4b861f Ninja Multi-Config: Fix dependencies of custom commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5238
2020-09-18 08:42:28 -04:00
Kyle Edwards 23fe4b861f Ninja Multi-Config: Fix dependencies of custom commands
a9fd3a10 addressed the scenario where the depending target is a
utility target, but not the scenario where the dependent target is
a utility target. Account for this scenario.

Also add a Qt-specific test case.

Fixes: #21118
2020-09-17 15:46:57 -04:00
Brad King bb8afa0020 Merge topic 'string-json-support'
8eab76eb84 string(JSON): Adds JSON parsing support to the string command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Cristian Adam <cristian.adam@gmail.com>
Acked-by: Michael Hirsch, Ph.D. <michael@scivision.dev>
Merge-request: !5159
2020-09-17 09:47:43 -04:00
Brad King 6a88e6332f Utilities/Release: Drop now-unused scripts
Since these commits:

* commit ab2276e6b9 (Utilities/Release: remove old macOS release script,
                     2020-09-16)
* commit 7670ba8b0a (Utilities/Release: Drop win{32,64} scripts in favor
                     of docker build, 2020-05-05, v3.18.0-rc1~203^2)
* commit 689fdbfc61 (Utilities/Release: Drop linux64 script in favor of
                     docker build, 2019-08-27, v3.16.0-rc1~184^2)

several scripts we once used for producing release binaries for
distribution on `cmake.org` are no longer needed.
2020-09-17 09:11:03 -04:00
Ben Boeckel ab2276e6b9 Utilities/Release: remove old macOS release script
macOS releases are now made by GitLab-CI.
2020-09-16 16:09:01 -04:00
Peter Steneteg 8eab76eb84 string(JSON): Adds JSON parsing support to the string command
Adds a set of sub commands to the string command for parsing JSON, the
JSON commands are: GET, TYPE, MEMBER, LENGTH, REMOVE, SET, and EQUAL.

Closes: #19501
2020-09-16 13:55:24 -04:00