@@ -5,30 +5,41 @@ set(ProjectOptions_SRC_DIR "${CMAKE_CURRENT_LIST_DIR}")
55# includes a separate CMakeLists.txt file to detect the CXX/C compilers before project is called
66# Using a separate file ensures that the current scope is not contaminated by the variable
77macro (detect_compiler)
8- find_program (CMAKE_EXECUTABLE cmake)
9- execute_process (
10- COMMAND
11- " ${CMAKE_EXECUTABLE} " -S " ${ProjectOptions_SRC_DIR} /detect_compiler" -B
12- " ${CMAKE_CURRENT_BINARY_DIR} /detect_compiler" -G " ${CMAKE_GENERATOR} " "--log-level=ERROR"
13- "-Wno-dev"
14- OUTPUT_QUIET
8+ if ( NOT
9+ (DETECTED_CMAKE_CXX_COMPILER
10+ AND DETECTED_CMAKE_C_COMPILER
11+ AND DETECTED_CMAKE_CXX_COMPILER_ID
12+ AND DETECTED_CMAKE_C_COMPILER_ID
13+ AND DETECTED_CMAKE_SYSTEM_PROCESSOR
14+ AND DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR)
1515 )
1616
17- # parse the detected compilers from the cache
18- set (cache_variables
19- CMAKE_CXX_COMPILER
20- CMAKE_CXX_COMPILER_ID
21- CMAKE_C_COMPILER
22- CMAKE_C_COMPILER_ID
23- CMAKE_SYSTEM_PROCESSOR
24- CMAKE_HOST_SYSTEM_PROCESSOR
25- )
26- foreach (cache_var ${cache_variables} )
27- file (STRINGS "${CMAKE_CURRENT_BINARY_DIR} /detect_compiler/CMakeCache.txt"
28- "DETECTED_${cache_var} " REGEX "^${cache_var} :STRING=(.*)$"
17+ find_program (CMAKE_EXECUTABLE cmake)
18+ execute_process (
19+ COMMAND
20+ "${CMAKE_EXECUTABLE} " -S "${ProjectOptions_SRC_DIR} /detect_compiler" -B
21+ "${CMAKE_CURRENT_BINARY_DIR} /detect_compiler" -G "${CMAKE_GENERATOR} " "--log-level=ERROR"
22+ "-Wno-dev"
23+ OUTPUT_QUIET
2924 )
30- string (REGEX REPLACE "^${cache_var} :STRING=(.*)$" "\\ 1" "DETECTED_${cache_var} "
31- "${DETECTED_${cache_var} }"
25+
26+ # parse the detected compilers from the cache
27+ set (cache_variables
28+ CMAKE_CXX_COMPILER
29+ CMAKE_CXX_COMPILER_ID
30+ CMAKE_C_COMPILER
31+ CMAKE_C_COMPILER_ID
32+ CMAKE_SYSTEM_PROCESSOR
33+ CMAKE_HOST_SYSTEM_PROCESSOR
3234 )
33- endforeach ()
35+ foreach (cache_var ${cache_variables} )
36+ file (STRINGS "${CMAKE_CURRENT_BINARY_DIR} /detect_compiler/CMakeCache.txt"
37+ "DETECTED_${cache_var} " REGEX "^${cache_var} :STRING=(.*)$"
38+ )
39+ string (REGEX REPLACE "^${cache_var} :STRING=(.*)$" "\\ 1" "DETECTED_${cache_var} "
40+ "${DETECTED_${cache_var} }"
41+ )
42+ endforeach ()
43+
44+ endif ()
3445endmacro ()
0 commit comments