13367 Commits

Author SHA1 Message Date
Christian Oyarzun
efa0e2ddaf FindJNI: Update for Xcode greater than 12.1 on macOS
`JavaVM.framework` was removed from Xcode in version 12.2+.

Fixes: #23364
2023-08-07 16:09:22 -04:00
Marc Chevrier
b02f3872d0 FindPython: Restore Python_SITE* values for versions below 3.10
Debian based distributions have a buggy sysconfig package.
So, rely on distutils.sysconfig if python version is less than 3.10.

Fixes: #25135
2023-07-31 15:00:44 -04:00
Brad King
3ea7204de4 Merge topic 'FindOpenSSL-trust-root-dir' into release-3.27
791d4fd350 FindOpenSSL: Prefer OPENSSL_ROOT_DIR only if non-empty

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8643
2023-07-21 09:37:28 -04:00
Brad King
b4693ea408 Merge topic 'FindCUDAToolkit-libnvrtc-builtins' into release-3.27
c2601d01d1 FindCUDAToolkit: Fix nvrtc_builtins library name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !8642
2023-07-21 09:35:09 -04:00
Brad King
791d4fd350 FindOpenSSL: Prefer OPENSSL_ROOT_DIR only if non-empty
Since commit 5cc8a69867 (FindOpenSSL: Trust the user's OPENSSL_ROOT_DIR,
2023-05-17, v3.27.0-rc1~71^2) we use `OPENSSL_ROOT_DIR` whenever it is
defined, even if it is an empty string.  This breaks a pattern in
existing projects that define an empty `OPENSSL_ROOT_DIR` cache entry so
that `cmake-gui` users can fill it in.  Use the value only if non-empty.

Issue: #18352
2023-07-20 12:18:13 -04:00
Tomoharu Kitawaki
c2601d01d1 FindCUDAToolkit: Fix nvrtc_builtins library name
The lib is named `libnvrtc-builtins.so`, not `libnvrtc_builtins.so`.

Update the change from commit 2a94c762ed (FindCUDAToolkit: Add support
for CUDA::nvrtc_static, 2023-01-20, v3.26.0-rc1~55^2).  Apply a fix
similar to commit 9688a8ebc2 (FindCUDAToolkit: Fix
`nvrtc_builtins_static` library name, 2023-02-03, v3.26.0-rc2~15^2).
2023-07-20 11:34:47 -04:00
Brad King
a881ae61f1 Merge topic 'armclang-update-version-computation' into release-3.27
65fac2fa35 ARMClang: Fix computation of compiler semantic version patch level

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8636
2023-07-18 13:48:49 -04:00
Daniel Brondani
65fac2fa35 ARMClang: Fix computation of compiler semantic version patch level
According to ARMClang documentation 6.20, the patch version number
should not include the last two digits of `__ARMCOMPILER_VERSION`,
which are reserved for internal use by ARM.
2023-07-18 13:29:01 -04:00
Jannik Beyerstedt
6e90d79577 FindProtobuf: Fix new version number scheme
Revise the changes from commit fc7dcc6a24 (FindProtobuf: Support new
version number scheme, 2023-06-19, v3.27.0-rc3~2^2).  Changing the
content of `Protobuf_VERSION` to exclude the major version of the library
might break code as it can't be used to detect breaking changes in the
library any more.

However, protoc v22 and up don't print the major version any more, so we
need to compare the against a truncated version number, too.
2023-07-14 09:34:13 -04:00
Brad King
bfe4722a61 Android: Restore platform info and search paths shared with Linux
These were accidentally dropped by commit 1373373823 (enable_language:
Establish target platform identification variables earlier, 2023-06-06,
v3.27.0-rc1~3^2~1).

Fixes: #25077
2023-07-13 08:19:15 -04:00
Brad King
cd70f0f9eb Merge topic 'findprotobuf-mingw' into release-3.27
e978b3b814 FindProtobuf: Fix linking to shared libraries on MinGW

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8609
2023-07-07 10:29:30 -04:00
Brad King
f79428619e HIP: Fix search for hip-lang CMake package on Fedora distros
These distros package the hip-lang package under `lib64`, so search it
too.  This is similar to commit bae57dc281 (HIP: Fix search for hip-lang
CMake package on multiarch distros, 2023-05-31, v3.27.0-rc1~28^2).

Fixes: #25050
2023-07-05 12:37:34 -04:00
مهدي شينون (Mehdi Chinoune)
e978b3b814 FindProtobuf: Fix linking to shared libraries on MinGW
Fixes: #25011
2023-07-05 08:25:01 -04:00
Brad King
9ede4cab2b FetchContent: Protect ExternalProject keywords from unknown arguments
`ExternalProject_Add` treats all keyword arguments as multi-valued.
FetchContent re-orders some keyword arguments w.r.t. unparsed arguments.
Add an internal keyword argument to separate the keyword values from
following unparsed arguments.

This was exposed by commit 550f63447d (ExternalProject/FetchContent:
Support relative remote URLs, 2023-04-21, v3.27.0-rc1~156^2) by adding
`GIT_REPOSITORY` to the set of re-ordered keyword arguments.  This
caused its value to absorb following unparsed arguments.

Fixes: #25029
2023-06-29 09:49:51 -04:00
Brad King
b1d2c495dd Merge topic 'FindCxxTest-doc' into release-3.27
676d1da38b FindCxxTest: Modernize documentation formatting
dfe0f58962 FindCxxTest: Update link to cxxtest project page

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8589
2023-06-26 09:45:45 -04:00
Brad King
b7810bfb18 Merge topic 'support_nvhpc_versions_without_isystem' into release-3.27
f73ae7c510 NVHPC: Support nvfortran versions that don't support isystem

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8588
2023-06-26 09:44:56 -04:00
Brad King
676d1da38b FindCxxTest: Modernize documentation formatting 2023-06-23 12:20:03 -04:00
Brad King
dfe0f58962 FindCxxTest: Update link to cxxtest project page 2023-06-23 12:20:03 -04:00
Robert Maynard
f73ae7c510 NVHPC: Support nvfortran versions that don't support isystem
Fixes: #25019
2023-06-23 12:14:09 -04:00
Marc Chevrier
5945a98ced link dependencies: deactivate the feature
Unfortunately it breaks in combination with LTO due to a bug in the GNU
linker.

Fixes: #25014
2023-06-23 10:35:04 -04:00
Brad King
fd949f6e01 Merge topic 'android-platform-vars' into release-3.27
ab66b89a46 Android: Restore platform id vars with legacy toolchain file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8576
2023-06-20 13:09:58 -04:00
Brad King
ab66b89a46 Android: Restore platform id vars with legacy toolchain file
Restore definition of `ANDROID` and `UNIX` when `CMAKE_SYSTEM_VERSION`
is `1`.  This was broken by commit 1373373823 (enable_language:
Establish target platform identification variables earlier, 2023-06-06,
v3.27.0-rc1~3^2~1).

Fixes: #25004
2023-06-20 10:39:37 -04:00
Jannik Beyerstedt
fc7dcc6a24 FindProtobuf: Support new version number scheme
Protobuf changed it's version number scheme with version 21. The first number
(usually the major version) is not synchronized between compiler and library
version, but the second and third number are. See
https://protobuf.dev/news/2022-05-06/ for more details.

Fixes: #24847
2023-06-20 09:59:53 -04:00
Brad King
80ba2cccfc FindPostgreSQL: Add support for version 15 2023-06-16 08:21:04 -04:00
Brad King
4a2b708144 Modules: Restore unnecessary inclusions for compatibility
Since commit 03c6ebf2b5 (Modules:Check,GenerateExportHeader: include
only what's needed, 2023-03-09, v3.27.0-rc1~327^2) some existing
projects broke because they were accidentally relying on indirect
inclusion of some check modules.  For now, restore the unnecessary
includes for compatibility.  They can be removed with a policy later.

Fixes: #24991
Issue: #24994
2023-06-12 09:59:23 -04:00
Brad King
abc93ff511 Merge topic 'FindCUDAToolkit-cupti-nvperf' into release-3.27
f9579ffaa6 FindCUDAToolkit: Add cupti nvperf and pcsampling targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8545
2023-06-08 10:48:09 -04:00
Robert Maynard
f9579ffaa6 FindCUDAToolkit: Add cupti nvperf and pcsampling targets 2023-06-07 13:58:09 -04:00
Brad King
e4c53cdc15 BinUtils: Drop now-unnecessary cross-compiling workaround for Apple hosts
Previously we added fallbacks to `llvm-{ar,strip}` on Apple hosts
in case of cross-compiling because the `APPLE` platform variable
was not set w.r.t. the target platform.  The platform variable
has been fixed, so remove the fallbacks.

Issue: #23333
2023-06-07 07:02:20 -04:00
Brad King
1373373823 enable_language: Establish target platform identification variables earlier
Set target platform identification variables like `APPLE` and `LINUX`
as soon as the target system is identified.  This makes them available
during toolchain and binutils selection.

Fixes: #23333
2023-06-07 07:02:20 -04:00
Brad King
1d916bf3d2 kFreeBSD,GNU: Provide multiarch library directory regex earlier
Make `CMAKE_LIBRARY_ARCHITECTURE_REGEX` available while determining
compilers before `Platform/{kFreeBSD,GNU}` is loaded.

Follow up commit cc737ae829 (Linux: Provide multiarch library directory
regex earlier, 2023-05-31).
2023-06-06 15:35:20 -04:00
Brad King
ec472999dc Merge topic 'apple-clang-asm-compiler-id'
8c789bee83 AppleClang: Fix ASM compiler identification

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8537
2023-06-06 10:00:52 -04:00
Brad King
1ad77d7029 Merge topic 'FindPython-distutils-deprecation'
988ac305bd FindPython: update for distutils module deprecation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8538
2023-06-06 09:54:04 -04:00
Gregor Jasny
8c789bee83 AppleClang: Fix ASM compiler identification
Recent AppleClang compilers identify themselves as
`Apple clang version 14.0.3 (clang-1403.0.22.14.1)`.
2023-06-05 17:31:35 -04:00
Marc Chevrier
988ac305bd FindPython: update for distutils module deprecation
Fixes: #24956
2023-06-05 11:22:03 +02:00
Brad King
5a77c2e02a FindOpenACC: Keep flags together in imported target usage requirements
If `OpenACC_C_FLAGS` contains `-h acc`, the flag pair needs to
be preserved as a shell command fragment, and must not be split by
de-duplication with other `target_compile_options`.

Fixes: #24963
2023-06-02 09:15:40 -04:00
Brad King
56ff12501f FindOpenMP: Keep flags together in imported target usage requirements
If `OpenMP_C_FLAGS` contains `-Xclang -fopenmp`, the flag pair needs to
be preserved as a shell command fragment, and must not be split by
de-duplication with other `target_compile_options`.

Fixes: #24966
2023-06-01 15:18:33 -04:00
Brad King
9a63aa8d57 Merge topic 'ep-tls-verify'
dcbc36572f ExternalProject: Respect TLS_VERIFY for git update step
8fdce89f70 Help: Clarify default TLS_VERIFY behavior for git download method

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8516
2023-06-01 11:42:21 -04:00
Craig Scott
dcbc36572f ExternalProject: Respect TLS_VERIFY for git update step
Git config options can be passed to git clone before or after the
"clone" keyword. If specified before, the config setting is only
applied to that command invocation. It acts to override the value
in the global or project defaults (the latter doesn't exist for clone).
When the config setting is passed after the "clone" keyword, it is
saved into the cloned repository's config and will persist for later
git operations. The existing implementation expected the latter
behavior, but put the config setting before the "clone" keyword
and therefore the setting was not persisting to the git update
step. Move it to after the "clone" keyword so that it will persist.

The submodule handling is different. There is no support for
doing a "git submodule update" with a "sticky" config setting.
Instead, you have to pass the setting with all such calls. The
existing implementation was doing this for the clone step, but
not the git update step. Add the config setting there as well
so that submodules also effectively have the sslVerify setting
persist to the update step too.

Fixes: #18948
2023-06-01 10:27:07 +10:00
Brad King
bae57dc281 HIP: Fix search for hip-lang CMake package on multiarch distros
We need `CMAKE_LIBRARY_ARCHITECTURE` to find the package before HIP
compiler ABI detection.  However, if HIP is the first enabled language,
the value is not known until `CMAKE_HIP_LIBRARY_ARCHITECTURE` is
determined by the ABI detection step.  Resolve this by detecting
`CMAKE_HIP_LIBRARY_ARCHITECTURE` from the compiler id output.

Fixes: #24562
2023-05-31 16:53:47 -04:00
Brad King
cc737ae829 Linux: Provide multiarch library directory regex earlier
Make `CMAKE_LIBRARY_ARCHITECTURE_REGEX` available while determining
compilers before `Platform/Linux` is loaded.
2023-05-31 16:52:54 -04:00
Brad King
0dc3e6894f Merge topic 'find-boost-1.82'
5cbbe55de8 FindBoost: Add support for Boost 1.82

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8514
2023-05-31 09:40:24 -04:00
huangqinjin
5cbbe55de8 FindBoost: Add support for Boost 1.82
Update the list of known versions.

There is a new header-only library, Boost.MySQL. It has no
dependencies and has a core header `<boost/mysql.hpp>`.

Run the command

    cmake -DBOOST_DIR=/path/to/boost_1_82_0 \
      -P Utilities/Scripts/BoostScanDeps.cmake

to extract dependencies from the 1.82.0 source tree.
They are the same as 1.81's dependencies, so just update
the version check for warning about newer versions.
2023-05-31 09:29:16 -04:00
Brad King
888c235eca Merge topic 'werror_space_fix'
cec6f98018 CMakeDetermineCompilerABI: Avoid removing the flag after -Werror

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !8518
2023-05-31 09:25:08 -04:00
Raul Tambre
cec6f98018 CMakeDetermineCompilerABI: Avoid removing the flag after -Werror
The matching became too eager after commit 079ea66468
(CMakeDetermineCompilerABI: Handle NVCC-style -Werror flags, 2020-10-04,
v3.19.0-rc1~45^2). When -Werror was specified without a value we would
eat the following flag. Prevent this by disallowing "-" as the first
character of the flag's value.

Fixes: 079ea66468
See-also: https://discourse.cmake.org/t/8230
2023-05-30 11:03:09 -04:00
Craig Scott
8fdce89f70 Help: Clarify default TLS_VERIFY behavior for git download method 2023-05-28 20:16:19 +10:00
Marc Chevrier
0626b62cf2 Link Step: ensure the correct linker is used for depfile configuration
This is related to MR !8443.
2023-05-28 11:28:08 +02:00
Brad King
b8449712a3 Merge topic 'implicit-link-dir-exclude'
023de565d3 Optionally exclude implicit link directories via environment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Roscoe A. Bartlett <rabartl@sandia.gov>
Merge-request: !8506
2023-05-26 09:27:23 -04:00
Brad King
023de565d3 Optionally exclude implicit link directories via environment
A misconfigured compiler may pass extraneous implicit link directories
to its linker.  If they are in `CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES`,
CMake may generate extra `-L` flags on mixed-language link lines that
break linking.  Add an environment variable that users can set to work
around such misconfiguration of their compilers.
2023-05-25 13:42:58 -04:00
William R. Dieter
9875b11969 IntelLLVM: Use compiler driver as linker for MODULE libraries too
Since commit 79921fb00c (IntelLLVM: Set linker to compiler driver for
Windows, 2021-10-19, v3.23.0-rc1~127^2) we default to the compiler
driver as linker for executables, shared libraries, and static
libraries.  Not doing so for shared modules was an oversight.  Copying
the shared library command line for shared modules fixes the problem
(and also is what we do for MSVC).

The MSVC linker is fine for many cases, however it does not support GPU
offload code generated by the IntelLLVM compilers.  Using the compiler
driver as linker, or at least a linker that understands the object
format, is required for linking shared modules that use GPU offload
(e.g., with SYCL or OpenMP).

Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
2023-05-25 13:17:41 -04:00
Brad King
d491ea1973 Merge topic 'ep-update-disconnected'
8cc45e150a ExternalProject: Make hg download method respect UPDATE_DISCONNECTED
1512dc43cb ExternalProject: Avoid reconfigure when updates are disconnected
1d29cf37a1 Tests: Reduce warning noise in ExternalProjectUpdate test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8498
2023-05-23 11:06:19 -04:00