diff options
author | Brad King <brad.king@kitware.com> | 2021-03-04 21:47:49 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-03-22 17:28:27 (GMT) |
commit | 608ef8a6fcbdd3d1a8419ff774109b8f9e5ebafb (patch) | |
tree | f25e9e15dd9a73796a5c949f6a1fa393b167a2ef /Tests/RunCMake/GeneratorToolset/TestToolsetCustomFlagTableDir-check.cmake | |
parent | 8dd8d6366576c09a44dc19d6609209ff74cd0dde (diff) | |
download | CMake-608ef8a6fcbdd3d1a8419ff774109b8f9e5ebafb.zip CMake-608ef8a6fcbdd3d1a8419ff774109b8f9e5ebafb.tar.gz CMake-608ef8a6fcbdd3d1a8419ff774109b8f9e5ebafb.tar.bz2 |
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.
Diffstat (limited to 'Tests/RunCMake/GeneratorToolset/TestToolsetCustomFlagTableDir-check.cmake')
-rw-r--r-- | Tests/RunCMake/GeneratorToolset/TestToolsetCustomFlagTableDir-check.cmake | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Tests/RunCMake/GeneratorToolset/TestToolsetCustomFlagTableDir-check.cmake b/Tests/RunCMake/GeneratorToolset/TestToolsetCustomFlagTableDir-check.cmake new file mode 100644 index 0000000..79752b1 --- /dev/null +++ b/Tests/RunCMake/GeneratorToolset/TestToolsetCustomFlagTableDir-check.cmake @@ -0,0 +1,24 @@ +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() |