set(vcProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.vcxproj") if(NOT EXISTS "${vcProjectFile}") set(RunCMake_TEST_FAILED "Project file ${vcProjectFile} does not exist.") return() endif() set(ExecutablePathSet FALSE) set(IncludePathSet FALSE) set(ReferencePathSet FALSE) set(LibraryPathSet FALSE) set(LibraryWPathSet FALSE) set(SourcePathSet FALSE) set(ExcludePathSet FALSE) file(STRINGS "${vcProjectFile}" lines) foreach(line IN LISTS lines) if(line MATCHES "^ *]*>([^<>]+)$") if("${CMAKE_MATCH_1}" STREQUAL "$(VC_ExecutablePath_x86);C:\\Program Files\\Custom-SDK\\;") message(STATUS "foo.vcxproj has executable path set") set(ExecutablePathSet TRUE) endif() elseif(line MATCHES "^ *]*>([^<>]+)$") if("${CMAKE_MATCH_1}" STREQUAL "$(VC_IncludePath);C:\\Program Files\\Custom-SDK\\;") message(STATUS "foo.vcxproj has include path set") set(IncludePathSet TRUE) endif() elseif(line MATCHES "^ *]*>([^<>]+)$") if("${CMAKE_MATCH_1}" STREQUAL "$(VC_ReferencesPath_x86);C:\\Program Files\\Custom-SDK\\;") message(STATUS "foo.vcxproj has reference path set") set(ReferencePathSet TRUE) endif() elseif(line MATCHES "^ *]*>([^<>]+)$") if("${CMAKE_MATCH_1}" STREQUAL "$(VC_LibraryPath_x86);C:\\Program Files\\Custom-SDK\\;") message(STATUS "foo.vcxproj has library path set") set(LibraryPathSet TRUE) endif() elseif(line MATCHES "^ *]*>([^<>]+)$") if("${CMAKE_MATCH_1}" STREQUAL "$(WindowsSDK_MetadataPath);C:\\Program Files\\Custom-SDK\\;") message(STATUS "foo.vcxproj has library WinRT path set") set(LibraryWPathSet TRUE) endif() elseif(line MATCHES "^ *]*>([^<>]+)$") if("${CMAKE_MATCH_1}" STREQUAL "$(VC_SourcePath);C:\\Program Files\\Custom-SDK\\;") message(STATUS "foo.vcxproj has source path set") set(SourcePathSet TRUE) endif() elseif(line MATCHES "^ *]*>([^<>]+)$") if("${CMAKE_MATCH_1}" STREQUAL "$(VC_IncludePath);C:\\Program Files\\Custom-SDK\\;") message(STATUS "foo.vcxproj has exclude path set") set(ExcludePathSet TRUE) endif() endif() endforeach() if(NOT ExecutablePathSet) set(RunCMake_TEST_FAILED "ExecutablePath not found or not set correctly.") return() endif() if(NOT IncludePathSet) set(RunCMake_TEST_FAILED "IncludePath not found or not set correctly.") return() endif() if(NOT ReferencePathSet) set(RunCMake_TEST_FAILED "ReferencePath not found or not set correctly.") return() endif() if(NOT LibraryPathSet) set(RunCMake_TEST_FAILED "LibraryPath not found or not set correctly.") return() endif() if(NOT LibraryWPathSet) set(RunCMake_TEST_FAILED "LibraryWPath not found or not set correctly.") return() endif() if(NOT SourcePathSet) set(RunCMake_TEST_FAILED "SourcePath not found or not set correctly.") return() endif() if(NOT ExcludePathSet) set(RunCMake_TEST_FAILED "ExcludePath not found or not set correctly.") return() endif()