Files
CMake/Tests/RunCMake/FileAPI/toolchains-v1.cmake
Brad King 0cc962665b fileapi: Generate partial reply when buildsystem generation fails
In particular, the `configureLog` reply is useful for IDEs to read
`CMakeFiles/CMakeConfigureLog.yaml` when configuration fails.

Fixes: #26621
2025-04-14 10:42:03 -04:00

27 lines
850 B
CMake

enable_language(CXX)
set(variable_suffixes
COMPILER 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()
file(WRITE ${CMAKE_BINARY_DIR}/toolchain_variables.json "${json}")
if(FAIL)
message(FATAL_ERROR "Intentionally fail to configure")
endif()