Explorar o código

Fix CompileDefinitions test on Visual Studio.

Avoid testing unsupported spaces in define values.
Stephen Kelly %!s(int64=13) %!d(string=hai) anos
pai
achega
733deb66c6
Modificáronse 2 ficheiros con 10 adicións e 1 borrados
  1. 4 0
      Tests/CompileDefinitions/CMakeLists.txt
  2. 6 1
      Tests/CompileDefinitions/main.cpp

+ 4 - 0
Tests/CompileDefinitions/CMakeLists.txt

@@ -3,6 +3,10 @@ cmake_minimum_required(VERSION 2.8)
 
 project(CompileDefinitions)
 
+if ("${CMAKE_GENERATOR}" STREQUAL "Visual Studio 6")
+    add_definitions(-DNO_SPACES_IN_DEFINE_VALUES)
+endif()
+
 add_subdirectory(add_definitions_command)
 add_subdirectory(target_prop)
 add_subdirectory(add_definitions_command_with_target_prop)

+ 6 - 1
Tests/CompileDefinitions/main.cpp

@@ -15,11 +15,16 @@ template<>
 struct CMakeStaticAssert<true> {};
 
 static const char fun_string[] = CMAKE_IS_;
+#ifndef NO_SPACES_IN_DEFINE_VALUES
 static const char very_fun_string[] = CMAKE_IS_REALLY;
+#endif
 
 enum {
-  StringLiteralTest1 = sizeof(CMakeStaticAssert<sizeof(CMAKE_IS_) == sizeof("Fun")>),
+  StringLiteralTest1 = sizeof(CMakeStaticAssert<sizeof(CMAKE_IS_) == sizeof("Fun")>)
+#ifndef NO_SPACES_IN_DEFINE_VALUES
+  ,
   StringLiteralTest2 = sizeof(CMakeStaticAssert<sizeof(CMAKE_IS_REALLY) == sizeof("Very Fun")>)
+#endif
 };
 
 int main(int argc, char **argv)