This is needed for C++ modules because `import std` support may differ
based on the standard library implementation. Extract the information as
necessary.
Compilers may implement this by implementing a `_cmake_cxx_import_std`
function which takes the standard version as an argument (e.g., `23`)
and creating a target named `CMake::CXX${std}` that represents how
`import std;` should be represented within CMake.
Revert commit 6ddf8712cd (CMakePackageConfigHelpers: Use unique variable
name for pkg prefix, 2024-03-30, v3.29.1~8^2). It regressed existing
projects that rely on the undocumented `PACKAGE_PREFIX_DIR` variable in
package configuration files generated by `CMakePackageConfigHelpers`.
Fixes: #25873Fixes: #25885
Issue: #25827
In commit 6e8754c625 (FindJasper: Add IMPORTED target, 2021-10-06,
v3.22.0-rc1~20^2) this property was not set correctly. This was
detected by `CMP0160` because the `IMPORTED` property is read-only.
80a5a86514 GNU: Fix detection of C++ 11 mode in GCC 4.{4,5,6}
c9cc3dc646 PGI: Fix detection of C++ 14/17 modes
7f05d472a2 NVHPC: Fix detection of C++ 20 mode on NVHPC < 22.7
3587579f34 XL/XLClang: Fix detection of C++ 14 mode on Linux
863cde8c19 Intel: Fix detection of C++ 14/17 modes on Linux/macOS
1e774a86d3 Intel: Fix detection of C++ 17/20 modes on Windows
b9d4db7098 CompilerId: Clarify C and C++ standard level detection
ae18811f2e IntelLLVM: Add C standard flags on Windows
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9412
These versions of the compiler have experimental C++11 support and so do
not define `__cplusplus` correctly, but do define a feature macro we can
use to distinguish this mode.
The Intel Classic C++ compiler is based on EDG. It does not always
define `__cplusplus` correctly, but does define feature macros that we
can use to distinguish these modes.
The Intel Classic C++ compiler for Windows does not always define
`_MSVC_LANG` correctly, but does define feature macros that we can use
to distinguish these modes.
The installer no longer names debug libraries with a `d` suffix. They
are distinguished by the per-runtime-library directory containing them.
Fixes: #25856
The link flag wrapping added by commit 5d5a712303 (IntelLLVM: Pass
linker flags to the compiler when used as linker, 2022-05-27,
v3.25.0-rc1~344^2~4) is not needed with Visual Studio generators because
MSBuild invokes the linker directly. Furthermore, that commit omitted
wrapping of the per-config linker flags.
Revise the logic to add the link flag wrapping more precisely.
Fixes: #25533
Update the platform module added by commit 462fbd1eca (Add support for
ARTOS platform using GNU C with ac compiler driver, 2015-08-13,
v3.4.0-rc1~201^2) to tell `find_library` to consider library file names
starting in `lib`.
FindEXPAT needs this on ARTOS since commit 13079f382b (FindEXPAT: Fix
for debug and other modified builds, 2023-02-18, v3.27.0-rc1~463^2)
removed its explicit `libexpat` library name candidate.
Fixes: #25776
Extend commit 96a953b1ed (Add options to specify linker tool, 2023-09-27,
v3.29.0-rc1~577^2) with the `CMAKE_Swift_USING_LINKER_*` variables
needed to support `CMAKE_LINKER_TYPE` for Swift.
588371d2d5 Modules: Rename CMakeDetermine{CompileFeatures -> CompilerSupport}
4d27ef55bd Modules: Factor out helpers for GNU language standard flags
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9366
In commit 5e700411d2 (FindMPI: add IntelLLVM MPI wrappers, 2024-01-19,
v3.29.0-rc1~92^2) we added `mpiicpx.bat` for C++ on Windows, but that is
a GNU-like front-end that we do not yet support. Use `mpiicx.bat` for
both C and C++ on Windows, just as we use `icx` to compile both.
Fixes: #25807