summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/VS10Project/VsTargetsFileReferences-check.cmake
diff options
context:
space:
mode:
authorSoji Yamakawa <soji@andrew.cmu.edu>2016-11-12 02:34:38 (GMT)
committerBrad King <brad.king@kitware.com>2016-11-15 15:47:15 (GMT)
commitc9560a9a7b4ff56233008a9622683738765edfa5 (patch)
tree517a580c914e4b05c65b39cb1e0bfa64caecc5a2 /Tests/RunCMake/VS10Project/VsTargetsFileReferences-check.cmake
parent8b33507aba37f7aa8dc1c0d961ba49ef10679449 (diff)
downloadCMake-c9560a9a7b4ff56233008a9622683738765edfa5.zip
CMake-c9560a9a7b4ff56233008a9622683738765edfa5.tar.gz
CMake-c9560a9a7b4ff56233008a9622683738765edfa5.tar.bz2
Tests: Extend VS10Project to cover `.targets` file linking
With VS generators for 2010 and above, passing a `.targets` file to `target_link_libraries` is expected to generate content in the `.vcxproj` file to import the targets file. Add a test to cover this.
Diffstat (limited to 'Tests/RunCMake/VS10Project/VsTargetsFileReferences-check.cmake')
-rw-r--r--Tests/RunCMake/VS10Project/VsTargetsFileReferences-check.cmake45
1 files changed, 45 insertions, 0 deletions
diff --git a/Tests/RunCMake/VS10Project/VsTargetsFileReferences-check.cmake b/Tests/RunCMake/VS10Project/VsTargetsFileReferences-check.cmake
new file mode 100644
index 0000000..3d01c2c
--- /dev/null
+++ b/Tests/RunCMake/VS10Project/VsTargetsFileReferences-check.cmake
@@ -0,0 +1,45 @@
+set(files foo.vcxproj bar.vcxproj baz.vcxproj)
+
+foreach(file ${files})
+ set(vsProjectFile ${RunCMake_TEST_BINARY_DIR}/${file})
+
+ if(NOT EXISTS "${vsProjectFile}")
+ set(RunCMake_TEST_FAILED "Project file ${vsProjectFile} does not exist.")
+ return()
+ endif()
+
+ set(waldoFound FALSE)
+ set(xyzzyFound FALSE)
+ file(STRINGS "${vsProjectFile}" lines)
+ foreach(line IN LISTS lines)
+ if(line MATCHES "^ *<Import Project=.*/>$")
+ if(line MATCHES "^.*waldo.targets.*$")
+ set(waldoFound TRUE)
+ message(STATUS "${file} is importing waldo.targets")
+ elseif(line MATCHES "^.*xyzzy.targets.*$")
+ set(xyzzyFound TRUE)
+ message(STATUS "${file} is importing xyzzy.targets")
+ endif()
+ endif()
+ endforeach()
+
+ if("${file}" STREQUAL "foo.vcxproj")
+ if(NOT xyzzyFound)
+ set(RunCMake_TEST_FAILED "xyzzy.targets not imported from ${file}")
+ return()
+ endif()
+ if(waldoFound)
+ set(RunCMake_TEST_FAILED "waldo.targets imported from ${file}")
+ return()
+ endif()
+ else()
+ if(NOT xyzzyFound)
+ set(RunCMake_TEST_FAILED "xyzzy.targets not imported from ${file}")
+ return()
+ endif()
+ if(NOT waldoFound)
+ set(RunCMake_TEST_FAILED "waldo.targets not imported from ${file}")
+ return()
+ endif()
+ endif()
+endforeach()