]> git.seodisparate.com - EntityComponentMetaSystem/commitdiff
Fixed support for Clang
authorStephen Seo <seo.disparate@gmail.com>
Sat, 5 Mar 2016 11:16:32 +0000 (20:16 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Sat, 5 Mar 2016 11:16:32 +0000 (20:16 +0900)
Minor addition to unit tests.

src/CMakeLists.txt
src/test/MetaTest.cpp

index ba94a0bd638428c4fea47a5607094c9979c582ab..944a724700b26bbec25bfa46ab632b622bf22607 100644 (file)
@@ -19,17 +19,20 @@ target_include_directories(EntityComponentSystem INTERFACE ${CMAKE_SOURCE_DIR})
 include_directories(${CMAKE_SOURCE_DIR})
 
 
-set(CMAKE_CXX_FLAGS "-std=c++14 -Wall -Wextra")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wextra")
 set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
 set(CMAKE_CXX_FLAGS_RELEASE "-O3 -D NDEBUG")
 
 if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
-    execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
+    execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
     if(NOT (GCC_VERSION VERSION_GREATER 5.0 OR GCC_VERSION VERSION_EQUAL 5.0))
         message(FATAL_ERROR "${PROJECT_NAME} requires g++ 5.0 or greater.")
     endif ()
 elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
+    execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE CLANG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+    if(NOT (CLANG_VERSION VERSION_GREATER 3.4 OR CLANG_VERSION VERSION_EQUAL 3.4))
+        message(FATAL_ERROR "${PROJECT_NAME} requires clang 3.4 or greater.")
+    endif()
 elseif(MSVC)
 else()
     message(FATAL_ERROR "Your C++ compiler does not support C++14.")
index 40ef63ceaac97cece9c758a829bed5283ed2eae8..0b8b444be9a28a511fd327d9433bb4de34a273d8 100644 (file)
@@ -124,6 +124,9 @@ TEST(Meta, Combine)
     listAllTemp = EC::Meta::IndexOf<T1, ListAll>::value;
     combinedAllTemp = EC::Meta::IndexOf<T1, CombinedAll>::value;
     EXPECT_EQ(combinedAllTemp, listAllTemp);
+
+    bool same = std::is_same<CombinedAll, ListAll>::value;
+    EXPECT_TRUE(same);
 }
 
 TEST(Meta, Morph)