| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Divert LCC compiler as a new one, instead of treating it as GNU.
Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been
passing checks for GNU compilers, so it has been identified as GNU.
Now, with intent of seriously upstreaming its support, it has been
added as a separate LCC compiler, and its version displays not a
supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead
of GNU 7.3.0).
This commit adds its support for detection, and also converts basically
every check like 'is this compiler GNU?' to 'is this compiler GNU or
LCC?'. The only places where this check is untouched, is where it
regards other platforms where LCC is unavailable (primarily non-Linux),
and where it REALLY differs from GNU compiler.
Note: this transition may break software that are already ported to
Elbrus, but hardly relies that LCC will be detected as GNU; still such
software is not known.
|
|\
| |
| |
| |
| |
| |
| | |
1a828043b7 NVHPC: only use '-MD' for the C and CXX languages
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6602
|
| |
| |
| |
| |
| |
| | |
CMake shouldn't use '-MD' for nvfortran to generate dependency information.
Fixes #22723
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
589c6c8e3f IAR: added .S extension for IAR-ASM.cmake
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6585
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The changes are part of CMP0128.
When the standard level is unset:
* Flags are added if extension mode doesn't match the compiler's default.
Previously logic only worked if LANG_EXTENSIONS was ON. Fixes #22224.
* The full flag is used. Previously CMAKE_LANG_EXTENSION_COMPILE_OPTION was
used. This was only supported for IAR.
Otherwise:
* Avoid adding flags if not necessary per the detected compiler defaults.
* Fixed check for when the requested standard is older. It now matches the
nearby comments.
I reworded the fallback comment as its logic was a bit difficult to wrap my
head around.
|
|/ / |
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
b1727b8a7e IAR: ASM module code deduplication
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6553
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
8954f93543 IAR: emit fatal message for RL78 XLINK
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6552
|
| |/ / |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
fc1f733cc7 BinUtils: Avoid searching CMAKE_PREFIX_PATH
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6434
|
| | |
| | |
| | |
| | |
| | |
| | | |
We already do this for `clang-tidy`.
Fixes: #16554
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
7ef5255e1e armclang: activate compiler dependencies generation
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6433
|
| | | | |
|
|\ \ \ \
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | | |
fc1f733cc7 BinUtils: Avoid searching CMAKE_PREFIX_PATH
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6434
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
|\ \ \ \
| |_|/ /
|/| | /
| | |/
| |/|
| | |
| | |
| | |
| | | |
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
|
| | | |
|
| |/ |
|
|\ \
| |/
| |
| |
| |
| |
| | |
7ce718376c NVHPC: Support 21.07 change to '-MD' where it behaves like gcc
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6408
|
| | |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
d61bc4241d GNU: Correct C23 flags
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6376
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | | |
d61bc4241d GNU: Correct C23 flags
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6376
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | | |
5b9bfe738c IAR: Moved search logic to BinUtils.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6372
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | | |
Use `CMAKE_EXECUTABLE_SUFFIX_<LANG>` instead.
Fixes: #22426
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | | |
1c66012f8e Compiler/IAR: search for both IAR's binaries * and *.exe
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6362
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| |
| |
| | |
509ef50a06 ARMClang: Fix regression in check for working compiler
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6346
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | | |
Fix a typo from commit 66ea1a3795 (LINK_OPTIONS: Add support of "LINKER:" prefix,
2018-04-30, v3.13.0-rc1~437^2).
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| | |
bf810c75ac IAR: Use placeholders in linker and archiver rules
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6322
|
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
Since -flto=thin is not supported officially in FujitsuClang,
change to -flto.
|
| |
| |
| |
| | |
Fixes: #22337
|
|\ \
| |/
| |
| |
| |
| |
| | |
96e362fdc9 Fujitsu: Add IPO support for Fortran
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6261
|
| | |
|