Commit Graph

12226 Commits

Author SHA1 Message Date
Brad King 3071e27c76 Merge topic 'FindBoost-1.78'
d176ff71c0 FindBoost: Add support for Boost 1.78

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6804
2021-12-16 10:25:54 -05:00
William R. Dieter 612c0d49f4 VS: Fix detecting icx.exe with Intel Compiler toolsets newer than 2021
The logic added by commit 7808cbd644 (CMakeDetermineCompilerId: support
Intel DPC++ compiler toolset for VS gen, 2020-12-06, v3.20.0-rc1~330^2)
matches a specific toolset known to be the `icx.exe` compiler, and
assumes all other Intel C++ compilers (that are not DPC++) must be
`icl.exe`.

Since `icx.exe` is officially replacing `icl.exe`, use a regex that
matches the now-fixed set of toolsets known to use `icl.exe`.  Any other
Intel C++ compiler will be assumed to be `icx.exe`.

Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
2021-12-15 15:56:20 -05:00
Brad King d176ff71c0 FindBoost: Add support for Boost 1.78
Update the list of known versions.

Run the command

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

to extract dependencies from the 1.78.0 source tree.

The dependencies differ from those of 1.77:

* The `log` component no longer depends on `date_time`.

Fixes: #23016
2021-12-15 10:22:53 -05:00
Jukka Aho ed9ac756e8 FetchContent: Fix typo in documentation 2021-12-15 16:45:27 +02:00
Brad King 7f6cce63fc Merge topic 'android-system-stl'
38b00f8801 Android: Fix linking android_support for pre-21 system STL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6799
2021-12-14 09:40:17 -05:00
Ryan Prichard 38b00f8801 Android: Fix linking android_support for pre-21 system STL
This typo was introduced in commit 4dca078829 (Android: Link c++abi and
android_support when necessary, 2020-10-29, v3.20.0-rc1~541^2).

Fixes: #23004
2021-12-13 10:43:14 -05:00
Brad King 8595851d58 FindBLAS: Find OpenMP dependency quietly
The `find_package(OpenMP)` calls added/updated by:

* commit f7f3d8987a (FindBLAS: Add dependency of OpenBLAS on OpenMP for
                     BLA_STATIC, 2020-11-10, v3.20.0-rc1~492^2)
* commit 9ef82d95d8 (FindBLAS: Fix detection of OpenMP as dependency of
                     BLA_STATIC, 2021-04-07, v3.20.1~3^2)

were missing the `QUIET` option.

Fixes: #23000
2021-12-10 09:51:42 -05:00
Brad King 2393020b4f Merge topic 'python3.11-support'
43844c5d82 FindPython: Add support for Python 3.11

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Marc Chevrier <marc.chevrier@gmail.com>
Merge-request: !6792
2021-12-08 09:53:59 -05:00
Tomáš Hrnčiar 43844c5d82 FindPython: Add support for Python 3.11 2021-12-07 12:41:01 -05:00
Brad King 79afbb2bb3 Merge topic 'lib-arch-no-usr'
d4ba945c48 CMakeParseLibraryArchitecture: Fix parsing /lib/<arch> implicit object path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6790
2021-12-07 09:37:29 -05:00
Brad King 0a46df3c91 Merge topic 'FindOpenSSL-applink'
586d483983 FindOpenSSL: Fix typo in applink condition

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6787
2021-12-07 09:33:26 -05:00
Raphael Gozzo d4ba945c48 CMakeParseLibraryArchitecture: Fix parsing /lib/<arch> implicit object path
The current regular expression is able to match `/usr/lib/<arch>`,
`/usr/usr/lib/<arch>`, `/usr/usr/usr/lib/<arch>`, ... but not
`/lib/<arch>`.

This behavior ends up causing the detected architecture to
be x86_64-pc-linux-gnu when the Clang compiler is installed on
a "non-system" location (like /opt/llvm-13) which, in turn, makes
almost every 'find_library()' fail because the correct
architecture is x86_64-linux-gnu.

This is due to a typo in commit 764606e256 (CMakeDetermineCompilerABI:
Extract lib arch from implicit object file paths, 2021-04-05,
v3.20.1~10^2), which used `+` instead of `?`.
2021-12-06 16:47:29 -05:00
Brad King ae48449cf0 FindOpenSSL: Search in lib64 directories on non-Windows platforms
The upstream `openssl` build system may install libraries to `lib64`
even on platforms whose conventions do not use `lib64` for
distro-packaged libraries.

Fixes: #22945
2021-12-06 12:03:08 -05:00
Brad King 586d483983 FindOpenSSL: Fix typo in applink condition
In commit 7b83ca816a (FindOpenSSL: add target OpenSSL::applink to
support OpenSSL's applink feature, 2020-05-12, v3.18.0-rc1~150^2) the
version check was written as "major.major.fix" instead of
"major.minor.fix".
2021-12-06 10:50:25 -05:00
Brad King 6627cc23b4 Merge topic 'FindPkgConfig-pkgconf'
90a49647e9 FindPkgConfig: Restore finding pkg-config before pkgconf

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6780
2021-12-03 08:53:26 -05:00
Brad King 90a49647e9 FindPkgConfig: Restore finding pkg-config before pkgconf
Since commit 94a84dc0af (FindPkgConfig: add pkgconf to the search list.,
2021-07-02, v3.22.0-rc1~468^2), `pkgconf` is preferred over `pkg-config`
if they appear in the same directory.  In some environments,
`pkg-config` may be a wrapper that adds semantics beyond either
`pkgconf` or the normal `pkg-config`.  Prefer `pkg-config` over
`pkgconf` in order to preserve the prior behavior in such environments.

Fixes: #22976
2021-12-02 12:38:22 -05:00
Brad King 3bb6e0dd00 Merge topic 'FindPython-static-libs-hint'
a35bf772de FindPython: clarify static libraries hint usage

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6772
2021-12-02 11:48:39 -05:00
Marc Chevrier a35bf772de FindPython: clarify static libraries hint usage
Fixes: #22956
2021-12-01 10:06:45 -05:00
Brad King dbf0c8c233 Merge topic 'GNUInstallDirs-freebsd-mandir'
c07bba2730 GNUInstallDirs: Update CMAKE_INSTALL_MANDIR for FreeBSD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6722
2021-12-01 09:42:13 -05:00
Brad King 6f05012126 Merge topic 'GNUInstallDirs-conda-fix'
7896991af0 GNUInstallDirs: Prefer system lib64 over conda lib when ambiguous

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6773
2021-12-01 09:34:33 -05:00
Brad King cab4551889 Merge topic 'GNUInstallDirs-conda-fix' into release-3.22
7896991af0 GNUInstallDirs: Prefer system lib64 over conda lib when ambiguous

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6773
2021-12-01 09:34:32 -05:00
Dmitry Marakasov c07bba2730 GNUInstallDirs: Update CMAKE_INSTALL_MANDIR for FreeBSD
FreeBSD has switched from PREFIX/man ro PREFIX/share/man
see https://cgit.freebsd.org/ports/tree/CHANGES entry 20200115.

Fixes: #22883
2021-11-30 12:16:37 -05:00
Robert Maynard 7896991af0 GNUInstallDirs: Prefer system lib64 over conda lib when ambiguous
Update logic added by commit ecaca8c129 (GNUInstallDirs now aware of
conda lib directory requirements, 2021-09-08, v3.22.0-rc1~142^2).
When it is ambiguous if we are doing a conda install or a system
install prefer using the system library directory.

Fixes: #22962
2021-11-30 10:51:33 -05:00
Brad King c8f039b77f Merge topic 'doc-CMAKE_INSTALL_MODE'
3caeee0c86 Help: Clarify CMAKE_INSTALL_MODE documentation
699d4a98e2 Help: Use definition list for allowed values of CMAKE_INSTALL_MODE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6743
2021-11-30 08:46:12 -05:00
Brad King 5109a22d61 Merge topic 'doc-CMAKE_INSTALL_MODE' into release-3.22
3caeee0c86 Help: Clarify CMAKE_INSTALL_MODE documentation
699d4a98e2 Help: Use definition list for allowed values of CMAKE_INSTALL_MODE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6743
2021-11-30 08:46:11 -05:00
Brad King b7c679f03a Merge topic 'compiler-id-classic-c'
0fc8b2f61c CompilerId: Restore support for classic C by avoiding C++ style comments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6759
2021-11-29 12:27:37 -05:00
Felix Lelchuk 3caeee0c86 Help: Clarify CMAKE_INSTALL_MODE documentation
Fixes: #22869
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
2021-11-24 08:30:38 +11:00
Brad King 0fc8b2f61c CompilerId: Restore support for classic C by avoiding C++ style comments
C++ style comments were added by commit fc3a1cbdd8 (CompilerID: Compiler
extensions default detection, 2021-05-29, v3.22.0-rc1~52^2~2), but they
may not be supported by the default mode of some C compilers.  Use
C-style comments instead.  For consistency, do this for all languages.

Fixes: #22942
2021-11-23 10:00:31 -05:00
Brad King df123f7d5f Merge topic 'FindGTest-target-for-gmock'
50bf457a0d FindGTest: Add target for gmock library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6632
2021-11-22 11:53:19 -05:00
Eero Aaltonen 50bf457a0d FindGTest: Add target for gmock library
`googlemock` has been absorbed into the
[googletest](https://github.com/google/googletest) project and is built
and installed from the same source tree.

As GTest may be built with or without GMock, skip GMock if it is not
present.

Do not provide result variables for GMock.  They are not provided by
upstream GTest's CMake Package Configuration File.

Also update the test case to cover linking to `GTest::gmock`.
2021-11-22 11:23:39 -05:00
Brad King 1cbb956b34 Merge topic 'GNUInstallDirs-multiarch-prefixes'
dd9584b352 GNUInstallDirs: Apply Debian multiarch LIBDIR to more prefixes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6748
2021-11-22 11:20:43 -05:00
Brad King 002e402489 Merge topic 'cudatoolkit_update_cusparse_deps'
fedca357d2 FindCUDAToolkit: Correct cusparse dependencies for 10.1, 11.2.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6745
2021-11-22 11:14:23 -05:00
Brad King 454344f35d Merge branch 'UseSWIG-create-workingdir' into release-3.22
Merge-request: !6750
2021-11-22 11:11:56 -05:00
Brad King 97ea8d30ed Merge topic 'UseSWIG-create-workingdir'
7224eb5185 UseSWIG: ensure directory for depfile exists

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6750
2021-11-22 11:10:15 -05:00
Robert Maynard fedca357d2 FindCUDAToolkit: Correct cusparse dependencies for 10.1, 11.2.2 2021-11-19 13:54:40 -05:00
Marc Chevrier 7224eb5185 UseSWIG: ensure directory for depfile exists
When `Visual Studio` and `Xcode` generators are used, directory for depfile
is not implicitely created by CMake when OUTFILE_DIR option is used.

Fixes: #22932
2021-11-19 17:50:52 +01:00
Mathieu Malaterre dd9584b352 GNUInstallDirs: Apply Debian multiarch LIBDIR to more prefixes
On typical Debian amd64 system (bullseye), multiarch is setup as:

```
% cat /etc/ld.so.conf.d/x86_64-linux-gnu.conf
/usr/local/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
```

Where:

```
% apt-cache policy libc6:amd64
libc6:
  Installed: 2.31-13+deb11u2
  Candidate: 2.31-13+deb11u2
  Version table:
 *** 2.31-13+deb11u2 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages
        100 /var/lib/dpkg/status
```

Update GNUInstallDirs to support all three cases `/`, `/usr/` and
`/usr/local/`.

Fixes: #19698
2021-11-19 09:40:06 -05:00
Brad King 3519c19091 Merge topic 'ghs_initial_setup'
aa59eaac4f GHS: Allow setting GHS variables from toolchain file
ab6f0b51b1 GHS: Add note about -T and path style
a55b5c4e18 GHS: Update BSP selection logic
0427f22539 GHS: Update RTOS selection logic
e006b87cc6 GHS: GHSMULTI - Update documentation to match implementation
83eb5695e9 GHS: Update toolset selection logic
8114ddcad1 GHS: Continue splitting variables used by generator
831607889f GHS: Update selection of primaryTarget in MULTI project file
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6715
2021-11-19 09:05:35 -05:00
Brad King 10d250f780 Merge topic 'FindHDF5-Fortran-without-HL'
86c697f49a FindHDF5: Fix Fortran compiler interrogation without HL library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6739
2021-11-18 09:02:46 -05:00
Håkon Strandenes 86c697f49a FindHDF5: Fix Fortran compiler interrogation without HL library
When the HDF5 HL library is not available, FindHDF5 with Fortran does
not work.  The problem is because `cmake_hdf5_test.f90` tries to
"use h5lt" and "use h5ds", which comes from the HL library.
Then the basic compiler check fails completely.

The two "use" lines were added by commit 00405af0f1 (HDF5: Refactor the
use of compiler wrappers, 2016-04-04, v3.6.0-rc1~85^2) along with the
rest of the check.  Remove them.

Fixes: #22890
2021-11-17 09:22:41 -05:00
Brad King 908d2cd136 Merge topic 'gtest_discover_tests-PRE_TEST-dep'
1bf6d5979d gtest_discover_tests: Re-run PRE_TEST discovery on any arg change
715af43124 Tests: Fix and update wrongly named GoogleTest stdout file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6728
2021-11-17 08:44:29 -05:00
Brad King ed9b971694 Merge topic 'gtest_discover_tests-PRE_TEST-dep' into release-3.22
1bf6d5979d gtest_discover_tests: Re-run PRE_TEST discovery on any arg change
715af43124 Tests: Fix and update wrongly named GoogleTest stdout file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6728
2021-11-17 08:44:28 -05:00
Craig Scott 1bf6d5979d gtest_discover_tests: Re-run PRE_TEST discovery on any arg change
Fixes: #22912
2021-11-16 09:45:26 -05:00
Brad King d98b61c687 Merge topic 'clang_windows_thinlto'
3155b23260 Clang/Windows: Use ThinLTO if possible to match other platforms

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6730
2021-11-16 09:06:10 -05:00
Fred Baksik aa59eaac4f GHS: Allow setting GHS variables from toolchain file
* Update generator to use the current variable definition,
  not the CACHE definition.
* Avoid overwriting toolchain variables and avoid developer warnings
  when setting up the GHS variables.
  -- A cache entry is only required when:
     a) The toolchain uses set( CACHE ) to set the variable
     b) A -D or preset value was used to set the variable

     The cache entry is required so that the TYPE gets set properly.

  -- Avoid the Policy CMP0126 warnings:
     setting cache variable when normal variable exists
* Move GHS_PRIMARY_TARGET back into area so non-GHS generator
  toolchain file can trigger the OS search.
2021-11-15 13:15:12 -05:00
Fred Baksik a55b5c4e18 GHS: Update BSP selection logic
Selection of a BSP only needs to be performed if not set by user.

Remove all the logic for printing error and status messages about BSP
selection. These messages also breaks CMake tests.

NOTE: If BSP selection fails then the compiler checks will result in
a build error.  The build error will report that the BSP does not exist.
2021-11-15 13:15:11 -05:00
Fred Baksik 0427f22539 GHS: Update RTOS selection logic
Selection of an RTOS only needs to be performed if not set by user.

Avoid CMake developer warnings for setting GHS_OS_DIR multiple times.
Instead only set it once after searching has been performed.

Remove all the logic for printing error and status messages about RTOS
selection.  This was broken and reporting incorrect messages.  These
messages also breaks CMake tests.

NOTE: If RTOS selection fails then the compiler checks will result in
a build error.  The build error will report that the RTOS
"GHS_OS_DIR-NOT-SPECIFIED" does not exist.
2021-11-15 13:15:11 -05:00
Fred Baksik 83eb5695e9 GHS: Update toolset selection logic
-- Ensure that GHS_TOOLSET_ROOT is used as a path
   * Converts directory path slashes to CMake style
-- Use ComparePath() to properly check for path changes of build tool
   * Accounts for Windows file-system case insensitivity.
-- Don't print message "defaulting" messages (this causes CMake test failures)
-- Don't force update CMAKE_GENERATOR_TOOLSET back into cache when `-T`
   is not used on initial configure. This change avoids an unnessary
   error message when accidentally using `-T` in subsequent runs but the same
   tools are always used.
-- Use IssueMessage() for error messages.
2021-11-15 13:15:10 -05:00
Fred Baksik 8114ddcad1 GHS: Continue splitting variables used by generator
This makes it easier to use GHS-MULTI platform in other generators
that want to use the GHS-MULTI platform and compilers.
2021-11-15 13:15:10 -05:00
Fred Baksik 831607889f GHS: Update selection of primaryTarget in MULTI project file
Changes to ``-A`` handling:
* Don't force CMAKE_GENERATOR_PLATFORM into cache when using default
  value (breaks using CMake presets).
* Don't print message when using default value (breaks CMake tests).

Changes to ``GHS_PRIMARY_TARGET`` handling:
* Add as a cache variable so its known to GUI
* Don't always include``GHS_TARGET_PLATFORM``, it's only needed if
  ``GHS_PRIMARY_TARGET`` wasn't set by the user.
* Set ``GHS_PRIMARY_TARGET`` during platform selection instead of when
  a language is enabled.  By performing this sooner
  ``GHS_TARGET_PLATFORM`` is not always required to be set into cache.
2021-11-15 13:15:10 -05:00