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}")