| macro(RuntimeLibrary_check tgt rtl_expect) | |
| set(vcProjectFile "${RunCMake_TEST_BINARY_DIR}/${tgt}.vcxproj") | |
| if(NOT EXISTS "${vcProjectFile}") | |
| set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not exist.") | |
| return() | |
| endif() | |
| set(HAVE_Runtimelibrary 0) | |
| file(STRINGS "${vcProjectFile}" lines) | |
| foreach(line IN LISTS lines) | |
| if(line MATCHES "^ *<RuntimeLibrary>([^<>]*)</RuntimeLibrary>") | |
| set(rtl_actual "${CMAKE_MATCH_1}") | |
| if(NOT "${rtl_actual}" STREQUAL "${rtl_expect}") | |
| set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj has RuntimeLibrary '${rtl_actual}', not '${rtl_expect}'.") | |
| return() | |
| endif() | |
| set(HAVE_Runtimelibrary 1) | |
| break() | |
| endif() | |
| endforeach() | |
| if(NOT HAVE_Runtimelibrary AND NOT "${rtl_expect}" STREQUAL "") | |
| set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not have a RuntimeLibrary field.") | |
| return() | |
| endif() | |
| endmacro() | |
| RuntimeLibrary_check(default-C MultiThreadedDebugDLL) | |
| RuntimeLibrary_check(default-CXX MultiThreadedDebugDLL) | |
| RuntimeLibrary_check(empty-C "") | |
| RuntimeLibrary_check(empty-CXX "") | |
| RuntimeLibrary_check(MTd-C MultiThreadedDebug) | |
| RuntimeLibrary_check(MTd-CXX MultiThreadedDebug) | |
| RuntimeLibrary_check(MT-C MultiThreaded) | |
| RuntimeLibrary_check(MT-CXX MultiThreaded) |