blob: fe986a6f0ba143f940005000596d32e6d64e9c2c [file] [log] [blame] [edit]
# If testing with a specific CMAKE_CXX_COMPILER_ARG1 value is requested, skip
# any checks that try to actually compile anything, because the compiler
# probably wouldn't understand these arguments or lack thereof.
if(DEFINED TOOLCHAINSV1_COMPILERARGS)
if(TOOLCHAINSV1_COMPILERARGS EQUAL 1)
set(CMAKE_CXX_COMPILER_ARG1 "")
elseif(TOOLCHAINSV1_COMPILERARGS EQUAL 2)
set(CMAKE_CXX_COMPILER_ARG1 "--hello world --something=other")
endif()
set(CMAKE_CXX_COMPILER_WORKS 1)
set(CMAKE_CXX_ABI_COMPILED 1)
else()
set(TOOLCHAINSV1_COMPILERARGS 0)
endif()
enable_language(CXX)
set(variable_suffixes
COMPILER COMPILER_ARG1 COMPILER_ID COMPILER_VERSION COMPILER_TARGET
IMPLICIT_INCLUDE_DIRECTORIES IMPLICIT_LINK_DIRECTORIES
IMPLICIT_LINK_FRAMEWORK_DIRECTORIES IMPLICIT_LINK_LIBRARIES
SOURCE_FILE_EXTENSIONS)
set(language CXX)
set(json "{}")
foreach(variable_suffix ${variable_suffixes})
set(variable "CMAKE_${language}_${variable_suffix}")
string(JSON json SET "${json}" "${variable}" "{}")
if(DEFINED "${variable}")
string(JSON json SET "${json}" "${variable}" "defined" "true")
string(JSON json SET "${json}" "${variable}" "value" "\"${${variable}}\"")
else()
string(JSON json SET "${json}" "${variable}" "defined" "false")
endif()
endforeach()
string(JSON json SET "${json}" "TOOLCHAINSV1_COMPILERARGS" "${TOOLCHAINSV1_COMPILERARGS}")
file(WRITE ${CMAKE_BINARY_DIR}/toolchain_variables.json "${json}")
if(FAIL)
message(FATAL_ERROR "Intentionally fail to configure")
endif()