mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-02 03:39:43 -06:00
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.
25 lines
877 B
CMake
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()
|