mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-18 00:02:21 +08:00
Intel: Update Classic compiler version detection for 2021
The value of the `__INTEL_COMPILER` macro changed convention starting in version 2021. Fixes: #22120
This commit is contained in:
@@ -351,3 +351,11 @@ Changes made since CMake 3.20.0 include the following.
|
|||||||
iOS, tvOS and watchOS should now default to ``@rpath`` instead of using
|
iOS, tvOS and watchOS should now default to ``@rpath`` instead of using
|
||||||
a full absolute path and failing at runtime when the library or framework
|
a full absolute path and failing at runtime when the library or framework
|
||||||
is embedded in an application bundle (see :prop_tgt:`XCODE_EMBED_<type>`).
|
is embedded in an application bundle (see :prop_tgt:`XCODE_EMBED_<type>`).
|
||||||
|
|
||||||
|
3.20.2
|
||||||
|
------
|
||||||
|
|
||||||
|
* The Intel Classic 2021 compiler version numbers are now detected correctly
|
||||||
|
as having major version 2021. CMake 3.20.1 and below were not aware of a
|
||||||
|
change to the identification macro version scheme made by Intel starting
|
||||||
|
in version 2021, and detected the version as 20.2.
|
||||||
|
@@ -38,12 +38,21 @@
|
|||||||
# endif
|
# endif
|
||||||
#elif defined(__INTEL_COMPILER) || defined(__ICC)
|
#elif defined(__INTEL_COMPILER) || defined(__ICC)
|
||||||
PRINT *, 'INFO:compiler[Intel]'
|
PRINT *, 'INFO:compiler[Intel]'
|
||||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
! __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later.
|
||||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
# if __INTEL_COMPILER < 2021
|
||||||
# if defined(__INTEL_COMPILER_UPDATE)
|
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
||||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
|
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
||||||
|
# if defined(__INTEL_COMPILER_UPDATE)
|
||||||
|
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
|
||||||
|
# else
|
||||||
|
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
||||||
|
# endif
|
||||||
# else
|
# else
|
||||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
|
||||||
|
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
|
||||||
|
! The third version component from --version is an update index,
|
||||||
|
! but no macro is provided for it.
|
||||||
|
# define COMPILER_VERSION_PATCH DEC(0)
|
||||||
# endif
|
# endif
|
||||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
||||||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
||||||
|
@@ -2,16 +2,25 @@
|
|||||||
set(_compiler_id_pp_test "defined(__INTEL_COMPILER) || defined(__ICC)")
|
set(_compiler_id_pp_test "defined(__INTEL_COMPILER) || defined(__ICC)")
|
||||||
|
|
||||||
set(_compiler_id_version_compute "
|
set(_compiler_id_version_compute "
|
||||||
/* __INTEL_COMPILER = VRP */
|
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
|
||||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__INTEL_COMPILER/100)
|
except that a few beta releases use the old format with V=2021. */
|
||||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__INTEL_COMPILER/10 % 10)
|
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
|
||||||
# if defined(__INTEL_COMPILER_UPDATE)
|
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__INTEL_COMPILER/100)
|
||||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__INTEL_COMPILER_UPDATE)
|
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__INTEL_COMPILER/10 % 10)
|
||||||
|
# if defined(__INTEL_COMPILER_UPDATE)
|
||||||
|
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__INTEL_COMPILER_UPDATE)
|
||||||
|
# else
|
||||||
|
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__INTEL_COMPILER % 10)
|
||||||
|
# endif
|
||||||
# else
|
# else
|
||||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__INTEL_COMPILER % 10)
|
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__INTEL_COMPILER)
|
||||||
|
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__INTEL_COMPILER_UPDATE)
|
||||||
|
/* The third version component from --version is an update index,
|
||||||
|
but no macro is provided for it. */
|
||||||
|
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(0)
|
||||||
# endif
|
# endif
|
||||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
||||||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
|
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
|
||||||
# define @PREFIX@COMPILER_VERSION_TWEAK @MACRO_DEC@(__INTEL_COMPILER_BUILD_DATE)
|
# define @PREFIX@COMPILER_VERSION_TWEAK @MACRO_DEC@(__INTEL_COMPILER_BUILD_DATE)
|
||||||
# endif
|
# endif
|
||||||
# if defined(_MSC_VER)
|
# if defined(_MSC_VER)
|
||||||
|
Reference in New Issue
Block a user