Commit Graph

12030 Commits

Author SHA1 Message Date
Brad King
3026d8468b Merge topic 'msvc-c17'
c5cc4ddac4 MSVC: Add support for C17
6561b032bc MSVC: Tolerate c_std_17 and c_std_23 features on older compiler versions
22f804e0ec MSVC: Refactor C compile features table for C90, C99, and C11

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6677
2021-10-29 08:52:18 -04:00
Brad King
c5cc4ddac4 MSVC: Add support for C17
C17 support has been available in MSVC since VS 16.8.

Fixes: #22816
2021-10-28 12:27:00 -04:00
Brad King
6561b032bc MSVC: Tolerate c_std_17 and c_std_23 features on older compiler versions
MSVC `cl` versions prior to 19.27 had no `-std:c*` flags for C
standards.  List the `c_std_{17,23}` features anyway.  This allows
projects to at least attempt compilation with these compilers since they
do not have any modes.
2021-10-28 12:27:00 -04:00
Brad King
22f804e0ec MSVC: Refactor C compile features table for C90, C99, and C11
The custom "no modes" `cmake_record_c_compile_features` implementation
should only be used in `cl` versions prior to 19.27 because they had no
`-std:c*` flags for C standards.  For 19.27 we need a different custom
implementation to account for partial C11 support.  For 19.28 and above
we can use the default implementation through the `*__HAS_FULL_SUPPORT`
settings.

We already use this pattern in the MSVC C++ compile feature table.
2021-10-28 12:27:00 -04:00
Brad King
a3791b24c9 Merge topic 'vulkan-version-support'
caeaabb356 FindVulkan: Add version support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6669
2021-10-28 09:16:03 -04:00
Brad King
8469ba6fcf Merge topic 'cpack-qtifw-4.2'
51a2afe6e7 CPack/IFW: Add support for QtIFW 4.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6674
2021-10-28 09:14:06 -04:00
Ralf Habacker
caeaabb356 FindVulkan: Add version support
The version is constructed in the form <major>.<minor>.<patch> e.g.
1.2.189.
2021-10-27 20:50:55 +02:00
Erlend E. Aasland
51a2afe6e7 CPack/IFW: Add support for QtIFW 4.2 2021-10-27 14:31:22 -04:00
Brad King
619f5dcc36 Merge topic 'hip-flags-append'
3d0e2775a5 HIP: Add missing space when appending --cuda-host-only

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6662
2021-10-27 09:08:38 -04:00
Brad King
3d0e2775a5 HIP: Add missing space when appending --cuda-host-only
Fixes: #22805
2021-10-26 10:48:48 -04:00
Brad King
eeb4540116 Merge topic 'check-symbol-exists-pedantic-errors'
1ab7c3cd28 CheckSymbolExists: Work around GCC failure with -pedantic-errors option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6656
2021-10-26 09:09:51 -04:00
Brad King
54b85286a4 Merge topic 'binutils-llvm-strip'
5dd981539f BinUtils: Avoid llvm-strip versions older than Clang 11

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6655
2021-10-26 09:07:31 -04:00
Brad King
814567faa3 Merge topic 'binutils-llvm-strip' into release-3.22
5dd981539f BinUtils: Avoid llvm-strip versions older than Clang 11

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6655
2021-10-26 09:07:30 -04:00
Timo Röhling
1ab7c3cd28 CheckSymbolExists: Work around GCC failure with -pedantic-errors option
GCC mistakenly issues the pedantic warning "ISO C forbids conversion of
function pointer to object pointer type". With -pedantic-errors in the
compile flags, that diagnostic prevents check_symbol_exists() from
detecting function symbols.

The solution is to filter out -pedantic-errors (and -Werror, just to be
future proof) before invoking try_compile().

Fixes: #13208
2021-10-22 15:48:51 +02:00
Brad King
5dd981539f BinUtils: Avoid llvm-strip versions older than Clang 11
Since commit cf82300a63 (BinUtils: Clarify search logic and make it more
consistent, 2021-05-27, v3.21.0-rc1~119^2~2) we correctly prefer the
more-specific name `llvm-strip` over `strip` when using Clang.  However,
`llvm-strip` from Clang versions prior to 11 require extra flags to
strip everything.  Until our `install(TARGETS)` logic learns to add
those flags, avoid using older versions of `llvm-strip` by default.

Fixes: #22785
2021-10-22 09:24:46 -04:00
Brad King
ca3e83250f Merge topic 'lcc-policy'
3958ed878f LCC: Add policy CMP0129 regarding interpreting LCC as GNU

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6643
2021-10-22 07:08:58 -04:00
makise-homura
3958ed878f LCC: Add policy CMP0129 regarding interpreting LCC as GNU
Due to MCST LCC compiler identification is now changed to LCC,
there should be a way for old projects to still identify it as GNU,
as it was before.
This commits adds the policy:
CMP0129: Compiler id for MCST LCC compilers is now LCC, not GNU.
This policy controls such a behavior.
OLD behaivior is to treat LCC as GNU, NEW is to treat is as LCC.
2021-10-21 17:24:22 +03:00
Brad King
fcab9785c9 Merge topic 'vs-instance'
46e9ff5729 Restore honoring CMAKE_GENERATOR_INSTANCE in toolchain file
42418b02f7 Android: Refactor sysroot detection under Visual Studio
44a86d0b38 cmake_host_system_information: Add undocumented VS_MSBUILD_COMMAND key
6999b87133 cmGlobalVisualStudio10Generator: Add method to find MSBuild early
7f730464be cmGlobalGenerator: Add method to check if generator is at least VS 10
8917b8512f cmGlobalVisualStudioVersionedGenerator: Allow repeating SetGeneratorInstance
6511654164 cmGlobalVisualStudio10Generator: Allow subclasses to reset MSBuild search

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6646
2021-10-21 09:21:24 -04:00
Brad King
42418b02f7 Android: Refactor sysroot detection under Visual Studio
Since commit 6051a49c78 (Visual Studio: Add Android support, 2020-06-12,
v3.19.0-rc1~619^2) we run MSBuild to build a sample project to detect
the sysroot.  Previously we relied on `CMAKE_VS_MSBUILD_COMMAND` being
available.  That required commit d5b5c19278 (cmGlobalGenerator:
FindMakeProgram() before CMakeDetermineSystem, 2020-06-15,
v3.19.0-rc1~619^2~3) to make it available early enough.  However, that
ordering broke `CMAKE_GENERATOR_INSTANCE` so we need to prepare to
revert it.  Use `cmake_host_system_information` to get the location of
MSBuild under a VS generator instead.
2021-10-20 13:00:25 -04:00
Robert Maynard
61b9764b03 CUDA: Allow both CUDA_SEPARABLE_COMPILATION and CUDA_PTX_COMPILATION
The target properties `CUDA_SEPARABLE_COMPILATION` and `CUDA_PTX_COMPILATION`
now aren't mutually exclusive and can now be used together on the same
target.
2021-10-20 11:18:06 -04:00
Brad King
b7510944dc Merge topic 'platform-generic-elf'
3f9b40dab7 Generic-ELF: Add platform module to configure the .elf file extension

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6630
2021-10-20 08:55:39 -04:00
Jordan Williams
3f9b40dab7 Generic-ELF: Add platform module to configure the .elf file extension
The `.elf` extension is a common convention used for embedded binaries.
Both Arm and RISC-V use the ELF file format for executables.
Configuring the `.elf` file extension is typically done incorrectly.
Most embedded developers set this in toolchain files, which is not
the correct place.
This is typically accomplished through a hack by setting the individual
language file extensions for C, CXX, and ASM.
Multiple CMake issues in the past have been opened related to this.

* #16538
* #20163
* #17880

A platform module makes it simpler and less error prone for developers
targeting these ubiquitous bare-metal platforms.
This PR attempts to solve this globally with a generic platform.
This could also be solved by using more specific platform modules, such
as one for each of bare-metal Arm and RISC-V.
2021-10-19 10:02:04 -05:00
Brad King
d723bac01c Merge topic 'lcc-compiler'
02b2607a5c Help: Add release note for MCST LCC compiler support
e5d9fce03f LCC: Add dedicated support for MCST LCC compiler
2b9ef77944 CPack/DEB: deal with broken dpkg-shlibdeps on E2K architecture
0995c75301 Tests/RPM: skip tests tat rely on debugedit if it's not found
ea55ac9a51 Tests/RunCMake/CommandLine: Deal with locales that are different from English

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6608
2021-10-19 09:22:22 -04:00
Brad King
1ace450a92 Merge topic 'CheckLanguage-cuda-host-compiler'
7123c8fdbf CheckLanguage: Don't pass CMAKE_CUDA_HOST_COMPILER for Visual Studio

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6633
2021-10-19 09:05:14 -04:00
Raul Tambre
7123c8fdbf CheckLanguage: Don't pass CMAKE_CUDA_HOST_COMPILER for Visual Studio
Visual Studio doesn't support specifying it and if we do we get a warning.

Fixes: #22712
2021-10-19 09:03:24 -04:00
Brad King
e495f360b2 Merge topic 'ctest_submit-inactivity-timeout'
5d178fcc53 CTest: Add CTEST_SUBMIT_INACTIVITY_TIMEOUT variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6584
2021-10-18 09:27:14 -04:00
makise-homura
e5d9fce03f LCC: Add dedicated support for MCST LCC compiler
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.
2021-10-15 05:05:19 +03:00
makise-homura
2b9ef77944 CPack/DEB: deal with broken dpkg-shlibdeps on E2K architecture
"OS Elbrus" (OSL for short), a reference Linux distro for E2K (Elbrus)
platform may have broken dpkg-shlibdeps, that doesn't specify
dependencies correctly. In this case, the only reliable way is to
explicitly set dependencies of libc6 and lcc-libs, and then warn user
to let him know this list may be incomplete. This commit does that.
This fix has no effect on correctly working dpkg-shlibdeps, so when
this bug will be fixed in new versions of OSL, CPack will work as
expected with these distros.
2021-10-15 05:05:18 +03:00
Brad King
6dfe28f33c Merge branch 'backport-3.21-vs2022' into vs2022 2021-10-14 13:40:20 -04:00
Brad King
787ab7ff20 IRSL: Fix discovery of VS 2022 v143 toolset redistributables for preview 5
VS 2022 Preview 5 renamed the redist directories from `Microsoft.VC142.*`
to `Microsoft.VC143.*` in order to match the `v143` toolset name.

Fixes: #22586
2021-10-14 13:37:05 -04:00
Nikhil Reddy Ramolla
5d178fcc53 CTest: Add CTEST_SUBMIT_INACTIVITY_TIMEOUT variable
Fixes: #22617
2021-10-14 11:41:44 -04:00
Brad King
568a93d08c Merge branch 'msvc-c++23' into release-3.21
Merge-request: !6614
2021-10-12 09:35:56 -04:00
Brad King
0ee59ceb3f Merge topic 'msvc-c++23'
ef47e18ad0 MSVC: Tolerate cxx_std_23 feature on older compiler versions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6614
2021-10-12 09:34:17 -04:00
Brad King
323846afc1 Merge topic 'msvc-c++23' into release-3.22
ef47e18ad0 MSVC: Tolerate cxx_std_23 feature on older compiler versions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6614
2021-10-12 09:34:16 -04:00
Brad King
9fdfc5dd44 Merge topic 'find-blas-lapack-cleanup'
635f2c87f5 FindBLAS: Fix EML and ArmPL indentations
816dc1cb19 FindBLAS: Replace set(A val) with string(APPEND)
a7843faa20 FindLAPACK: Replace set(A val) with string(APPEND)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6605
2021-10-08 09:49:21 -04:00
Brad King
b7c91c74eb Merge topic 'revert-debian-libexec'
6658e260d4 GNUInstallDirs: Fix misinterpretation of Debian Policy on LIBEXECDIR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6607
2021-10-08 09:45:12 -04:00
Brad King
1a47305edf Merge topic 'revert-debian-libexec' into release-3.21
6658e260d4 GNUInstallDirs: Fix misinterpretation of Debian Policy on LIBEXECDIR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6607
2021-10-08 09:45:10 -04:00
Timo Röhling
6658e260d4 GNUInstallDirs: Fix misinterpretation of Debian Policy on LIBEXECDIR
Revert commit 798c1c3192 (GNUInstallDirs: Comply with Debian Policy on
LIBEXECDIR, 2020-10-08, v3.19.0-rc1~11^2).

The Debian Policy builds upon FHS 3.0 and permits installing to
`/usr/libexec`. While Policy does grant an additional exception for
applications to use a single subdirectory of `/usr/lib/<triplet>`, this
is not meant to replace `/usr/libexec` as valid target.

Fixes: #22731
2021-10-07 14:29:18 -04:00
Brad King
ef47e18ad0 MSVC: Tolerate cxx_std_23 feature on older compiler versions
In commit 3aaf1d91bf (MSVC: C++20 final flag, C++23 support, 2021-05-29,
v3.20.4~7^2~1) we forgot to add `cxx_std_23` to the fallback table for
MSVC versions from VS 2010 through VS 2015.  This allows project to at
least attempt compilation with these compilers since they do not have
any modes.

Issue: #22729
2021-10-07 11:46:09 -04:00
Igor S. Gerasimov
635f2c87f5 FindBLAS: Fix EML and ArmPL indentations 2021-10-07 09:35:43 -04:00
Igor S. Gerasimov
816dc1cb19 FindBLAS: Replace set(A val) with string(APPEND) 2021-10-07 09:33:51 -04:00
Igor S. Gerasimov
a7843faa20 FindLAPACK: Replace set(A val) with string(APPEND) 2021-10-07 09:33:51 -04:00
Brad King
24fb43e3e7 Merge topic 'math_libs_include'
32574814c7 FindCUDAToolkit: Fix missing sibling include directory for math libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6591
2021-10-07 09:23:08 -04:00
Brad King
6e037a04e7 Merge topic 'FindJasper-imported-target'
6e8754c625 FindJasper: Add IMPORTED target
bdbce845cd FindJasper: Add JASPER_INCLUDE_DIRS result variable
7f8413c309 FindJasper: Modernize documentation layout
524205a7a5 FindJasper: Modernize code layout

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4633
2021-10-07 09:22:11 -04:00
Brad King
f175a62fcc Merge topic 'xcode-lang-defaults'
3add62462c Xcode: Fix detection of default language standard when given -std= flags
5c4424e5b7 CMakeDetermineCompilerId: Tolerate variables named for languages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6598
2021-10-07 09:12:45 -04:00
Brad King
0a863c71d8 Merge topic 'corret_nvhpc_fortran_compile_deps'
1a828043b7 NVHPC: only use '-MD' for the C and CXX languages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6602
2021-10-07 09:11:21 -04:00
Brad King
2104c198bd Merge topic 'corret_nvhpc_fortran_compile_deps' into release-3.21
1a828043b7 NVHPC: only use '-MD' for the C and CXX languages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6602
2021-10-07 09:11:20 -04:00
Robert Maynard
1a828043b7 NVHPC: only use '-MD' for the C and CXX languages
CMake shouldn't use '-MD' for nvfortran to generate dependency information.

Fixes #22723
2021-10-06 16:21:29 -04:00
Hiroshi Miura
6e8754c625 FindJasper: Add IMPORTED target
Fixes: #20601
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
2021-10-06 11:28:09 -04:00
Hiroshi Miura
bdbce845cd FindJasper: Add JASPER_INCLUDE_DIRS result variable
The `JASPER_INCLUDE_DIR` cache entry is not supposed to be the public
result variable.
2021-10-06 11:20:54 -04:00