HULL/cmake/utils/arch.cmake

21 lines
567 B
CMake

include_guard(GLOBAL)
set(DETECT_ARCH_C ${CMAKE_BINARY_DIR}/detect_arch.c)
file(WRITE ${DETECT_ARCH_C}
"#include \"${SOURCE_DIR}/qcommon/q_platform.h\"
#pragma message(\"@\" ARCH_STRING \"@\")
int main(void) { return 0; }
")
try_compile(COMPILE_SUCCESS
SOURCES ${DETECT_ARCH_C}
OUTPUT_VARIABLE COMPILE_OUTPUT)
string(REGEX MATCH "^[^\@]+@([a-zA-Z0-9_]+)@.*$" HAVE_MATCH ${COMPILE_OUTPUT})
set(ARCH ${CMAKE_MATCH_1})
if(NOT COMPILE_SUCCESS OR NOT HAVE_MATCH OR NOT ARCH)
message(FATAL_ERROR "Architecture detection failed: ${COMPILE_OUTPUT}")
endif()