summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'hip-no-hipcc'Brad King2021-09-2010-135/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | 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
| * HIP: Simplify detection of HIP runtime CMake packageBrad King2021-09-161-1/+1
| | | | | | | | | | | | | | 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.
| * HIP: Remove ROMClang compiler id and use Clang directlyBrad King2021-09-169-134/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Merge topic 'binutils-no-cmake-paths' into release-3.21Brad King2021-08-102-0/+4
| |\ | | | | | | | | | | | | | | | | | | fc1f733cc7 BinUtils: Avoid searching CMAKE_PREFIX_PATH Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6434
* | | IWYU: Add `--driver-mode=cl` when applicablePigeonF2021-09-108-0/+8
| | | | | | | | | | | | | | | | | | We already do this for `clang-tidy`. Fixes: #16554
* | | Merge topic 'armclang-compiler-deps'Brad King2021-08-102-0/+16
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 7ef5255e1e armclang: activate compiler dependencies generation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6433
| * | | armclang: activate compiler dependencies generationMarc Chevrier2021-08-062-0/+16
| | | |
* | | | Merge topic 'binutils-no-cmake-paths'Brad King2021-08-102-0/+4
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | fc1f733cc7 BinUtils: Avoid searching CMAKE_PREFIX_PATH Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6434
| * | | BinUtils: Avoid searching CMAKE_PREFIX_PATHCristian Adam2021-08-092-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our `find_program` calls specify `HINTS` to look in the toolchain's directory first, and then in `PATH`. `CMAKE_PREFIX_PATH` may be specified by the user to help find packages for project dependencies, but this should not override the binutils. Fixes: #22512
* | | | Merge topic 'nvhpc_support_new_c_and_c++_standards'Brad King2021-08-092-0/+10
|\ \ \ \ | |_|/ / |/| | / | | |/ | |/| | | | | | | | | | | | | 9ac426e460 NVHPC-C: Add support for C17 f5dbc27c27 NVHPC-CXX: Add support for C++20 Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !6430
| * | NVHPC-C: Add support for C17Robert Maynard2021-08-051-0/+5
| | |
| * | NVHPC-CXX: Add support for C++20Robert Maynard2021-08-051-0/+5
| |/
* | Merge topic 'nvhpc-MD-flag'Brad King2021-08-023-10/+12
|\ \ | |/ | | | | | | | | | | 7ce718376c NVHPC: Support 21.07 change to '-MD' where it behaves like gcc Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6408
| * NVHPC: Support 21.07 change to '-MD' where it behaves like gccRobert Maynard2021-07-293-10/+12
| |
| * Merge topic 'gnu_c23' into release-3.21Brad King2021-07-231-2/+2
| |\ | | | | | | | | | | | | | | | | | | d61bc4241d GNU: Correct C23 flags Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6376
* | \ Merge topic 'gnu_c23'Brad King2021-07-231-2/+2
|\ \ \ | | |/ | |/| | | | | | | | | | | | | d61bc4241d GNU: Correct C23 flags Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6376
| * | GNU: Correct C23 flagsRaul Tambre2021-07-211-2/+2
| | | | | | | | | | | | | | | | | | | | | Non-final forms aren't supported yet, unlike C++23. Seems I might've gotten confused due to that when I added these. Fixes #22453.
* | | Merge topic 'iar-binutils'Brad King2021-07-232-86/+0
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 5b9bfe738c IAR: Moved search logic to BinUtils. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6372
| * | IAR: Moved search logic to BinUtils.Jean-Marc Hengen2021-07-232-86/+0
| |/ | | | | | | | | | | | | | | | | | | | | The search logic for the IAR linker, librarian and related tools is moved from `Modules/Compiler/IAR-FindBinUtils.cmake` to `Modules/CMakeFindBinUtils.cmake` by introducing an new elseif block for the IAR toolchain. The search logic was refactored to omit repeating itself. Fixes: #22425
| * Merge topic 'iar-exe-suffix' into release-3.21Brad King2021-07-201-2/+2
| |\ | | | | | | | | | | | | | | | | | | | | | 09bc0785ee Help: Document CMAKE_EXECUTABLE_SUFFIX_<LANG> explicitly 05a3bafe65 Compiler/IAR: Avoid clobbering CMAKE_EXECUTABLE_SUFFIX Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6357
* | \ Merge topic 'iar-exe-suffix'Brad King2021-07-201-2/+2
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | 09bc0785ee Help: Document CMAKE_EXECUTABLE_SUFFIX_<LANG> explicitly 05a3bafe65 Compiler/IAR: Avoid clobbering CMAKE_EXECUTABLE_SUFFIX Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6357
| * | Compiler/IAR: Avoid clobbering CMAKE_EXECUTABLE_SUFFIXLorenzo Cappelletti2021-07-201-2/+2
| | | | | | | | | | | | | | | | | | Use `CMAKE_EXECUTABLE_SUFFIX_<LANG>` instead. Fixes: #22426
* | | Merge topic 'iar-host-exe'Brad King2021-07-201-8/+24
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 1c66012f8e Compiler/IAR: search for both IAR's binaries * and *.exe Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6362
| * | Compiler/IAR: search for both IAR's binaries * and *.exeLorenzo Cappelletti2021-07-201-8/+24
| |/ | | | | | | | | | | | | | | | | IAR is available for both Linux and Windows OSes. Moreover, binaries `*.exe` could be called from a Linux box, or vice versa. See also commit 01a4eec446 (IAR: Changes required for Linux, 2019-04-25, v3.15.0-rc1~185^2). Fixes: #22312
* | Merge topic 'armlink_armar_detection'Brad King2021-07-141-11/+6
|\ \ | |/ | | | | | | | | | | 509ef50a06 ARMClang: Fix regression in check for working compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6346
| * ARMClang: Fix regression in check for working compilerLingkai Dong2021-07-141-11/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given the compiler to use, `CMakeFindBinUtils.cmake` automatically determines a number of tools including linker (CMAKE_LINKER) and archiver (CMAKE_AR) and stores them in a generated file `CMakeCCompiler.cmake` as non-CACHE entries. The compiler-specific ARMClang.cmake then tries to override CMAKE_LINKER and CMAKE_AR as CACHE entries. Following the introduction of CMP0126, which is set to NEW in the test for a working compiler, setting a CACHE entry does not replace a normal entry of the same name anymore, resulting in a failed test due to wrong linker and archiver. To fix this, set CMAKE_LINKER and CMAKE_AR for ARMClang directly in `CMakeFindBinUtils.cmake` as is done for other compilers. Check for them in `ARMClang.cmake` to safeguard cases when a project explicitly includes `ARMClang.cmake` prior to compiler determination (which some projects do to work around other problems in older CMake versions).
* | Merge topic 'LWYU-externalization'Brad King2021-07-121-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 14e57e9637 LINK_WHAT_YOU_USE feature: externalize configuration 9c5132a586 PGI: Fix "LINKER:" prefix generated separator 8a93de080c cmGeneratorTarget: Add method for LINKER: prefix translation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6306
| * | PGI: Fix "LINKER:" prefix generated separatorMarc Chevrier2021-07-091-1/+1
| | | | | | | | | | | | | | | Fix a typo from commit 66ea1a3795 (LINK_OPTIONS: Add support of "LINKER:" prefix, 2018-04-30, v3.13.0-rc1~437^2).
* | | Merge topic 'iar-linker-placeholder'Brad King2021-07-081-7/+7
|\ \ \ | |/ / |/| / | |/ | | | | | | bf810c75ac IAR: Use placeholders in linker and archiver rules Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6322
| * IAR: Use placeholders in linker and archiver rulesJean-Marc Hengen2021-07-081-7/+7
| | | | | | | | | | | | | | Update the IAR linker and archiver rules to use the `<CMAKE_LINKER>` and `<CMAKE_AR>` placeholders instead of hard-coding the tool names. Fixes: #22395
* | Merge topic 'intel-oneapi-std-windows'Brad King2021-07-082-10/+2
|\ \ | |/ | | | | | | | | | | | | | | 13961f3b43 Merge branch 'backport-3.20-intel-oneapi-std-windows' 5115dd1e2c IntelLLVM: Fix C/C++ standard level flags on Windows 84036d30d4 IntelLLVM: Fix C/C++ standard level flags on Windows Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6319
| * IntelLLVM: Fix C/C++ standard level flags on WindowsBrad King2021-07-072-10/+2
| | | | | | | | | | | | | | | | | | In commit a90d2a9eed (IntelLLVM: Add support for Intel LLVM-based compilers, 2020-11-02, v3.20.0-rc1~89^2~20) we accidentally left out activation of the C/C++ standard level selection logic when IntelLLVM is targeting the MSVC ABI. Fixes: #22388
* | Merge topic 'fujitsu-clang-findbinutils'Brad King2021-06-302-0/+9
|\ \ | |/ | | | | | | | | | | | | 6ce97c2248 FujitsuClang: Change LTO option from -flto=thin to -flto 3a0effcd16 FujitsuClang: Set CMAKE_<LANG>_COMPILER_AR and CMAKE_<LANG>_COMPILER_RANLIB Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6281
| * FujitsuClang: Change LTO option from -flto=thin to -fltoYuichiro Utsumi2021-06-291-0/+3
| | | | | | | | | | Since -flto=thin is not supported officially in FujitsuClang, change to -flto.
| * FujitsuClang: Set CMAKE_<LANG>_COMPILER_AR and CMAKE_<LANG>_COMPILER_RANLIBYuichiro Utsumi2021-06-291-0/+6
| | | | | | | | Fixes: #22337
* | Merge topic 'fujitsu-ipo'Brad King2021-06-251-0/+10
|\ \ | |/ | | | | | | | | | | 96e362fdc9 Fujitsu: Add IPO support for Fortran Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6261
| * Fujitsu: Add IPO support for FortranPaul Zehner2021-06-241-0/+10
| |
* | Compiler/MSVC: use the `-external:I` flag for system includesBen Boeckel2021-06-182-0/+12
|/ | | | See: #17904
* AppleClang: Add flags for C17 and C23Brad King2021-06-161-1/+11
| | | | Follow up commit 72f4984cdc (Clang: C23 support, 2021-02-07).
* ObjectiveC: Add C17 and C23 supportGregor Jasny2021-06-112-1/+27
| | | | Issue: #22297
* HIP: Automatically inject the `hip::device` runtime targetRobert Maynard2021-06-072-0/+8
| | | | | Any target that might need to link to hip code needs the `hip::device` target
* HIP: Add language to CMakeRobert Maynard2021-06-073-0/+77
|
* ROCMClang: Add the ROCm toolkit derived clang compiler to CMakeRobert Maynard2021-06-078-0/+85
|
* Merge topic 'msvc_cxx20_23'Brad King2021-06-022-4/+20
|\ | | | | | | | | | | | | | | | | | | 886e27062b Clang/MSVC: C++20 final flag, C++23 support 3aaf1d91bf MSVC: C++20 final flag, C++23 support Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Acked-by: Michael Hirsch <michael@scivision.dev> Merge-request: !6174
| * Clang/MSVC: C++20 final flag, C++23 supportRaul Tambre2021-05-291-3/+12
| | | | | | | | | | Added in LLVM commit a8f75d497daa2684a03909d7c31d5bce11b427e1, will be released in 13.0.
| * MSVC: C++20 final flag, C++23 supportRaul Tambre2021-05-291-1/+8
| | | | | | | | | | | | | | Microsoft intends to ship the final C++20 flag in VS 16.11 albeit with a few parts missing due planned ABI breaking changes. The current 16.11 Preview 1 toolchain version is 19.29.30129.3, so let's restrict based on that.
| * Merge topic 'nvhpc-ninja-depfile' into release-3.20Brad King2021-05-192-0/+18
| |\ | | | | | | | | | | | | | | | | | | | | | 364f6af1d7 NVHPC: Support Ninja dependency scanning 521cfc38a3 NVHPC: Support explicit language flags Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6136
* | | OpenWatcom: Add infrastructure to link to object filesBrad King2021-05-291-0/+1
| | |
* | | BinUtils: Find linker and librarian for OpenWatcomBrad King2021-05-271-5/+5
| | | | | | | | | | | | | | | | | | Update our OpenWatcom linker and archiver rules to use the `<CMAKE_LINKER>` and `<CMAKE_AR>` placeholders instead of hard-coding the tool names.
* | | Compiler/TI: Restore response file usage for linkerJosef Angstenberger2021-05-251-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | The commit 98fea8205e (Compiler/TI: Avoid response file usage for linker, 2020-07-11, v3.19.0-rc1~495^2) disabled linker file usage by default. The previous settings were working, even if not for all cases. Restore them and add an explanation in a comment. Issue: #22233