1set(csProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.csproj") 2if(NOT EXISTS "${csProjectFile}") 3 set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.") 4 return() 5endif() 6 7set(test1Reference "System") 8set(test1Tag "Hello") 9set(test1Value "World") 10 11set(test2Reference "foo2") 12set(test2Tag "Hallo") 13set(test2Value "Welt") 14 15set(tag1Found FALSE) 16set(ref1Found FALSE) 17 18file(STRINGS "${csProjectFile}" lines) 19 20foreach(i 1 2) 21 set(testReference "${test${i}Reference}") 22 set(testTag "${test${i}Tag}") 23 set(testValue "${test${i}Value}") 24 foreach(line IN LISTS lines) 25 if(line MATCHES "^ *<(Project|)Reference .*>$") 26 set(validTag FALSE) 27 if(line MATCHES "^ *<(Project|)Reference .*\".*${testReference}.*\".*>$") 28 set(validTag TRUE) 29 message(STATUS "foo.csproj is using reference ${testReference}") 30 set(ref${i}Found TRUE) 31 endif() 32 endif() 33 if(line MATCHES "^ *<${testTag}>${testValue}</${testTag}>$") 34 if(validTag) 35 message(STATUS "foo.csproj reference ${testReference} has tag ${testTag}") 36 set(tag${i}Found TRUE) 37 else() 38 message(STATUS "tag ${testTag} found in wrong place!") 39 set(tag${i}Found FALSE) 40 endif() 41 endif() 42 endforeach() 43endforeach() 44 45if(NOT tag1Found OR NOT ref1Found OR 46 NOT tag2Found OR NOT ref2Found) 47 set(RunCMake_TEST_FAILED "Custom reference XML tag not found.") 48 return() 49endif() 50