Commit Graph

12071 Commits

Author SHA1 Message Date
Felipe Torrezan 8954f93543 IAR: emit fatal message for RL78 XLINK 2021-09-21 14:34:16 +02:00
Felipe Torrezan 7c3684b356 IAR: fix assembler detection for RISC-V 2021-09-21 11:45:22 +02:00
Rainer Keller 9254e7ddf2 IAR: Use same executable suffix as try_compile
There was a mismatch in the executable suffix between the compiler
detection and try_compile. This resulted in the generated executable
having a different suffix than what try_compile was looking for.

The IAR module is changed to use the same suffix as try_compile.

Fixes: #22567
2021-09-21 07:54:26 +02:00
Brad King 36966f63ca Merge topic 'hip-no-hipcc'
cb93f72624 HIP: Simplify detection of HIP runtime CMake package
a71f0fc9c7 HIP: Remove ROMClang compiler id and use Clang directly
b125e9809a HIP: Detect ROCm path earlier
735f41fc2d HIP: Use 'rocm_agent_enumerator' to determine CMAKE_HIP_ARCHITECTURES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Acked-by: Axel Huebl <axel.huebl@plasma.ninja>
Merge-request: !6533
2021-09-20 12:38:44 -04:00
Brad King bc0d6e61fd Merge topic 'hip-no-hipcc' into release-3.21
cb93f72624 HIP: Simplify detection of HIP runtime CMake package
a71f0fc9c7 HIP: Remove ROMClang compiler id and use Clang directly
b125e9809a HIP: Detect ROCm path earlier
735f41fc2d HIP: Use 'rocm_agent_enumerator' to determine CMAKE_HIP_ARCHITECTURES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Acked-by: Axel Huebl <axel.huebl@plasma.ninja>
Merge-request: !6533
2021-09-20 12:38:43 -04:00
Helmut Grohne 0723b2c935 MPI: Add fallback detection code for MPI when cross compiling
The MPI libraries use a compiler wrapper to automatically inject
required flags and libraries into the compiler argument list. However,
the wrapper does not support cross-compiling: the wrapper will try to
invoke the native compiler which cannot handle the cross architecture
MPI libraries and fail.

This MR adds some fallback code for this case, which tries to bypass the
faulty wrapper and determine the necessary flags and libraries directly
from the MPI pkg-config files. The patch tries to be as unintrusive as
possible and should not break any existing use-cases.

Fixes: #22650
2021-09-17 18:55:02 +02:00
Brad King a136b6ec98 MINGW: Define variable only when targeting Windows platforms
The `MINGW` variable indicates that the compiler targets MinGW, a GNU
ABI on Windows.  Since commit aff3147917 (Modernize GNU compiler info on
Windows, 2009-12-02, v2.8.2~636), we load the `Platform/Windows-GNU`
module for compilers targetin MinGW, so set the variable there instead.
This is equivalent to `Platform/Windows-MSVC` setting the `MSVC`
variable.  Also remove `if(MINGW)` checks from the module, which have
not been necessary since the enclosed logic was moved to that module.

The undocumented `CMAKE_COMPILER_IS_MINGW` internal variable is now
unused, so remove it too.

Fixes: #22647
2021-09-17 12:17:35 -04:00
Brad King c23e8411e5 Merge topic 'android-PATH'
94f3776774 Android: Restore searching PATH for executables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6528
2021-09-17 09:33:45 -04:00
Brad King 1127b591ec Merge topic 'android-PATH' into release-3.21
94f3776774 Android: Restore searching PATH for executables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6528
2021-09-17 09:33:44 -04:00
Brad King dfb31d3a3f Merge topic 'iar-enable-in-list-operator'
f77ffbc0e3 IAR: Restore support for projects not enabling policy CMP0057

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6527
2021-09-17 09:32:50 -04:00
Thomas Bernard b73857561f Clang: embed windows manifests with GNU interface
Solves: #22611
2021-09-17 00:35:32 +02:00
Brad King cb93f72624 HIP: Simplify detection of HIP runtime CMake package
It only makes sense to use the CMake package from the same ROCm
installation that the compiler uses.  Ask the HIP compiler to report the
location of the ROCm installation.  Verify up front that it contains the
expected CMake package file.
2021-09-16 15:33:53 -04:00
Brad King a71f0fc9c7 HIP: Remove ROMClang compiler id and use Clang directly
Since commit bd844387df (ROCMClang: Add the ROCm toolkit derived clang
compiler to CMake, 2020-08-28, v3.21.0-rc1~66^2~6) and commit ff0d2858e1
(HIP: Extract clang compiler details from hipcc, 2020-10-21,
v3.21.0-rc1~66^2~5), the separate `ROCMClang` compiler id for `hipcc`
has caused a few problems:

* The compiler id changed from behavior of CMake 3.20 and below,
  breaking projects that already built with `hipcc` treated as `Clang`.

* The implementation of `target_compile_features` was incomplete for
  the `ROCMClang` identity.

* Only `hipcc` was identified as `ROCMClang`, so after it is unwrapped
  to the underlying `clang++`, future runs of new CMake versions on
  an existing build tree would not repeat this.

* Clang should be usable as a HIP compiler without the `hipcc` wrapper.

Remove the `ROMClang` compiler identity, and revise HIP language support
to work directly with a Clang compiler.

Reject direct `hipcc` usage as a HIP compiler.  For now it cannot be
supported because it interferes with flags CMake needs to pass to Clang.

Fixes: #22536, #22460, #22593
2021-09-16 15:33:47 -04:00
Brad King b125e9809a HIP: Detect ROCm path earlier
Fail early if it is not found.

Use the detected location as a hint to find `rocm_agent_enumerator`.

Also remove the leading `_` prefix in case we want to document this
publicly later.
2021-09-16 14:45:07 -04:00
Zack Galbreath 735f41fc2d HIP: Use 'rocm_agent_enumerator' to determine CMAKE_HIP_ARCHITECTURES 2021-09-16 14:41:30 -04:00
Brad King 0b7ae84a96 Cygwin: Remove redundant definitions of CYGWIN and UNIX variables
These are set by modules loaded for `CMAKE_SYSTEM_NAME`.  We do not
need to set them again if the compiler defines `__CYGWIN__`.

Also remove the now-unused undocumented `CMAKE_COMPILER_IS_CYGWIN`
internal variable.
2021-09-16 09:55:26 -04:00
hhb 94f3776774 Android: Restore searching PATH for executables
Since commit a7f41a7ee4 (Android: Fix find_* search order within NDK for
unified toolchains, 2020-10-13, v3.20.0-rc1~610^2), we turn off
`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH`.  This breaks `find_program`
searching `PATH` for host executables.  Fortunately, the setting turns
out not to be necessary, perhaps since commit cbc51a8be3 (Android:
restructure android search paths, 2020-11-06, v3.20.0-rc1~509^2).
Without it, none of NDK tests fail, so remove it to restore pre-3.20
behavior.

Fixes: #22634
2021-09-16 08:45:33 -04:00
Jean-Marc Hengen f77ffbc0e3 IAR: Restore support for projects not enabling policy CMP0057
Since commit 5b9bfe738c (IAR: Moved search logic to BinUtils.,
2021-07-19, v3.21.1~14^2), we use the `IN_LIST` operator in the
`CMakeFindBinUtils` module.  Set policy `CMP0057` to ensure it is
available regardless of the project's policy settings.

Fixes: #22640
2021-09-16 08:30:51 -04:00
Brad King 1375862764 Merge topic 'cpack-nsis-apps-n-features'
eb3b3bacdc CPack/NSIS: Fix uninstall on Windows using "Apps & Features"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6517
2021-09-15 10:18:55 -04:00
Robert Maynard 51fd21736b FindFLTK: Safe to include multiple times
FindFLTK could store multiple entries in `FLTK_INCLUDE_DIR`,
and when re-executed would stored into `FLTK_DIR` which had
uses which presumed single entries.

Fixes #13198
2021-09-14 11:10:28 -04:00
Andras Lasso eb3b3bacdc CPack/NSIS: Fix uninstall on Windows using "Apps & Features"
According to NSIS documentation [1], uninstaller executable path in
UninstallString must always be quoted.  Quote the uninstall executable
in `NSIS.template.in` so that it works when the path has spaces.

[1] https://nsis.sourceforge.io/Add_uninstall_information_to_Add/Remove_Programs
2021-09-14 09:52:19 -04:00
Brad King 8f67d42671 Merge topic 'find-matlab-imported-targets'
161990b921 FindMatlab: Add imported targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6488
2021-09-14 09:42:50 -04:00
Brad King fdeb9e0751 Merge topic 'GNUInstallDirs_become_conda_install_aware'
ecaca8c129 GNUInstallDirs now aware of conda lib directory requirements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Silvio Traversaro <pegua1@gmail.com>
Merge-request: !6512
2021-09-14 09:41:19 -04:00
Brad King 085719d4d8 Merge topic 'iwyu-cl'
ccfe1b0b40 IWYU: Add `--driver-mode=cl` when applicable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6511
2021-09-14 09:36:13 -04:00
Brad King 2a8d9bf4cc Merge topic 'CMakeDependentOption-condition-syntax'
059b90a0b4 CMakeDependentOption: Introduce policy CMP0127 for full Condition Syntax

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6493
2021-09-14 09:35:07 -04:00
Brad King 036f41e45f Merge topic 'CMakeFindPackageMode-sysroot'
8defe3380e CMakeFindPackageMode: Honor CMAKE_SYSROOT to detect lib64 platforms

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6513
2021-09-14 09:33:55 -04:00
Silvio Traversaro 161990b921 FindMatlab: Add imported targets 2021-09-13 12:12:05 -04:00
Robert Maynard ecaca8c129 GNUInstallDirs now aware of conda lib directory requirements
No matter the OS when installing for conda the library components
need to be placed into the `lib` directory.

To better meet these requirements GNUInstallDirs now checks to see
if it is being asked to install into a conda install location,
and if so use the 'lib' directory instead of the system directory
name.
2021-09-13 08:42:40 -04:00
PigeonF ccfe1b0b40 IWYU: Add --driver-mode=cl when applicable
We already do this for `clang-tidy`.

Fixes: #16554
2021-09-10 09:53:31 -04:00
Daniel Schürmann 059b90a0b4 CMakeDependentOption: Introduce policy CMP0127 for full Condition Syntax
Fixes: #22303
2021-09-10 09:46:55 -04:00
Brad King 72c4f1281e Merge topic 'icu-advanced'
cdd2714dfa FindICU: Really mark variables as advanced

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6507
2021-09-10 09:32:26 -04:00
Brad King c8605bfd45 Merge topic 'clang_msvc_frontend_detection_for_asm'
c9c79dde41 Clang: Add MSVC frontend detection for the ASM compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6481
2021-09-10 09:31:00 -04:00
Marc Chevrier dc971e7da4 Merge topic 'thread-typos'
d897391782 Fix typo in comment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Arcturus <arcturus102@outlook.com>
Merge-request: !6504
2021-09-10 04:34:09 -04:00
Pablo Romero 8defe3380e CMakeFindPackageMode: Honor CMAKE_SYSROOT to detect lib64 platforms
Add `CMAKE_SYSROOT` to check the full path on host OS. In a
non-crosscompiling use case, the call to `CMAKE_SYSROOT` is empty.

Fixes: #22608
2021-09-09 15:55:26 -04:00
Thomas Bernard c9c79dde41 Clang: Add MSVC frontend detection for the ASM compiler
Fixes: #22495
2021-09-09 14:26:44 -04:00
Marc Chevrier 88ea6cb292 Merge topic 'FindPyhton-homebew-on-Mac-M1'
2636ad5045 FindPython: Ensure homebrew on Mac M1 is used

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6499
2021-09-07 05:18:55 -04:00
Marc Chevrier 45e4ba11cd Merge topic 'FindPyhton-homebew-on-Mac-M1' into release-3.21
2636ad5045 FindPython: Ensure homebrew on Mac M1 is used

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6499
2021-09-07 05:18:54 -04:00
Mathieu Malaterre cdd2714dfa FindICU: Really mark variables as advanced 2021-09-06 15:09:31 +02:00
Mattias Ellert d897391782 Fix typo in comment
The comment lists -lpthread twice, when "-lpthreads, -lpthread" is meant.
Also the grammar (did not found) is incorrect.
2021-09-06 06:54:51 +02:00
Brad King 6059996467 Merge topic 'vs2022'
38c8f2c4e3 IRSL: Add discovery of VS 2022 v143 toolset redistributables
f01ea7e391 MSVC: Fix MSVC_TOOLSET_VERSION for VS 2022 v143 toolset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6497
2021-09-03 10:18:50 -04:00
Brad King 31a5b256b9 Merge topic 'vs2022' into release-3.21
38c8f2c4e3 IRSL: Add discovery of VS 2022 v143 toolset redistributables
f01ea7e391 MSVC: Fix MSVC_TOOLSET_VERSION for VS 2022 v143 toolset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6497
2021-09-03 10:18:49 -04:00
Brad King a2c3ef9379 Merge topic 'FindBoost-1.77'
1ad0c5ae53 FindBoost: Add support for Boost 1.77

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6494
2021-09-03 10:17:35 -04:00
Marc Chevrier 2636ad5045 FindPython: Ensure homebrew on Mac M1 is used
Fixes: #22581
2021-09-03 14:59:52 +02:00
Brad King 38c8f2c4e3 IRSL: Add discovery of VS 2022 v143 toolset redistributables
Fixes: #22586
2021-09-02 13:47:46 -04:00
Brad King f01ea7e391 MSVC: Fix MSVC_TOOLSET_VERSION for VS 2022 v143 toolset
This was forgotten in commit 0c7f918fb1 (VS: Update Visual Studio 17
2022 generator for Preview 2, 2021-07-14, v3.21.1~29^2) when the toolset
was first renumbered to `v143`.

Fixes: #22585
2021-09-02 13:47:42 -04:00
Brad King 1ad0c5ae53 FindBoost: Add support for Boost 1.77
Update the list of known versions.

Run the command

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

to extract dependencies from the 1.77.0 source tree.  The dependencies
differ from those of 1.76: the `contract`, `thread`, and `wave`
components no longer depend on `date_time`.  The `math` component no
longer depends on `atomic`.

Fixes: #22588
2021-09-02 12:43:43 -04:00
Brad King 67d0d8b9d5 Merge topic 'darwin-wmake-jwasm-support'
bf09145eb0 Enable Watcom WMake generator on Darwin
78f758a463 Use dashes for MASM flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6472
2021-08-25 09:18:11 -04:00
Brad King 78eff650fa Merge topic 'GNUInstallDirs-variable-named-0'
49a5dbcaff GNUInstallDirs: avoid unwanted variable dereference

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6474
2021-08-25 09:12:23 -04:00
Brad King eae5533ab3 Merge topic 'GNUInstallDirs-variable-named-0' into release-3.21
49a5dbcaff GNUInstallDirs: avoid unwanted variable dereference

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6474
2021-08-25 09:12:22 -04:00
Brad King cf90aa5595 Merge topic 'host-distro-info'
b9698f89df cmake_host_system_information: Make it available for all systems
5469c71a82 Refactor: Simplify `GetValue()` function calls
6c92f80f2e cmake_host_system_information: Also set `USED_FALLBACK_SCRIPT`
efe139d1b8 cmake_host_system_information: Can run fallback scripts
1e65e4a6e5 cmake_host_system_information: Can read `/etc/os-release` file
e808cbb1dd Testing: Convert `cmake_host_system_information` tests into `RunCMake`
9e831284e5 Documentation: Use definition list instead of tables
346f3de005 Refactor: Deduplicate code for `VS_nn_DIR` keys processing
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6410
2021-08-24 10:04:15 -04:00