Commit Graph

11362 Commits

Author SHA1 Message Date
Brad King 13992723d8 Merge topic 'FindPNG-advanced-variables'
17ae4e1bef FindPNG: only mark used variables as advanced

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5809
2021-02-16 10:41:26 -05:00
Brad King 264f7d76fe Merge topic 'IntelLLVM-unused-C17'
4642c81c72 IntelLLVM: Remove incomplete C17 support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5805
2021-02-16 10:40:29 -05:00
Brad King 4642c81c72 IntelLLVM: Remove incomplete C17 support
CMake does not yet model support for C17.  Avoid possible confusion by
removing the settings for IntelLLVM pending a full implementation.
2021-02-15 10:43:35 -05:00
Ben Boeckel 17ae4e1bef FindPNG: only mark used variables as advanced
The `PNG_LIBRARY` variable is an output and not a cache variable.

Fixes some CMP0102 warnings.
2021-02-15 10:33:01 -05:00
Brad King 54f6928ebc Merge topic 'cuda-nvcc-output'
9ea66b2d86 CUDA: Capture all nvcc output when extracting toolkit root

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Tested-by: Raul Tambre <raul@tambre.ee>
Acked-by: Rong Ou <rong.ou@gmail.com>
Merge-request: !5804
2021-02-15 10:29:25 -05:00
Brad King 58a2f5d029 Merge topic 'FindGDAL-improvements'
55e493928b FindGDAL: add release note
f4b53fadda FindGDAL: support finding additional GDAL library names
1b2774450d FindGDAL: add support for skipping gdal-config
1621cb3eb1 FindGDAL: add documentation to cache variables
3caaff4c08 FindGDAL: conditionally set the output variables
3f6a4f2062 FindGDAL: mark cache variables as advanced
02e906305d FindGDAL: use execute_process instead of exec_program
140344da14 FindGDAL: fix some indentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5799
2021-02-15 10:21:18 -05:00
Ben Boeckel f4b53fadda FindGDAL: support finding additional GDAL library names 2021-02-12 07:43:23 -05:00
Brad King 9ea66b2d86 CUDA: Capture all nvcc output when extracting toolkit root
Since commit fb2afef620 (CUDA: Support nvcc symlinking to ccache,
2021-01-07) and commit 3cef91a321 (CUDA: Always extract CUDA Toolkit
root from nvcc verbose output, 2021-02-03) we always run the command
`nvcc -v __cmake_determine_cuda` to look for the toolkit root in its
stderr.  On Windows, that command may print to stdout instead, so
capture that as well.
2021-02-12 07:23:48 -05:00
Brad King fece2db132 Merge topic 'UseSWIG-avoid-spurious-policy-warnings'
de7f0aa6c0 UseSWIG: avoid spurious policy warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5802
2021-02-12 06:55:17 -05:00
Brad King a86cd9cb3c Merge topic 'FindMPI-lang-reason' into release-3.20
8251b62ba0 FindMPI: Fix reason for a non-enabled non-requested language

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5801
2021-02-12 06:53:41 -05:00
Brad King aa191f3ac2 Merge topic 'FindMPI-lang-reason'
8251b62ba0 FindMPI: Fix reason for a non-enabled non-requested language

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5801
2021-02-12 06:53:41 -05:00
Felipe Torrezan 8ee933900e IAR: add support for the STM8 compiler 2021-02-12 06:51:05 -05:00
Marc Chevrier de7f0aa6c0 UseSWIG: avoid spurious policy warnings 2021-02-11 17:17:10 +01:00
Ben Boeckel 1b2774450d FindGDAL: add support for skipping gdal-config
This can be confusing if there are autotools and CMake-built GDAL builds
within the same environment as the autotools variant will always be
preferred.
2021-02-11 09:46:10 -05:00
Ben Boeckel 1621cb3eb1 FindGDAL: add documentation to cache variables 2021-02-11 09:46:10 -05:00
Ben Boeckel 3caaff4c08 FindGDAL: conditionally set the output variables 2021-02-11 09:46:10 -05:00
Ben Boeckel 3f6a4f2062 FindGDAL: mark cache variables as advanced 2021-02-11 09:46:10 -05:00
Ben Boeckel 02e906305d FindGDAL: use execute_process instead of exec_program 2021-02-11 09:46:10 -05:00
Ben Boeckel 140344da14 FindGDAL: fix some indentation 2021-02-11 09:46:10 -05:00
Axel Huebl 8251b62ba0 FindMPI: Fix reason for a non-enabled non-requested language
In pure C/CXX projects, when doing an optional search for C/CXX
MPI APIs, I keep getting a reason appended of the form:

```
-- Could NOT find MPI_C (missing: MPI_C_LIB_NAMES MPI_C_HEADER_DIR MPI_C_WORKS)
-- Could NOT find MPI_CXX (missing: MPI_CXX_LIB_NAMES MPI_CXX_HEADER_DIR MPI_CXX_WORKS)
-- Could NOT find MPI (missing: MPI_C_FOUND MPI_CXX_FOUND)
    Reason given by package: MPI component 'Fortran' was requested, but language Fortran is not enabled.
```

The reason makes no sense since I did not request Fortran and thus
confuses the reader. It is now only added if the component was truly
requested.
2021-02-11 09:05:19 -05:00
Brad King b1e544dd64 Merge topic 'IntelLLVM-no-imsvc' into release-3.20
e5563e592f IntelLLVM: Remove unsupported -imsvc system include flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5795
2021-02-11 08:58:40 -05:00
Brad King fd26519cfb Merge topic 'IntelLLVM-no-imsvc'
e5563e592f IntelLLVM: Remove unsupported -imsvc system include flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5795
2021-02-11 08:58:40 -05:00
Brad King ea07176b9a Merge topic 'FindBoost-no-warn'
90467747a1 FindBoost: Add option to suppress new boost version dependency warning

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5794
2021-02-10 08:14:40 -05:00
John Melas 90467747a1 FindBoost: Add option to suppress new boost version dependency warning
Add option `Boost_NO_WARN_NEW_VERSIONS` to suppress new boost version
dependency warning.

Fixes: #21786
2021-02-10 08:02:24 -05:00
william.r.dieter e5563e592f IntelLLVM: Remove unsupported -imsvc system include flag
`clang-cl` supports the `-imsvc` flag to tell the compiler an include
directory is intended for system paths.  `icx` does not accept this
flag, even on MSVC platforms, so do not tell CMake that it exists.

Fixes: #21801
Signed-off-by: william.r.dieter <william.r.dieter@intel.com>
2021-02-10 07:55:00 -05:00
Brad King bb68658e98 Merge topic 'findcudatoolkit_handle_cuda_compiler_without_enabled_lang'
cd89d1c328 FindCUDAToolkit: Robust version checks when CUDA lang is not enabled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Tested-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5787
2021-02-10 07:48:50 -05:00
Brad King 691e8ac480 Merge topic 'clang-imsvc'
2fc5e5dba9 Clang: Use -imsvc for system include only with MSVC-like front-end

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Thomas Bernard <thomas@famillebernardgouriou.fr>
Merge-request: !5792
2021-02-10 07:46:33 -05:00
Brad King 2fc5e5dba9 Clang: Use -imsvc for system include only with MSVC-like front-end
In commit bb61c2d024 (Clang: use -imsvc for system include dirs when
running on Windows, 2020-09-16, v3.19.0-rc1~162^2) we added `-imsvc`
for all Clang compilers targeting the MSVC ABI.  However, the option
only exists for the MSVC-like front-end.  The GNU-like front-ends
use `-isystem`.

Fixes: #21789
2021-02-09 11:24:41 -05:00
Robert Maynard cd89d1c328 FindCUDAToolkit: Robust version checks when CUDA lang is not enabled
Previously if you set `CMAKE_CUDA_COMPILER` but hadn't enabled
the CUDA language, FindCUDAToolkit would not correctly compute
the version information.
2021-02-09 09:39:20 -05:00
Brad King 340ca27f8d Merge topic 'FindXCTest-bundle-inject' into release-3.19
eafe740ead FindXCTest: Fix output directory for test bundle with new build system

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5786
2021-02-09 08:25:27 -05:00
Brad King c4c902d132 Merge topic 'FindXCTest-bundle-inject'
eafe740ead FindXCTest: Fix output directory for test bundle with new build system

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5786
2021-02-09 08:25:27 -05:00
Brad King cab99f7dba Merge topic 'xcode12-ios_install_combined'
0110aa018d IOS_INSTALL_COMBINED: Support Xcode 12 (command line only)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5785
2021-02-09 08:23:30 -05:00
Brad King 9b9075f723 Merge topic 'cuda_support_nvcc_from_hpctoolkit'
3cef91a321 CUDA: Always extract CUDA Toolkit root from nvcc verbose output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Tested-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5777
2021-02-09 08:21:17 -05:00
Brad King 18fa819e26 Merge topic '21479-branding-name-cpack-nsis'
0aabeb0c30 CPack/NSIS: Add option for setting branding text

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5784
2021-02-09 08:20:17 -05:00
Yauheni Khnykin eafe740ead FindXCTest: Fix output directory for test bundle with new build system
The output directory was still correct for macOS with the new build system,
but not for iOS.

Fixes: #20662
2021-02-09 10:20:57 +11:00
Robert Maynard 3cef91a321 CUDA: Always extract CUDA Toolkit root from nvcc verbose output
Fixes #21750, #21763

Given that NVCC can be provided by multiple different sources (NVIDIA HPC SDK, CUDA Toolkit, distro)
each of which has a different layout, we need to extract the CUDA toolkit root from the compiler
itself, allowing us to support numerious different scattered toolkit layouts.

The NVIDIA HPC SDK specifically ships two copies of nvcc one in
`compilers/bin/` and one in `cuda/bin`. Thus when using
`compilers/bin/nvcc` the Toolkit root logic fails.
2021-02-08 12:13:01 -08:00
Brad King 9cddaad940 AddFileDependencies: Deprecate this unnecessary module
Document that one can call `set_property` directly instead.
2021-02-08 12:44:37 -05:00
Brad King 4841d38a7a MacroAddFileDependencies: Explicitly deprecate by documentation
This module has been discouraged since commit 1e20be319f (STYLE: add
documentation for MACRO_ADD_FILE_DEPENDENCIES(), 2009-07-14,
v2.8.0~433).  It has been listed in the `cmake-modules(7)` manual
as deprecated since commit df780bcc01 (Help: Move deprecated modules to
appropriate section., 2018-11-12, v3.14.0-rc1~374^2).  Add the explicit
deprecation mark in its documentation.
2021-02-08 12:34:15 -05:00
Brad King 777c14af82 MacroAddFileDependencies: Simplify implementation 2021-02-08 12:34:15 -05:00
Brad King 17d4138108 Merge topic 'AddFileDependencies-simplify'
0f6fc388ea AddFileDependencies: Avoid leaking temporary variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !5779
2021-02-08 12:22:23 -05:00
Anakin Skywalker 0f6fc388ea AddFileDependencies: Avoid leaking temporary variable
Convert `add_file_dependencies` to a function.
Simplify the implementation using `set_property` with `APPEND`.
2021-02-08 12:21:43 -05:00
Brad King 326cceaafc Merge topic 'cmake_library_architecture_better_multiarch_support'
657fc3a9a7 CMakeDetermineCompilerABI: Parse library arch from versioned paths

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5773
2021-02-08 12:05:07 -05:00
Brad King 4b406ead2a Merge topic 'FindGit-version-optimization-more'
c99dfd7be7 FindGit: Cache the version more effectively

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5774
2021-02-08 12:04:17 -05:00
Craig Scott 0110aa018d IOS_INSTALL_COMBINED: Support Xcode 12 (command line only)
Xcode 12 doesn't allow nested builds within the same build directory.
That means we can no longer do an install by building the install target
when IOS_INSTALL_COMBINED is true. We can, however, still do an install
by running the cmake_install.cmake script or executing cmake --install,
since there is no outer build and therefore the associated SDK can be
built as a sub-build.

The non-build methods previously didn't work when
IOS_INSTALL_COMBINED was true because the generated install script
and the CMakeIOSInstallCombined script both made certain assumptions
that relied on being part of a build. Those assumptions are now
removed. A side-effect of this work is that cpack now also works from the
command line when IOS_INSTALL_COMBINED is true.

Relates: #21282
Fixes: #20023
2021-02-08 18:02:46 +11:00
Johnny Jazeix 0aabeb0c30 CPack/NSIS: Add option for setting branding text
See https://nsis.sourceforge.io/Reference/BrandingText
for more information.

Fixes: #21479
2021-02-07 16:10:57 +01:00
Brad King acb33d0904 Merge topic 'fetchcontent-performance'
17e5516e60 FetchContent: Invoke steps directly and avoid a separate sub-build
4f3d1abbb4 ExternalProject: Refactor pre-configure steps to support no-target uses
23aab9ecce ExternalProject: Avoid scanning docs for keywords, use include_guard()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Acked-by: Michael Hirsch, Ph.D. <michael@scivision.dev>
Acked-by: Lars Melchior <lars.melchior@gmail.com>
Merge-request: !5749
2021-02-05 07:01:05 -05:00
Craig Scott c99dfd7be7 FindGit: Cache the version more effectively
In 315a200f0c (FindGit: Cache the GIT_EXECUTABLE version for the
current run, 2021-01-20), the GIT_VERSION_STRING was meant to be
cached after the first time it was computed for a given GIT_EXECUTABLE
location. That logic assumed GIT_VERSION_STRING would be visible in
the current scope, but it might not be. The global property alone is
enough to check whether the version has been determined previously,
so don't switch the logic based on whether GIT_VERSION_STRING is
defined or not.

Relates: #21703
2021-02-05 21:45:00 +11:00
Craig Scott 17e5516e60 FetchContent: Invoke steps directly and avoid a separate sub-build
The cost of setting up and executing a separate sub-build to do the
download, update and patch steps required for FetchContent population
can be significant with some platforms and CMake generators. Avoid the
sub-build altogether by invoking the step scripts directly.

Previously, if no generator was set (e.g. population was being done in
script mode), a generator needed to be available on the default PATH.
Since we no longer use a sub-build, this restriction is also now gone.

Fixes: #21703
2021-02-05 07:33:38 +11:00
Craig Scott 4f3d1abbb4 ExternalProject: Refactor pre-configure steps to support no-target uses
The mkdir, download, update and patch steps are used by
FetchContent during the configure phase of the main build. Because
these steps need a target, this has so far required a sub-build to be
set up. The changes here factor out the preparation of the scripts
from the creation of the targets, allowing future work to leverage these
steps without a sub-build (see #21703).

As part of the refactoring, some rationalisation of the stamp files,
repository info files and script names was done to make things more
consistent between download methods and step implementations.
Every download method now records its own specific repository info
in a file and that file is a dependency of the download step. The source
directory is also written to that file, so if the SOURCE_DIR changes, the
download will be retriggered (the existing implementation fails in this
scenario). Each download method now also has just one driver script
that implements the whole step (it may pull in other scripts to do its
task though). The patch step gained support for USES_TERMINAL as
a result of generalising the implementation for custom commands.

Fixes: #21748
2021-02-05 07:33:38 +11:00
Robert Maynard 657fc3a9a7 CMakeDetermineCompilerABI: Parse library arch from versioned paths
Teach CMake how to extract `CMAKE_<LANG>_LIBRARY_ARCHITECTURE` from
versioned paths such as `/usr/lib/gcc/x86_64-linux-gnu/9`. These kind of
paths are generated by NVHPC compilers.
2021-02-04 15:17:49 -05:00