[CMake] Only force response files for Ninja with CMake < 3.2 on Linux
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Jun 2017 18:41:09 +0000 (18:41 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Jun 2017 18:41:09 +0000 (18:41 +0000)
https://bugs.webkit.org/show_bug.cgi?id=173066

Patch by Loïc Yhuel <loic.yhuel@softathome.com> on 2017-06-07
Reviewed by Michael Catanzaro.

CMake automatically uses response files when needed, but the limit was
wrong on Linux before 3.2.

* Source/cmake/OptionsCommon.cmake:

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

ChangeLog
Source/cmake/OptionsCommon.cmake

index a2ece5a..0f2d042 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2017-06-07  Loïc Yhuel  <loic.yhuel@softathome.com>
+
+        [CMake] Only force response files for Ninja with CMake < 3.2 on Linux
+        https://bugs.webkit.org/show_bug.cgi?id=173066
+
+        Reviewed by Michael Catanzaro.
+
+        CMake automatically uses response files when needed, but the limit was
+        wrong on Linux before 3.2.
+
+        * Source/cmake/OptionsCommon.cmake:
+
 2017-06-07  Zan Dobersek  <zdobersek@igalia.com>
 
         [GCrypt] RSA-PSS support
index 50d4094..c0befa0 100644 (file)
@@ -216,17 +216,10 @@ endif ()
 
 # The Ninja generator does not yet know how to build archives in pieces, and so response
 # files must be used to deal with very long linker command lines.
-# See https://bugs.webkit.org/show_bug.cgi?id=129771
-# The Apple Toolchain doesn't support response files.
-if (NOT APPLE)
-   # If using Ninja with cmake >= 3.6.0 and icecream, then the build is broken
-   # if enable the response files. See https://bugs.webkit.org/show_bug.cgi?id=168770
-   if (NOT ((((${CMAKE_CXX_COMPILER} MATCHES ".*ccache.*") AND ($ENV{CCACHE_PREFIX} MATCHES ".*icecc.*"))
-        OR (${CMAKE_CXX_COMPILER} MATCHES ".*icecc.*")
-        OR (${AR_VERSION} MATCHES "^BSD ar [^ ]* - libarchive"))
-       AND (CMAKE_GENERATOR STREQUAL "Ninja") AND (${CMAKE_VERSION} VERSION_GREATER 3.5)))
-      set(CMAKE_NINJA_FORCE_RESPONSE_FILE 1)
-   endif ()
+# CMake does this automatically, but the condition was wrong on Linux until CMake 3.2.
+# See https://cmake.org/Bug/view.php?id=14892
+if ((CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") AND (CMAKE_VERSION VERSION_LESS 3.2))
+    set(CMAKE_NINJA_FORCE_RESPONSE_FILE 1)
 endif ()
 
 # Macros for determining HAVE values.