Browse Source

VS: Add test for CMAKE_VS_GLOBALS

Mikhail Korolev 7 years ago
parent
commit
36489b85aa

+ 1 - 0
Tests/RunCMake/VS10Project/RunCMakeTest.cmake

@@ -13,3 +13,4 @@ run_cmake(VsCSharpCustomTags)
 run_cmake(VsCSharpReferenceProps)
 run_cmake(VsCSharpWithoutSources)
 run_cmake(VsSdkDirectories)
+run_cmake(VsGlobals)

+ 44 - 0
Tests/RunCMake/VS10Project/VsGlobals-check.cmake

@@ -0,0 +1,44 @@
+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(InsideGlobals FALSE)
+set(DefaultLanguageSet FALSE)
+set(MinimumVisualStudioVersionSet FALSE)
+
+file(STRINGS "${vcProjectFile}" lines)
+foreach(line IN LISTS lines)
+  if(line MATCHES "^ *<PropertyGroup Label=\"Globals\"> *$")
+    set(InsideGlobals TRUE)
+  elseif(line MATCHES "^ *<DefaultLanguage>([a-zA-Z\\-]+)</DefaultLanguage> *$")
+    if("${CMAKE_MATCH_1}" STREQUAL "en-US")
+      if(InsideGlobals)
+        message(STATUS "foo.vcxproj has correct DefaultLanguage global property")
+        set(DefaultLanguageSet TRUE)
+      else()
+        message(STATUS "DefaultLanguage is set but not within \"Globals\" property group")
+      endif()
+    endif()
+  elseif(line MATCHES "^ *<MinimumVisualStudioVersion>([0-9\\.]+)</MinimumVisualStudioVersion> *$")
+    if("${CMAKE_MATCH_1}" STREQUAL "14.0")
+      if(InsideGlobals)
+        message(STATUS "foo.vcxproj has correct MinimumVisualStudioVersion global property")
+        set(MinimumVisualStudioVersionSet TRUE)
+      else()
+        message(STATUS "MinimumVisualStudioVersion is set but not within \"Globals\" property group")
+      endif()
+    endif()
+  endif()
+endforeach()
+
+if(NOT DefaultLanguageSet)
+  set(RunCMake_TEST_FAILED "DefaultLanguageSet not found or not set correctly.")
+  return()
+endif()
+
+if(NOT MinimumVisualStudioVersionSet)
+  set(RunCMake_TEST_FAILED "MinimumVisualStudioVersionSet not found or not set correctly.")
+  return()
+endif()

+ 8 - 0
Tests/RunCMake/VS10Project/VsGlobals.cmake

@@ -0,0 +1,8 @@
+enable_language(CXX)
+
+set(CMAKE_VS_GLOBALS
+    "DefaultLanguage=en-US"
+    "MinimumVisualStudioVersion=14.0"
+)
+
+add_library(foo foo.cpp)