[cmake] Simplify Clang checks and prepare for compiler ID split
authorannulen@yandex.ru <annulen@yandex.ru@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Sep 2016 16:02:10 +0000 (16:02 +0000)
committerannulen@yandex.ru <annulen@yandex.ru@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Sep 2016 16:02:10 +0000 (16:02 +0000)
https://bugs.webkit.org/show_bug.cgi?id=162609

Reviewed by Michael Catanzaro.

CMake 3.x introduces separate compiler id for AppleClang, making condition
(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") inappropriate as check for
any clang version. Introduce COMPILER_IS_CLANG instead, which is also
shorter that CMAKE_CXX_COMPILER_ID comparison.

* CMakeLists.txt:
* Source/cmake/OptionsCommon.cmake:
* Source/cmake/WebKitHelpers.cmake:
* Source/cmake/OptionsEfl.cmake: Use CMAKE_COMPILER_IS_GNUCXX instead of
!Clang check because this is what was really meant here.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@206437 268f45cc-cd09-0410-ab3c-d52691b4dbfc

CMakeLists.txt
ChangeLog
Source/ThirdParty/gtest/CMakeLists.txt
Source/WebCore/CMakeLists.txt
Source/cmake/OptionsCommon.cmake
Source/cmake/OptionsEfl.cmake
Source/cmake/WebKitHelpers.cmake

index 6e739b3..79a17ba 100644 (file)
@@ -41,7 +41,11 @@ string(TOLOWER ${PORT} WEBKIT_PORT_DIR)
 # -----------------------------------------------------------------------------
 # Determine the compiler
 # -----------------------------------------------------------------------------
-if (CMAKE_COMPILER_IS_GNUCXX OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
+if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang")
+    set(COMPILER_IS_CLANG ON)
+endif ()
+
+if (CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG)
     set(COMPILER_IS_GCC_OR_CLANG ON)
 endif ()
 
index 219e89f..a51940a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
 2016-09-27  Konstantin Tokarev  <annulen@yandex.ru>
 
+        [cmake] Simplify Clang checks and prepare for compiler ID split
+        https://bugs.webkit.org/show_bug.cgi?id=162609
+
+        Reviewed by Michael Catanzaro.
+
+        CMake 3.x introduces separate compiler id for AppleClang, making condition
+        (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") inappropriate as check for
+        any clang version. Introduce COMPILER_IS_CLANG instead, which is also
+        shorter that CMAKE_CXX_COMPILER_ID comparison.
+
+        * CMakeLists.txt:
+        * Source/cmake/OptionsCommon.cmake:
+        * Source/cmake/WebKitHelpers.cmake:
+        * Source/cmake/OptionsEfl.cmake: Use CMAKE_COMPILER_IS_GNUCXX instead of
+        !Clang check because this is what was really meant here.
+
+2016-09-27  Konstantin Tokarev  <annulen@yandex.ru>
+
         [cmake] Added COMPILER_IS_GCC_OR_CLANG variable to simplify conditions.
         https://bugs.webkit.org/show_bug.cgi?id=162605
 
index cea356f..51c8f91 100644 (file)
@@ -39,7 +39,7 @@ add_definitions(-DGTEST_HAS_RTTI=0)
 
 # FIXME: This works around compatibility problems in the old version of the third-pary
 # googletest source code checkout. It should be removed once we upgrade to a newer version.
-if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+if (COMPILER_IS_CLANG)
     add_definitions(-DGTEST_HAS_TR1_TUPLE=0)
 endif ()
 
index af157cf..476d127 100644 (file)
@@ -3839,7 +3839,7 @@ if (ENABLE_GRAPHICS_CONTEXT_3D AND NOT WIN32)
     add_library(ANGLESupport STATIC ${ANGLESupport_SOURCES})
 
     # Suppress null conversion warnings for sources in Source/ThirdParty/ANGLE
-    if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+    if (COMPILER_IS_CLANG)
         ADD_TARGET_PROPERTIES(ANGLESupport COMPILE_FLAGS "-Wno-null-conversion")
     endif ()
 
index 04bae62..c17d5ea 100644 (file)
@@ -35,7 +35,7 @@ if (COMPILER_IS_GCC_OR_CLANG)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y")
 endif ()
 
-if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND CMAKE_GENERATOR STREQUAL "Ninja")
+if (COMPILER_IS_CLANG AND CMAKE_GENERATOR STREQUAL "Ninja")
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcolor-diagnostics")
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics")
 endif ()
@@ -154,7 +154,7 @@ if (DEBUG_FISSION)
     set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index")
 endif ()
 
-if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+if (COMPILER_IS_CLANG)
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Qunused-arguments")
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments")
 endif ()
index df64a6f..b6dca2f 100644 (file)
@@ -7,7 +7,7 @@ set(ENABLE_WEBKIT OFF)
 set(ENABLE_WEBKIT2 ON)
 
 # FIXME: Disable WERROR in clang build because of many warnings.
-if (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+if (CMAKE_COMPILER_IS_GNUCXX)
     set(ADDITIONAL_COMPILER_FLAGS ENABLE_WERROR "-Wno-error=missing-field-initializers")
 endif ()
 
index ef53565..38ffbd5 100644 (file)
@@ -16,7 +16,7 @@ macro(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target)
         endif ()
 
         # Suppress -Wparentheses-equality warning of Clang
-        if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+        if (COMPILER_IS_CLANG)
             set(OLD_COMPILE_FLAGS "-Wno-parentheses-equality ${OLD_COMPILE_FLAGS}")
         endif ()