Files
CMake/Tests/RunCMake/GeneratorToolset/TestToolsetCustomFlagTableDir-check.cmake
Brad King 608ef8a6fc VS: Add a mostly-undocumented hook to load custom JSON flag tables
The names and formats of our VS flag tables are internal implementation
details.  However, some institutions need to maintain support for
non-public VS platforms and toolsets.  Provide a hook that their
projects can use to load custom flag table files.  This helps avoid
distributing a custom CMake package within such institutions.

Document the hook itself, but explicitly specify that the files the
hook loads are not considered a stable interface.
2021-03-22 13:28:27 -04:00

25 lines
877 B
CMake

set(vcProjectFile "${RunCMake_TEST_BINARY_DIR}/main.vcxproj")
if(NOT EXISTS "${vcProjectFile}")
set(RunCMake_TEST_FAILED "Project file\n ${vcProjectFile}\ndoes not exist.")
return()
endif()
set(TreatWarningAsError_FOUND FALSE)
file(STRINGS "${vcProjectFile}" lines)
foreach(line IN LISTS lines)
if(line MATCHES "^ *<TreatWarningAsError>([^<>]*)</TreatWarningAsError>$")
set(TreatWarningAsError_FOUND TRUE)
set(expectedValue "false")
set(actualValue "${CMAKE_MATCH_1}")
if(NOT (${actualValue} STREQUAL ${expectedValue}))
set(RunCMake_TEST_FAILED "TreatWarningAsError \"${actualValue}\" differs from expected value \"${expectedValue}\".")
return()
endif()
endif()
endforeach()
if(NOT TreatWarningAsError_FOUND)
set(RunCMake_TEST_FAILED "Property TreatWarningAsError not found in project file:\n ${vcProjectFile}.")
return()
endif()