diff options
author | Brad King <brad.king@kitware.com> | 2021-04-27 16:27:29 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-04-28 14:20:59 (GMT) |
commit | b7193ab18f74a3b6eb6c24bac31384863ee87ffc (patch) | |
tree | cf03dc21f44de751ad54392016f6cdb80a50bc9a /Modules | |
parent | 21c40086ee59bb44a286d1820089fbc7787d014a (diff) | |
download | CMake-b7193ab18f74a3b6eb6c24bac31384863ee87ffc.zip CMake-b7193ab18f74a3b6eb6c24bac31384863ee87ffc.tar.gz CMake-b7193ab18f74a3b6eb6c24bac31384863ee87ffc.tar.bz2 |
Intel: Update Classic compiler version detection for 2021
The value of the `__INTEL_COMPILER` macro changed convention starting
in version 2021.
Fixes: #22120
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/CMakeFortranCompilerId.F.in | 19 | ||||
-rw-r--r-- | Modules/Compiler/Intel-DetermineCompiler.cmake | 23 |
2 files changed, 30 insertions, 12 deletions
diff --git a/Modules/CMakeFortranCompilerId.F.in b/Modules/CMakeFortranCompilerId.F.in index 0f547e9..143511b 100644 --- a/Modules/CMakeFortranCompilerId.F.in +++ b/Modules/CMakeFortranCompilerId.F.in @@ -38,12 +38,21 @@ # endif #elif defined(__INTEL_COMPILER) || defined(__ICC) PRINT *, 'INFO:compiler[Intel]' -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +! __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later. +# if __INTEL_COMPILER < 2021 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# 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 -# 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 # if defined(__INTEL_COMPILER_BUILD_DATE) # define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) diff --git a/Modules/Compiler/Intel-DetermineCompiler.cmake b/Modules/Compiler/Intel-DetermineCompiler.cmake index c31aa77..3c1fde2 100644 --- a/Modules/Compiler/Intel-DetermineCompiler.cmake +++ b/Modules/Compiler/Intel-DetermineCompiler.cmake @@ -2,16 +2,25 @@ set(_compiler_id_pp_test "defined(__INTEL_COMPILER) || defined(__ICC)") set(_compiler_id_version_compute " - /* __INTEL_COMPILER = VRP */ -# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__INTEL_COMPILER/100) -# 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) + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__INTEL_COMPILER/100) +# 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 -# 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 # 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) # endif # if defined(_MSC_VER) |