Skip to content

Commit 668f48f

Browse files
authored
Use CMAKE_C_COMPILER_VERSION instead of dumpversion calls (#4698)
* Use CMAKE_C_COMPILER_VERSION throughout
1 parent 39c9606 commit 668f48f

File tree

3 files changed

+13
-30
lines changed

3 files changed

+13
-30
lines changed

cmake/cc.cmake

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
include(CheckCCompilerFlag)
66

77
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "LSB" OR ${CMAKE_C_COMPILER_ID} MATCHES "Clang")
8-
98
set(CCOMMON_OPT "${CCOMMON_OPT} -Wall")
109
set(COMMON_PROF "${COMMON_PROF} -fno-inline")
1110
set(NO_UNINITIALIZED_WARN "-Wno-uninitialized")
11+
set(GCC_VERSION ${CMAKE_C_COMPILER_VERSION})
1212

1313
if (QUIET_MAKE)
1414
set(CCOMMON_OPT "${CCOMMON_OPT} ${NO_UNINITIALIZED_WARN} -Wno-unused")
@@ -140,7 +140,6 @@ endif ()
140140
if (${CORE} STREQUAL COOPERLAKE)
141141
if (NOT DYNAMIC_ARCH)
142142
if (NOT NO_AVX512)
143-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
144143
if (${GCC_VERSION} VERSION_GREATER 10.1 OR ${GCC_VERSION} VERSION_EQUAL 10.1)
145144
set (CCOMMON_OPT "${CCOMMON_OPT} -march=cooperlake")
146145
else ()
@@ -153,7 +152,6 @@ endif ()
153152
if (${CORE} STREQUAL SAPPHIRERAPIDS)
154153
if (NOT DYNAMIC_ARCH)
155154
if (NOT NO_AVX512)
156-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
157155
if (${GCC_VERSION} VERSION_GREATER 11.0 OR ${GCC_VERSION} VERSION_EQUAL 11.0)
158156
set (CCOMMON_OPT "${CCOMMON_OPT} -march=sapphirerapids")
159157
else ()
@@ -167,7 +165,6 @@ if (${CORE} STREQUAL ZEN)
167165
if (HAVE_AVX512VL)
168166
if (NOT DYNAMIC_ARCH)
169167
if (NOT NO_AVX512)
170-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
171168
if (${GCC_VERSION} VERSION_GREATER 13.0 OR ${GCC_VERSION} VERSION_EQUAL 13.0)
172169
set (CCOMMON_OPT "${CCOMMON_OPT} -march=znver4")
173170
else ()
@@ -180,7 +177,6 @@ endif ()
180177

181178
if (${CORE} STREQUAL A64FX)
182179
if (NOT DYNAMIC_ARCH)
183-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
184180
if (${GCC_VERSION} VERSION_GREATER 11.0 OR ${GCC_VERSION} VERSION_EQUAL 11.0)
185181
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve -mtune=a64fx")
186182
else ()
@@ -194,7 +190,6 @@ if (${CORE} STREQUAL NEOVERSEN2)
194190
if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE)
195191
set (CCOMMON_OPT "${CCOMMON_OPT} -Msve_intrinsics -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2")
196192
else ()
197-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
198193
if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4)
199194
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2")
200195
else ()
@@ -209,7 +204,6 @@ if (${CORE} STREQUAL NEOVERSEV1)
209204
if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE)
210205
set (CCOMMON_OPT "${CCOMMON_OPT} -Msve_intrinsics -march=armv8.4-a+sve -mtune=neoverse-v1")
211206
else ()
212-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
213207
if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4)
214208
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.4-a+sve -mtune=neoverse-v1")
215209
else ()
@@ -221,7 +215,6 @@ endif ()
221215

222216
if (${CORE} STREQUAL NEOVERSEN1)
223217
if (NOT DYNAMIC_ARCH)
224-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
225218
if (${GCC_VERSION} VERSION_GREATER 9.4 OR ${GCC_VERSION} VERSION_EQUAL 9.4)
226219
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve -mtune=neoverse-n1")
227220
else ()
@@ -266,23 +259,21 @@ endif ()
266259

267260
if (${CORE} STREQUAL POWER10)
268261
if (NOT DYNAMIC_ARCH)
269-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
270262
if (${GCC_VERSION} VERSION_GREATER 10.2 OR ${GCC_VERSION} VERSION_EQUAL 10.2)
271263
set (CCOMMON_OPT "${CCOMMON_OPT} -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math")
272264
else ()
273-
message(FATAL_ERROR "Compiler GCC.${GCC_VERSION} does not support Power10." )
265+
message(FATAL_ERROR "Compiler GCC ${GCC_VERSION} does not support Power10." )
274266
endif()
275267
endif ()
276268
endif ()
277269

278270
if (${CORE} STREQUAL POWER9)
279271
if (NOT DYNAMIC_ARCH)
280-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
281272
if (${GCC_VERSION} VERSION_GREATER 5.0 OR ${GCC_VERSION} VERSION_EQUAL 5.0)
282273
set (CCOMMON_OPT "${CCOMMON_OPT} -mcpu=power9 -mtune=power9 -mvsx -fno-fast-math")
283274
else ()
284275
set (CCOMMON_OPT "${CCOMMON_OPT} -mcpu=power8 -mtune=power8 -mvsx -fno-fast-math")
285-
message(WARNING "Compiler GCC.${GCC_VERSION} does not fully support Power9.")
276+
message(WARNING "Compiler GCC ${GCC_VERSION} does not fully support Power9.")
286277
endif ()
287278
endif ()
288279
endif ()

cmake/os.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
3838

3939
# Test for supporting MS_ABI
4040
# removed string parsing in favor of CMake's version comparison -hpa
41-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
41+
set(GCC_VERSION ${CMAKE_C_COMPILER_VERSION})
4242
if (${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7)
4343
# GCC Version >=4.7
4444
# It is compatible with MSVC ABI.

cmake/system.cmake

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,6 @@ include("${PROJECT_SOURCE_DIR}/cmake/prebuild.cmake")
170170
if (DEFINED TARGET)
171171
if (${TARGET} STREQUAL COOPERLAKE AND NOT NO_AVX512)
172172
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
173-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
174173
if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 10.09)
175174
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=cooperlake")
176175
else()
@@ -186,7 +185,6 @@ if (DEFINED TARGET)
186185
endif()
187186
if (${TARGET} STREQUAL SAPPHIRERAPIDS AND NOT NO_AVX512)
188187
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
189-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
190188
if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 11.0)
191189
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=sapphirerapids")
192190
else()
@@ -209,7 +207,6 @@ if (DEFINED TARGET)
209207

210208
if (((${TARGET} STREQUAL ZEN) AND HAVE_AVX512VL) AND NOT NO_AVX512)
211209
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
212-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
213210
if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 12.99)
214211
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=znver4")
215212
else()
@@ -227,8 +224,7 @@ if (DEFINED TARGET)
227224

228225
if ((${TARGET} STREQUAL HASWELL OR (${TARGET} STREQUAL ZEN AND NOT HAVE_AVX512VL)) AND NOT NO_AVX2)
229226
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
230-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
231-
if (${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7)
227+
if (CMAKE_C_COMPILER_VERSION} VERSION_GREATER 4.7 OR CMAKE_C_COMPILER_VERSION VERSION_EQUAL 4.7)
232228
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2")
233229
endif()
234230
elseif (${CMAKE_C_COMPILER_ID} STREQUAL "CLANG")
@@ -267,20 +263,18 @@ if (DEFINED TARGET)
267263
endif()
268264

269265
if (${TARGET} STREQUAL POWER10)
270-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
271-
if (${GCC_VERSION} VERSION_GREATER 10.2 OR ${GCC_VERSION} VERSION_EQUAL 10.2)
266+
if (CMAKE_C_COMPILER VERSION VERSION_GREATER 10.2 OR CMAKE_C_COMPILER_VERSION VERSION_EQUAL 10.2)
272267
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math")
273268
else ()
274-
message(FATAL_ERROR "Compiler GCC.${GCC_VERSION} does not support Power10.")
269+
message(FATAL_ERROR "Compiler GCC ${CMAKE_C_COMPILER_VERSION} does not support Power10.")
275270
endif()
276271
endif()
277272
if (${TARGET} STREQUAL POWER9)
278-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
279-
if (${GCC_VERSION} VERSION_GREATER 5.0 OR ${GCC_VERSION} VERSION_EQUAL 5.0)
273+
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER 5.0 OR CMAKE_C_COMPILER_VERSION VERSION_EQUAL 5.0)
280274
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power9 -mtune=power9 -mvsx -fno-fast-math")
281275
else ()
282276
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power8 -mtune=power8 -mvsx -fno-fast-math")
283-
message(WARNING "Compiler GCC.${GCC_VERSION} does not support fully Power9.")
277+
message(WARNING "Compiler GCC ${CMAKE_C_COMPILER_VERSION} does not support fully Power9.")
284278
endif()
285279
endif()
286280
if (${TARGET} STREQUAL POWER8)
@@ -291,23 +285,21 @@ if (${TARGET} STREQUAL NEOVERSEV1)
291285
if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE)
292286
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -Msve_intrinsics -march=armv8.4-a+sve -mtune=neoverse-v1")
293287
else ()
294-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
295-
if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4)
288+
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER 10.4 OR CMAKE_C_COMPILER_VERSION VERSION_EQUAL 10.4)
296289
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=armv8.4-a+sve -mtune=neoverse-v1")
297290
else ()
298-
message(FATAL_ERROR "Compiler ${CMAKE_C_COMPILER} ${GCC_VERSION} does not support Neoverse V1.")
291+
message(FATAL_ERROR "Compiler ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_VERSION} does not support Neoverse V1.")
299292
endif()
300293
endif()
301294
endif()
302295
if (${TARGET} STREQUAL NEOVERSEN2)
303296
if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE)
304297
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -Msve-intrinsics -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2")
305298
else ()
306-
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
307-
if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4)
299+
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER 10.4 OR CMAKE_C_COMPILER_VERSION VERSION_EQUAL 10.4)
308300
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2")
309301
else ()
310-
message(FATAL_ERROR "Compiler $${CMAKE_C_COMPILER} {GCC_VERSION} does not support Neoverse N2.")
302+
message(FATAL_ERROR "Compiler $${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_VERSION} does not support Neoverse N2.")
311303
endif()
312304
endif()
313305
endif()

0 commit comments

Comments
 (0)