summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler
Commit message (Collapse)AuthorAgeFilesLines
* Fujitsu: Add IPO support for FortranPaul Zehner2021-06-241-0/+10
|
* 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
* | | Merge topic 'nvhpc-ninja-depfile'Brad 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
| * | NVHPC: Support Ninja dependency scanningRobert Maynard2021-05-182-0/+10
| | | | | | | | | | | | Fixes: #22168
| * | NVHPC: Support explicit language flagsRobert Maynard2021-05-182-0/+8
| | |
* | | Merge topic 'cpp23_gcc'Brad King2021-05-111-2/+7
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | 9fbbebe3d0 GNU: C++23 support c9a1e06a18 GNU: Final C++20 flags 05f8c8178d GNU: C++17 default version Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6108
| * | GNU: C++23 supportRaul Tambre2021-05-101-0/+2
| | | | | | | | | | | | | | | | | | | | | Added in GCC commit 78739c2df788ee5c868d998a6333d453317d8711, released in 11.1. No lettered variant beforehand this time around. Implements #22139.
| * | GNU: Final C++20 flagsRaul Tambre2021-05-101-1/+4
| | | | | | | | | | | | Added in GCC commit fb26050409473f5be54465beca114b7e48de43aa, released in 11.1.
| * | GNU: C++17 default versionRaul Tambre2021-05-101-1/+1
| |/ | | | | | | Changed in GCC commit 0801f419440c14f6772b28f763ad7d40f7f7a580, released in 11.1.
* | Modules: Fix typos and spelling in comments of generated codeJosef Angstenberger2021-05-071-1/+1
| |
* | Fujitsu: Make explicit Fortran preprocessing under Ninja more robustEisuke Kawashima2021-05-061-1/+1
| | | | | | | | | | | | | | | | | | Tell the Fortran compiler to write preprocessor output directly to a file, as we do for the GNU compiler. The previous "redirect stdout" approach could break checks using flags that add information to stdout when called with `-###`. Fixes: #22156
* | Merge topic 'intel-2021'Brad King2021-04-291-7/+16
|\ \ | |/ | | | | | | | | | | | | 9c479c7c40 IntelLLVM: Add special case for ifx 2021.1 version extraction b7193ab18f Intel: Update Classic compiler version detection for 2021 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6052
| * Intel: Update Classic compiler version detection for 2021Brad King2021-04-281-7/+16
| | | | | | | | | | | | | | The value of the `__INTEL_COMPILER` macro changed convention starting in version 2021. Fixes: #22120
* | Merge topic 'ARMClang-cpu-arch-flags'Brad King2021-04-281-26/+46
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | c4941b7e66 ARMClang: Do not automatically add cpu/arch compile or link options 0078db3888 ARMClang: Separate cpu/arch flags from preceding flags Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Jaeden Amero <kitware@patater.com> Merge-request: !6035
| * | ARMClang: Do not automatically add cpu/arch compile or link optionsLingkai Dong2021-04-271-26/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compile options `--march=<arch>` and `--mcpu=<cpu>` and the link option `--cpu=<cpu>` are automatically added by CMake based on `CMAKE_SYSTEM_PROCESSOR` or `CMAKE_SYSTEM_ARCH`. But this is not sufficient, because armclang also supports enabling or disabling features using `+<feature>`: -mcpu=<name>[+[no]<feature>+...] For example: -mcpu=cortex-a57+nocrypto+nofp+nosimd+crc (Reference: https://developer.arm.com/documentation/dui0774/k/Compiler-Command-line-Options/-mcpu?lang=en) The problem is, even if a project adds a flag with features it needs, CMake still adds flags, resulting in code that is compiled with wrong CPU features and unable to run. Add policy `CMP0123` to not automatically add compile or link options, and let projects set them instead. Co-Author: Brad King <brad.king@kitware.com> Fixes: #21173
| * | ARMClang: Separate cpu/arch flags from preceding flagsBrad King2021-04-271-3/+3
| | | | | | | | | | | | Suggested-by: Kim Kryger
* | | CUDA: Add CMAKE_CUDA_HOST_COMPILER support on Windows non-VS generatorsunknown2021-04-221-9/+5
|/ /
* | Fujitsu: Fix C90 standard flagsPaul Zehner2021-04-141-3/+3
| | | | | | | | | | Fix typos from commit 3c867cff4a (Fujitsu: Add support for the Fujitsu compiler in Trad mode, 2020-12-22).
* | Merge topic 'cuda-depfile-ccbin'Brad King2021-04-081-1/+9
|\ \ | |/ | | | | | | | | | | | | | | 8e38985db7 Makefiles: Fix dependency extraction with CUDA < 10.2 and host compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Raul Tambre <raul@tambre.ee> Acked-by: Robert Maynard <robertjmaynard@gmail.com> Merge-request: !5992
| * Makefiles: Fix dependency extraction with CUDA < 10.2 and host compilerBrad King2021-04-071-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 2c71d051fa (Makefiles Generators: use compiler for dependencies generation, 2020-10-18, v3.20.0-rc1~392^2) we invoke `nvcc` for CUDA < 10.2 a second time in order to generate a depfile. When `CMAKE_CUDA_HOST_COMPILER` is set, the second invocation is missing its `-ccbin=` option, even after refactoring in commit 8981e3e7cc (NVIDIA-CUDA: rely on new capabilities for deps generation, 2020-12-02, v3.20.0-rc1~362^2). Ideally we should move the `-ccbin=` flag into `Compiler/NVIDIA-CUDA`, but that will add `CMAKE_CUDA_HOST_COMPILER` support on Windows in command-line generators but not the Visual Studio generators. For now, add the flag to the depfile command specifically. Fixes: #22037
* | FujitsuClang: Add support for the Fujitsu compiler in Clang modeChuck Atkins2021-03-315-1/+33
| | | | | | | | | | | | This should be front end compatible with vanilla clang but giving it a unique identifier allows a project to pass additional options unique to Fujitsu and outside the scope of a CMake builtin.
* | Fujitsu: Add support for the Fujitsu compiler in Trad modeChuck Atkins2021-03-305-1/+132
| | | | | | | | Co-Author: Yuichiro Utsumi <utsumi.yuichiro@jp.fujitsu.com>
* | Merge topic 'cray-fortran'Brad King2021-03-081-0/+4
|\ \ | |/ | | | | | | | | | | ef513fe3d1 Cray: Enable explicit Fortran preprocessing for Ninja generator Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5882
| * Cray: Enable explicit Fortran preprocessing for Ninja generatorBrad King2021-03-051-0/+4
| | | | | | | | | | | | | | | | | | Cray 11.0 adds support for preprocessing with output written to a specified file (instead of always next to the source). Use it to enable Cray Fortran with the Ninja generator. Patch-by: James Elliott Fixes: #20731
* | Merge topic 'android-r22'Brad King2021-03-031-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | 005e2cdfb0 Android: Do not use gold for ndk >= r22 ed7a87f270 Tests: Update RunCMake.Android for NDK r22 4950d35733 Help: Document CMAKE_ANDROID_NDK_VERSION variable 746906242d Android: Detect NDK version number Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5862
| * Android: Do not use gold for ndk >= r22Haibo Huang2021-03-031-1/+1
| | | | | | | | Fixes: #21772
* | IntelLLVM: C17 supportRaul Tambre2021-02-251-3/+7
| | | | | | | | Issue: #17755
* | GNU: C23 supportRaul Tambre2021-02-251-0/+5
| | | | | | | | Added in commit 9f936c861383dc69e0053e34315d5d0262a19e8f, released in 9.1.
* | GNU: C17 supportRaul Tambre2021-02-251-1/+6
| | | | | | | | | | | | | | Added in commit c76dc9c32d616eff1e0ae162042f1c0f8ca65fbf, released in 8.1. Set as default in the same commit. Issue: #17755
* | Clang: Default C standard doesn't depend on compatibility modeRaul Tambre2021-02-251-5/+1
| | | | | | | | MSVC compatibility mode doesn't affect the default standard.
* | Clang: Set standard flags according to frontend variantRaul Tambre2021-02-251-1/+1
| | | | | | | | | | | | They depend on the frontend not which compiler we're simulating. Fixes #21771.
* | Clang: MSVC-style C flagsRaul Tambre2021-02-251-4/+14
| | | | | | | | | | Support added in LLVM commit d087d805acb664e885e9c31a916f6cfa5dbc2186, will be released in Clang 13.
* | Clang: C23 supportRaul Tambre2021-02-251-0/+5
| | | | | | | | | | Added in LLVM commit d06f3917913d2558b771ccc48d838f8cd8993c01, released in Clang 9.0.
* | Clang: C17 default versionRaul Tambre2021-02-251-1/+1
| | | | | | | | | | | | | | Switched in LLVM commit 91cdbd521a38495c66e30636943563ca70d3c022, released in Clang 11. Issue: #17755
* | Clang: C17 supportRaul Tambre2021-02-251-0/+7
| | | | | | | | | | | | | | Added in LLVM commit 5b6c0f75e01571851b767dc63a3229c962f464f1, available since Clang 6. Issue: #17755
* | C23 supportRaul Tambre2021-02-251-0/+3
| |
* | C17 supportRaul Tambre2021-02-251-0/+3
| | | | | | | | Implements #17755.
* | Clang: Correct default C standards for ancient versionsRaul Tambre2021-02-251-1/+1
| | | | | | | | | | | | | | | | C11 was made default in LLVM commit ab506adf7d3ced6abcaf42f92de3d6cd15fa19e8, released in 3.5.2. C99 was made default in LLVM commit 17f76e04d244c80e70f1c81c94d4524b53d9772d, released in 2.1. It was flipped a few times between C89 and C99 during the 2.1 cycle, but the C89 default never made it into a release.
* | Clang: Correct C standards flags for ancient versionsRaul Tambre2021-02-251-15/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | C89, C99 flags in LLVM commit ff43821d5380ee38aff421701f1d461242b524ee. C90 flag in LLVM commit 229ce60fc9983df5f7e83e25fa6b5c0ca4d2b135. C1x flag in LLVM commit a686b5f8bf7b5a2ab636c0c2de5ad4c174aa33e0. C11 flag in LLVM commit 6784aeb9ef96e5735850fa7226ed0cb45cb82e75. Mark C90, C99 full support since 2.1. Might've been possibly a little later, but source spelunking that much back is difficult. Mark C11 full support since 3.0, which added _Static_assert in LLVM commit 3d9cbdc3e66e274d5d3cb94ce81a65478d9baae0.