Switch CMake ports back to C++ 14
authormcatanzaro@igalia.com <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Jul 2018 14:43:50 +0000 (14:43 +0000)
committermcatanzaro@igalia.com <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Jul 2018 14:43:50 +0000 (14:43 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187744

Reviewed by Ryosuke Niwa.

.:

The XCode build is still not using C++ 17, it's been several months since CMake ports
switched, everything builds fine without changes if we switch back, and there have been some
unfixed problems. Let's go back to C++ 14 for now. We can switch back to C++ 17 whenever we
are ready to switch over XCode at the same time, to ensure we don't wind up with divergent
behavior for std::optional.

* Source/cmake/WebKitCompilerFlags.cmake:

Source/WTF:

Always use WTF's internal std::optional implementation, since std::optional is not part of
C++ 14.

* wtf/Optional.h:

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

ChangeLog
Source/WTF/ChangeLog
Source/WTF/wtf/Optional.h
Source/cmake/WebKitCompilerFlags.cmake

index bba8104..9de5c2a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2018-07-18  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Switch CMake ports back to C++ 14
+        https://bugs.webkit.org/show_bug.cgi?id=187744
+
+        Reviewed by Ryosuke Niwa.
+
+        The XCode build is still not using C++ 17, it's been several months since CMake ports
+        switched, everything builds fine without changes if we switch back, and there have been some
+        unfixed problems. Let's go back to C++ 14 for now. We can switch back to C++ 17 whenever we
+        are ready to switch over XCode at the same time, to ensure we don't wind up with divergent
+        behavior for std::optional.
+
+        * Source/cmake/WebKitCompilerFlags.cmake:
+
 2018-07-16  Ryosuke Niwa  <rniwa@webkit.org>
 
         Update ReadMe.md line 68
index 077e057..553f74e 100644 (file)
@@ -1,3 +1,15 @@
+2018-07-18  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Switch CMake ports back to C++ 14
+        https://bugs.webkit.org/show_bug.cgi?id=187744
+
+        Reviewed by Ryosuke Niwa.
+
+        Always use WTF's internal std::optional implementation, since std::optional is not part of
+        C++ 14.
+
+        * wtf/Optional.h:
+
 2018-07-17  Keith Miller  <keith_miller@apple.com>
 
         Revert r233630 since it broke internal wasm benchmarks
index e64a80a..a763401 100644 (file)
 # include <wtf/Compiler.h>
 # include <wtf/StdLibExtras.h>
 
-#if !COMPILER(MSVC) && !PLATFORM(COCOA) && __has_include(<optional>)
-# include <optional>
-#else
-
 # define TR2_OPTIONAL_REQUIRES(...) typename std::enable_if<__VA_ARGS__::value, bool>::type = false
 
 # if defined __GNUC__ // NOTE: GNUC is also defined for Clang
@@ -1034,8 +1030,6 @@ namespace std
 
 # undef TR2_OPTIONAL_REQUIRES
 
-#endif // defined(__cpp_lib_optional)
-
 namespace WTF {
 
 // -- WebKit Additions --
index 5512aa7..af04e8d 100644 (file)
@@ -104,16 +104,11 @@ if (COMPILER_IS_GCC_OR_CLANG)
         WEBKIT_APPEND_GLOBAL_COMPILER_FLAGS(-fno-exceptions)
         WEBKIT_APPEND_GLOBAL_CXX_FLAGS(-fno-rtti)
 
-        check_cxx_compiler_flag("-std=c++17" CXX_COMPILER_SUPPORTS_CXX17)
-        if (CXX_COMPILER_SUPPORTS_CXX17)
-            WEBKIT_APPEND_GLOBAL_CXX_FLAGS(-std=c++17)
+        check_cxx_compiler_flag("-std=c++14" CXX_COMPILER_SUPPORTS_CXX14)
+        if (CXX_COMPILER_SUPPORTS_CXX14)
+            WEBKIT_APPEND_GLOBAL_CXX_FLAGS(-std=c++14)
         else ()
-            check_cxx_compiler_flag("-std=c++1z" CXX_COMPILER_SUPPORTS_CXX1Z)
-            if (CXX_COMPILER_SUPPORTS_CXX1Z)
-                WEBKIT_APPEND_GLOBAL_CXX_FLAGS(-std=c++1z)
-            else ()
-                message(FATAL_ERROR "Compiler with C++17 support is required")
-            endif ()
+            message(FATAL_ERROR "Compiler with C++14 support is required")
         endif ()
 
         if (WIN32)