Commit Graph

12770 Commits

Author SHA1 Message Date
Christoph Seitz 94df5b6ef1 Tasking: Add support for several compiler toolsets
Add support for the Tasking compiler toolset:

* TriCore Compiler Toolset 6.3 (with TriCore, ARM, MCS,
  8051 and PCP architecture compilers)
* SmartCode Compiler Toolset 10.1 (with TriCore, ARC, MCS,
  8051 architecture compilers)
* ARM Compiler 6.0
* MCS Complier 3.3
* 8051 Compiler 7.2

Fixes: #23756
2022-09-14 09:58:50 -04:00
Brad King 9ffd170d27 Merge topic 'FindMPI-more-robust-conditionals'
08dece8b18 FindMPI: remove unnecessary variable expansions in conditionals
1edc2f337f FindMPI: match full language names when "simplifying"
93b5bdb8b4 FindMPI: quote literal values

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7666
2022-09-13 09:49:06 -04:00
Brad King 4aeb887c82 Merge topic 'ExternalProject-cmake-install'
66b5d51f38 ExternalProject: Install CMake projects using 'cmake --install'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7655
2022-09-13 09:47:31 -04:00
Brad King 358a49ef9b Merge topic 'LINUX-host'
caffb15d09 LINUX: Set CMAKE_HOST_LINUX variable when running on a Linux host

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: hinell <al.neodim@gmail.com>
Merge-request: !7661
2022-09-13 09:46:01 -04:00
Harry Mallon 66b5d51f38 ExternalProject: Install CMake projects using 'cmake --install'
In some cases, `cmake --install .` implements additional semantics over
just `cmake --build . --target install`.  For example, using the Xcode
"new build system" with `IOS_INSTALL_COMBINED` requires special support
from `cmake --install` beyond building the `install` target.

Fixes: #23946
2022-09-12 09:53:22 -04:00
Brad King 64f4bb5728 Merge topic 'fetchcontent-redirect-version-exact'
48b380c961 FetchContent: Ignore EXACT for redirected find_package() calls

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7665
2022-09-12 09:38:07 -04:00
Brad King db715b6632 Merge topic 'FortranCInterface-LLVMFlang'
0f5b6dd215 FortranCInterface: Add support for LLVMFlang mangling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7658
2022-09-12 09:36:07 -04:00
Ben Boeckel 08dece8b18 FindMPI: remove unnecessary variable expansions in conditionals 2022-09-12 09:35:48 -04:00
Ben Boeckel 1edc2f337f FindMPI: match full language names when "simplifying"
There is no reason `CSharp` should go down this codepath (assuming it
ever gets here in the first place).
2022-09-12 09:34:16 -04:00
Ben Boeckel 93b5bdb8b4 FindMPI: quote literal values
Some projects accidentally end up doing the equivalent of `set(0 1)`
which makes things work very poorly here. Be more defensive.

See: #23954
2022-09-12 09:32:05 -04:00
Craig Scott b9175800a2 Merge topic 'fetchcontent-unset-wrong-nested-var'
d9a6e0ffc8 FetchContent: Fix unsetting wrong variable name after provider returns

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7663
2022-09-11 18:09:11 -04:00
Craig Scott 48b380c961 FetchContent: Ignore EXACT for redirected find_package() calls
When FetchContent_MakeAvailable() populates a dependency for which
find_package() integration is enabled, all future calls to find_package()
MUST succeed using the contents of the redirection directory. The
generated config version file was not handling calls where the EXACT
keyword was given, resulting in such calls rejecting the redirection
directory's contents and continuing its search. It is not allowed to do
that. Fix the generated file to also set PACKAGE_VERSION_EXACT to
true so that calls with EXACT now accept it, as was originally intended.

Fixes: #23950
2022-09-11 18:36:31 +10:00
Craig Scott d9a6e0ffc8 FetchContent: Fix unsetting wrong variable name after provider returns
The unset() command was using __cmake_contentNameLower before that
variable was restored from the __cmake_fcCurrentVarsStack. That means
if there had been a nested call to FetchContent_MakeAvailable(), the wrong
variable name would have been cleared (the nested name instead of the
one from the current call). That would have left the variable set upon return,
blocking the dependency provider from seeing any further calls to
FetchContent_MakeAvailable() in the current variable scope or below for the
current dependency.
2022-09-10 18:23:21 +10:00
Cristian Adam caffb15d09 LINUX: Set CMAKE_HOST_LINUX variable when running on a Linux host
Relates: #23840
2022-09-09 20:10:43 +02:00
Gilles Gouaillardet 0f5b6dd215 FortranCInterface: Add support for LLVMFlang mangling
The following `module.f90` file

    module mymodule
    contains
      subroutine mysub()
      end subroutine
    end module

when compiled with `flang-new` (from LLVM 15.0.0) generate the
`_QMmymodulePmysub` symbol.

    $ flang-new -c module.f90
    $ nm module.o
    0000000000000000 T _QMmymodulePmysub

This commit fixes the regular expressions accordingly.
2022-09-09 10:37:56 -04:00
Brad King 12de4ea2e8 Merge topic 'fphsa-error-message-empty-version-var'
8f50f135ae FPHSA: Improve error message when VERSION_VAR is empty or has been unset()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7527
2022-09-09 10:06:45 -04:00
Brad King e71605dfb4 Merge topic 'BSD'
1ea8b8ed86 BSD: Set CMAKE_HOST_BSD variable on a BSD host
288f72efea BSD: Only use BSD as variable for target BSD system

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7648
2022-09-09 10:05:41 -04:00
Marc Chevrier 281113af87 Merge topic 'useswig-perl-module'
5156eb5613 UseSWIG: track generated Perl module files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7654
2022-09-09 10:04:50 -04:00
Brad King 08930f76ef Merge topic 'fetchcontent-extra'
629d106c5e Help: Fix typo in FetchContent example, extras should read extra

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: hinell <al.neodim@gmail.com>
Merge-request: !7657
2022-09-09 09:53:41 -04:00
Mathieu Malaterre 629d106c5e Help: Fix typo in FetchContent example, extras should read extra
Amends 29e31e2825 (Packages: Integrate FetchContent and
find_package(), 2022-04-28)
2022-09-09 20:08:32 +10:00
Thomas Weißschuh 5156eb5613 UseSWIG: track generated Perl module files
This makes sure the generated file is cleaned properly and allows to
create dependencies on it.
2022-09-08 14:55:46 +02:00
Andrea Pappacoda 8f50f135ae FPHSA: Improve error message when VERSION_VAR is empty or has been unset()
Previously, when `VERSION_VAR` is set but empty, FPHSA emitted a
confusing error message, saying that the package was found but of an
unsuitable version "".  Fix the error message to state that the package
was not found.

Fixes: #23807
2022-09-07 10:11:06 -04:00
Brad King c3dafa24b2 Merge topic 'cpack-reuse-cmake-tools'
0c638ab597 CPack: re-use paths of tools discovered by CMakeFindBinUtils

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7635
2022-09-07 09:49:12 -04:00
Brad King dae13c214f Merge topic 'cuda_support_sm90a'
234aa7e0aa CUDA: Support upcoming sm90a architecture

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7649
2022-09-07 09:48:25 -04:00
Brad King 8fe6d06c2c Merge topic 'zlib-windows-cross-compile-fix'
67b6f1a09b FindZLIB: fix CMAKE_FIND_LIBRARY_PREFIXES being unset when it was empty

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7647
2022-09-07 09:42:12 -04:00
Brad King 9a916eaae3 Merge topic 'zlib-windows-cross-compile-fix' into release-3.24
67b6f1a09b FindZLIB: fix CMAKE_FIND_LIBRARY_PREFIXES being unset when it was empty

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7647
2022-09-07 09:42:11 -04:00
Brad King f6813c4159 Merge topic 'findCUDAToolkit_declare_deps_for_targets_once'
f0918fe505 FindCUDAToolkit: Correctly state cusolver and cublas dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7633
2022-09-07 09:38:01 -04:00
Brad King 6a2fd8439a Merge topic 'findCUDAToolkit_declare_deps_for_targets_once' into release-3.24
f0918fe505 FindCUDAToolkit: Correctly state cusolver and cublas dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7633
2022-09-07 09:38:00 -04:00
Robert Maynard 234aa7e0aa CUDA: Support upcoming sm90a architecture
The architecture values are being extended to have at time
a trailing `a`. This updates the CMake regex to support
this syntax.
2022-09-06 11:09:46 -04:00
Daniel Scharrer 67b6f1a09b FindZLIB: fix CMAKE_FIND_LIBRARY_PREFIXES being unset when it was empty
CMAKE_FIND_LIBRARY_PREFIXES and CMAKE_FIND_LIBRARY_SUFFIXES have
different behavior when undefined and when defined but empty:
Empty means to use an empty prefix/suffix while undefined means to
use a hardcoded default for the platform we are running on.

Unfortunately, set(a ${b}) will undefine a when b is empty,
meaning that when targeting a platform where either of these variables
is empty (e.g. Windows where CMAKE_FIND_LIBRARY_PREFIXES is empty)
the unpatched FindZLIB code ends up unsetting that variable, causing
all subsequent find_library calls to use the hardcoded default
for the runtime platform (e.g. "lib" for CMAKE_FIND_LIBRARY_PREFIXES
on Linux).

On the other hand, set(a "${b}") will always define a to be empty but
defined so we have to do this dance to fully preserve the state of these
variables.
2022-09-06 11:05:23 -04:00
Matteo Martelli 0c638ab597 CPack: re-use paths of tools discovered by CMakeFindBinUtils
`CMakeFindBinUtils.cmake` sets `CMAKE_<TOOL>` variables that in
cross-compilation environments point to the toolchain specific
executables: e.g. `CMAKE_OBJCOPY` might point to
`<path_to_toolchain>/arm-poky-linux-gnueabi-objcopy`.
Pass this information to CPack.
2022-09-06 09:49:54 -04:00
Brad King 138337f53c Merge topic 'implicit-link-info-msvc'
93f2cd5b7c CMakeParseImplicitLinkInfo: Better detection of msvc

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7619
2022-09-06 09:02:05 -04:00
Cristian Adam 1ea8b8ed86 BSD: Set CMAKE_HOST_BSD variable on a BSD host
Also the BSD variable will be set in CMake scripting mode (-P).

Relates: #23853
2022-09-06 01:15:44 +02:00
Cristian Adam 288f72efea BSD: Only use BSD as variable for target BSD system
Instead of having multiple boolean variables, we only have one
string variable: BSD with the name of the target BSD system.

Relates: #23853
2022-09-06 01:02:34 +02:00
Craig Scott c14494f19f Merge topic 'doc-fetchcontent-gtest-example'
daa2a6cda6 Help: Fix wrong casing of GTest in FetchContent integration example

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7644
2022-09-05 08:20:24 -04:00
Craig Scott 6fcdd5adcf Merge topic 'doc-fetchcontent-gtest-example' into release-3.24
daa2a6cda6 Help: Fix wrong casing of GTest in FetchContent integration example

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7644
2022-09-05 08:20:23 -04:00
Craig Scott 9bbd5f71e9 Merge topic 'ExternalProject-default-git-tag'
2a21555ea7 ExternalProject: note the default of `GIT_TAG` being `master`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7631
2022-09-04 09:35:15 -04:00
Craig Scott daa2a6cda6 Help: Fix wrong casing of GTest in FetchContent integration example 2022-09-04 17:18:09 +10:00
Robert Maynard f0918fe505 FindCUDAToolkit: Correctly state cusolver and cublas dependencies
Fixes #23920
2022-09-02 12:24:40 -04:00
Brad King 4f91d9d2c7 Merge topic 'CMakeFindFrameworks-brew-arm64'
5bfe33f092 CMakeFindFrameworks: Fix Brew 'Frameworks' path on Apple Silicon

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7618
2022-09-02 09:00:09 -04:00
Brad King de2b305ddd Merge topic 'matlab_root'
72dd680609 FindMatlab: follow CMP0074 <PackageName>_ROOT search behavior
ba74c58ca4 FindMatlab: add'l check that Matlab test version file exists

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7616
2022-09-02 08:55:59 -04:00
Ben Boeckel 2a21555ea7 ExternalProject: note the default of GIT_TAG being master
Reported on Discourse:

    https://discourse.cmake.org/t/fetchcontent-makeavailable-invalid-reference-master/6386
2022-09-02 08:20:53 -04:00
Robert Maynard 93f2cd5b7c CMakeParseImplicitLinkInfo: Better detection of msvc
Use the compiler id information in addition to checking for `cl.exe`.
2022-09-02 08:04:39 -04:00
Jean-Baptiste Noël 5bfe33f092 CMakeFindFrameworks: Fix Brew 'Frameworks' path on Apple Silicon
This approach is compatible with both Intel and Apple Silicon
architectures.

`/usr/local/Frameworks` was added in commit 9970cdcb59
(CMakeFindFrameworks: Allow custom framework locations, 2016-07-30,
v3.7.0-rc1~296^2) unconditionally, but does not work on Apple Silicon.

```
x86_64 (Intel macOS):
$ brew --prefix
/usr/local

arm64 (Apple Silicon macOS):
$ brew --prefix
/opt/homebrew
```
2022-09-01 11:21:43 -04:00
Michael Hirsch 72dd680609 FindMatlab: follow CMP0074 <PackageName>_ROOT search behavior 2022-09-01 10:48:13 -04:00
Michael Hirsch ba74c58ca4 FindMatlab: add'l check that Matlab test version file exists
this last resort check is for some HPC with "module load matlab"
not enacted that fail to catch in earlier checks. That would
error CMake configure even if find_package(Matlab) is not REQUIRED
2022-09-01 10:35:41 -04:00
Brad King d10cbb0590 Merge topic 'add_language_levels_for_cxx26'
f808d8afb9 CMake: Support upcoming C++26 language level

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !7601
2022-09-01 10:04:46 -04:00
Brad King 61418f33ea Merge topic 'FindPostgreSQL-brew'
f799e0f23d FindPostgreSQL: Add brew-style directories to search path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7627
2022-09-01 09:59:29 -04:00
Robert Maynard f808d8afb9 CMake: Support upcoming C++26 language level 2022-08-31 13:46:18 -04:00
parkesb f799e0f23d FindPostgreSQL: Add brew-style directories to search path
As of 14.5, homebrew names PostgreSQL directories with the version
number, e.g., `postgresql@14`.
2022-08-31 10:37:13 -04:00