summaryrefslogtreecommitdiffstats
path: root/Modules
Commit message (Collapse)AuthorAgeFilesLines
* CompilerId: Fix default extensions check for Clang targeting MSVC ABIBrad King2022-02-033-7/+4
| | | | | | | | | | | | | In commit fc3a1cbdd8 (CompilerID: Compiler extensions default detection, 2021-05-29, v3.22.0-rc1~52^2~2), extensions were assumed to be `OFF` for Clang targeting the MSVC ABI. However, the `clang` and `clang++` tools both seem to have extensions enabled by default even when targeting the MSVC ABI. This can be observed with the `RunCMake.CompileFeatures` test. It fails with the GNU-like `clang/clang++` front-end, but removing the above special case makes it pass. The test passes either way with the MSVC-like `clang-cl` front-end.
* IAR/CXX: Fix compatibility with CMP0057 OLDRaul Tambre2022-01-291-3/+6
| | | | | | | | | | Commit a9073db7 (IAR: update language specification detection, 2021-09-23) added usage of the if() IN_LIST operation and forgot to account for it not being available in CMP0057 OLD mode. Push and temporarily enable the policy. Also avoid the unnecessary temporary variable for the list. Fixes #23147.
* Merge topic 'FindThreads-libc-pthread-flag' into release-3.22Brad King2022-01-271-8/+11
|\ | | | | | | | | | | | | 5efb6fb516 FindThreads: Honor THREADS_PREFER_PTHREAD_FLAG when pthread is found in libc Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6906
| * FindThreads: Honor THREADS_PREFER_PTHREAD_FLAG when pthread is found in libcMattias Ellert2022-01-261-8/+11
| | | | | | | | | | | | | | | | The `-pthread` flag tells the compiler/linker to link to additional libraries needed for thread support (e.g. libatomic on riscv64). The flag therefore should be used if requested using `THREADS_PREFER_PTHREAD_FLAG` also when the pthread functions are found in libc.
* | FindMPI: Place static first in mpi test sourceBrad King2022-01-251-1/+1
| | | | | | | | | | | | | | | | Move the `static` added by commit 8cce0ad32f (FindMPI: Fix missing static warning in the mpi test source, 2021-06-30, v3.22.0-rc1~502^2) to the beginning of the line. Fixes: #23141
* | XL: Detect default extensions mode for legacy compilerRaul Tambre2022-01-232-2/+2
| | | | | | | | | | The legacy non-Clang variant seems to support a GNU-like extensions mode, which is the default. Enable detection for it.
* | FortranCInterface: Fix compatibility with GCC gfortran 12 LTOBjörn Esser2022-01-191-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since version 12.0 the GCC Fortran compiler has implemented "WG5/N1942", which causes, if link-time opmization is enabled, obfuscation of hard-coded string values in the compiler objects and its resulting ELF-binaries. This causes the CMake-internal detection of the mangling scheme for the naming of subroutines to fail. Thus we must ensure to have any link-time optimization features to be disabled on the executable file we perform the detection on. The static libraries, however, must be build with LTO and non-LTO objects, as that will ensure the verify step will operate on IPO objects, if building those is requested by the system compiler flags. Fixes: #23123 Signed-off-by: Björn Esser <besser82@fedoraproject.org>
* | MSVC: Use -external:I flag without space to support Clang toolsBrad King2022-01-112-2/+2
| | | | | | | | | | | | | | | | | | | | Since commit f29e1874ad (Compiler/MSVC: use the `-external:I` flag for system includes, 2020-05-19, v3.22.0-rc1~593^2) we use the new flag followed by the include directory as a separate argument. Some versions of `clang-cl` and `clang-tidy` do not support the flag unless the include directory is attached to it, so use that form instead. Fixes: #22979
* | ASM: Fix identification of armasm 6.17+Jukka Jalkanen2022-01-061-1/+1
| | | | | | | | Spelling of "ARM Compiler" changed to "Arm Compiler".
* | Merge topic 'FindBoost-1.78' into release-3.22Brad King2021-12-211-1/+1
|\ \ | | | | | | | | | | | | | | | | | | d45667d459 FindBoost: Do not warn about now-supported version 1.78 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6819
| * | FindBoost: Do not warn about now-supported version 1.78Brad King2021-12-201-1/+1
| | | | | | | | | | | | | | | | | | | | | In commit d176ff71c0 (FindBoost: Add support for Boost 1.78, 2021-12-15) we forgot to update the future-version check. Issue: #23016
* | | FindGLUT: Provide legacy GLUT_INCLUDE_DIR result in pkg-config code pathBrad King2021-12-171-0/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | Since commit f90d15458a (FindGLUT: Use pkg-config to find flags if available, 2021-06-11, v3.22.0-rc1~469^2) we return early if pkg-config provides the information. During review of that commit, code to populate the legacy `GLUT_INCLUDE_DIR` result variable was removed from that code path. Add code to provide it. Also fix the test case to use `GLUT_INCLUDE_DIR`, the result variable documented officially by the module. Fixes: #23018
* | Merge topic 'FindBoost-python-3.10' into release-3.22Brad King2021-12-171-6/+6
|\ \ | | | | | | | | | | | | | | | | | | d4bb6c0c7f FindBoost: Add support for Python 3.10 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6809
| * | FindBoost: Add support for Python 3.10Oleg Sidorkin2021-12-161-6/+6
| | | | | | | | | | | | | | | | | | | | | Regexps in FindBoost assumed that python's minor version had only one digit. That became not true for 3.10. Fixes: #23025
* | | Merge topic 'vs-intel-oneapi-toolset' into release-3.22Brad King2021-12-171-5/+3
|\ \ \ | |/ / |/| / | |/ | | | | | | 612c0d49f4 VS: Fix detecting icx.exe with Intel Compiler toolsets newer than 2021 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6806
| * VS: Fix detecting icx.exe with Intel Compiler toolsets newer than 2021William R. Dieter2021-12-151-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | FindBoost: Add support for Boost 1.78Brad King2021-12-151-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Android: Fix linking android_support for pre-21 system STLRyan Prichard2021-12-131-1/+1
| | | | | | | | | | | | | | 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
* | FindPython: Add support for Python 3.11Tomáš Hrnčiar2021-12-073-3/+3
| |
* | CMakeParseLibraryArchitecture: Fix parsing /lib/<arch> implicit object pathRaphael Gozzo2021-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 `?`.
* | FindPkgConfig: Restore finding pkg-config before pkgconfBrad King2021-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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
* | FindPython: clarify static libraries hint usageMarc Chevrier2021-12-013-0/+15
| | | | | | | | Fixes: #22956
* | Merge topic 'GNUInstallDirs-conda-fix' into release-3.22Brad King2021-12-011-1/+3
|\ \ | | | | | | | | | | | | | | | | | | 7896991af0 GNUInstallDirs: Prefer system lib64 over conda lib when ambiguous Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6773
| * | GNUInstallDirs: Prefer system lib64 over conda lib when ambiguousRobert Maynard2021-11-301-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge topic 'doc-CMAKE_INSTALL_MODE' into release-3.22Brad King2021-11-301-0/+16
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | Help: Clarify CMAKE_INSTALL_MODE documentationFelix Lelchuk2021-11-231-0/+16
| | | | | | | | | | | | | | | | Fixes: #22869 Co-Authored-By: Craig Scott <craig.scott@crascit.com>
* | | | CompilerId: Restore support for classic C by avoiding C++ style commentsBrad King2021-11-233-3/+3
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge branch 'UseSWIG-create-workingdir' into release-3.22Brad King2021-11-221-1/+1
|\ \ \ | |/ / |/| / | |/ Merge-request: !6750
| * UseSWIG: ensure directory for depfile existsMarc Chevrier2021-11-191-1/+1
| | | | | | | | | | | | | | 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
| * Merge branch 'IntelLLVM-Fortran-frontend-variant' into release-3.21Brad King2021-11-111-0/+1
| |\ | | | | | | | | | Merge-request: !6718
* | \ Merge topic 'gtest_discover_tests-PRE_TEST-dep' into release-3.22Brad King2021-11-171-1/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | gtest_discover_tests: Re-run PRE_TEST discovery on any arg changeCraig Scott2021-11-161-1/+2
| | | | | | | | | | | | | | | | Fixes: #22912
* | | | Help: Clarify meaning of filter expression in gtest_discover_tests()Craig Scott2021-11-141-2/+5
|/ / /
* | | Merge topic 'IntelLLVM-Fortran-frontend-variant' into release-3.22Brad King2021-11-121-0/+1
|\ \ \ | | |/ | |/| | | | | | | | | | | | | b1edd6e7c7 Fortran: Save frontend variant persistently for IntelLLVM Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6718
| * | Fortran: Save frontend variant persistently for IntelLLVMWilliam R. Dieter2021-11-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit a90d2a9eed (IntelLLVM: Add support for Intel LLVM-based compilers, 2020-11-02, v3.20.0-rc1~89^2~20), our IntelLLVM compiler support populates `CMAKE_Fortran_COMPILER_FRONTEND_VARIANT`. However, the frontend variant was not stored in `CMakeCompilerFortran.cmake`. Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
| * | Merge branch 'msvc-c++23' into release-3.20Brad King2021-10-121-0/+1
| |\ \ | | | | | | | | | | | | Merge-request: !6614
| * \ \ Merge branch 'revert-debian-libexec' into release-3.20Brad King2021-10-081-13/+2
| |\ \ \ | | | | | | | | | | | | | | | Merge-request: !6607
* | | | | TI: Recognize invalid compiler option warning during try_compile()Craig Scott2021-11-111-0/+1
| | | | | | | | | | | | | | | Fixes: #22866
* | | | | Merge topic 'IntelLLVM-no-xilink' into release-3.22Brad King2021-11-111-1/+1
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | 48f29b5805 IntelLLVM: Use MSVC linker with MSVC frontend variant Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6719
| * | | | IntelLLVM: Use MSVC linker with MSVC frontend variantWilliam R. Dieter2021-11-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Intel compiler (pre-LLVM) expected xilink.exe and had special logic to set xilink.exe. The newer LLVM-based compiler does not want xilink.exe. link.exe works better for host code, and is the default, so change the matching condition such that the old compiler matches (and gets xilink.exe) and the new compiler gets the default link.exe it expects. A better solution will be to use the compiler as the linker. A future change will switch to compiler as linker by default, but that fix needs more validation. Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
* | | | | Merge topic 'vs-framework-version' into release-3.22Brad King2021-11-082-0/+12
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d51246c662 VS: Default TargetFrameworkVersion to v4.7.2 for VS 2022 f97f8537f3 VS: Model a default target framework e40cedddc0 cmVisualStudio10TargetGenerator: Refactor target framework selection 78782cc7dc cmGlobalVisualStudio8Generator: Refactor SetGeneratorPlatform Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6699
| * | | | | VS: Model a default target frameworkBrad King2021-11-062-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add fields to the VS generator to select a target framework. Migrate the existing default for VS 12 .NET CF for Windows CE. Report the values in `CMAKE_VS_*` variables and use them for the CSharp compiler id project too. Issue: #22849
* | | | | | Help: Clarify how PKG_CONFIG env var initializes cache varsCraig Scott2021-11-071-16/+33
| | | | | | | | | | | | | | | | | | Fixes: #22870
* | | | | | CheckLinkerFlag: Set policies needed by the implementationThomas Dickerson2021-11-041-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The module was added in CMake 3.18 by commit af96c0f4fa (CheckLinkerFlag: Add module to check validity of linker flags, 2020-05-16, v3.18.0-rc1~103^2), but it is still possible for projects to use it without setting policies to the 3.18 version level.
* | | | | | Merge topic 'FindHDF5-avoid-duplicate-library-entries' into release-3.22Brad King2021-11-041-0/+8
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 247f1149e1 FindHDF5: clear language-specific libraries list before discovery f56963cf05 FindHDF5: clear library output variables at the top of the module Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6698
| * | | | | | FindHDF5: clear language-specific libraries list before discoveryBen Boeckel2021-11-031-0/+6
| | | | | | |
| * | | | | | FindHDF5: clear library output variables at the top of the moduleBen Boeckel2021-11-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids accumulation of `HDF5_LIBRARIES` results when calling `find_package(HDF5)` multiple times within a single scope.
* | | | | | | Merge topic 'FindHDF5-fix-windows-hl-implib-query' into release-3.22Brad King2021-11-041-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6f830c5c38 FindHDF5: fix variable name when querying `hdf5_hl`'s implib Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6697
| * | | | | | | FindHDF5: fix variable name when querying `hdf5_hl`'s implibBen Boeckel2021-11-031-1/+1
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | Introduced in 4150048a3b (FindHDF5: unset some variables, 2017-07-24).
* | | | | | | Merge topic 'GNUtoMS-vs2022' into release-3.22Brad King2021-11-041-1/+1
|\ \ \ \ \ \ \ | |/ / / / / / |/| | / / / / | | |/ / / / | |/| | | | | | | | | | | | | | | | 571a795d2f GNUtoMS: Add search path for VS 2022 environment scripts Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6695