From 22d5063c551d3c08c0a4ad8b80e08b793d53093d Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu, 10 Sep 2015 16:23:27 +0300
Subject: [PATCH] This patch fixes a command line that is too long (over 100K!)
 and is rejected by /bin/sh.

Upstream-Status: Backport [should appear in 2.10, http://trac.webkit.org/changeset/184856]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>

---
 Source/WebKit2/PlatformGTK.cmake                   | 11 ++++++-----
 Tools/gtk/generate-inspector-gresource-manifest.py | 16 ++++++++++++----
 2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/Source/WebKit2/PlatformGTK.cmake b/Source/WebKit2/PlatformGTK.cmake
index a13af7c..058c241 100644
--- a/Source/WebKit2/PlatformGTK.cmake
+++ b/Source/WebKit2/PlatformGTK.cmake
@@ -408,7 +408,7 @@ set(WebKit2WebExtension_INSTALLED_HEADERS
     ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h
 )
 
-file(GLOB InspectorFiles
+set(InspectorFiles
     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/*.html
     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/Base/*.js
     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/Controllers/*.css
@@ -423,13 +423,14 @@ file(GLOB InspectorFiles
     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/Views/*.js
     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/Images/gtk/*.png
     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/UserInterface/Images/gtk/*.svg
-)
-
-list(APPEND InspectorFiles
     ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js
     ${DERIVED_SOURCES_WEBINSPECTORUI_DIR}/UserInterface/Protocol/InspectorBackendCommands.js
 )
 
+file(GLOB InspectorFilesDependencies
+    ${InspectorFiles}
+)
+
 # This is necessary because of a conflict between the GTK+ API WebKitVersion.h and one generated by WebCore.
 list(INSERT WebKit2_INCLUDE_DIRECTORIES 0
     "${FORWARDING_HEADERS_WEBKIT2GTK_DIR}"
@@ -564,7 +565,7 @@ add_custom_command(
 
 add_custom_command(
     OUTPUT ${DERIVED_SOURCES_WEBKIT2GTK_DIR}/InspectorGResourceBundle.xml
-    DEPENDS ${InspectorFiles}
+    DEPENDS ${InspectorFilesDependencies}
             ${TOOLS_DIR}/gtk/generate-inspector-gresource-manifest.py
     COMMAND ${TOOLS_DIR}/gtk/generate-inspector-gresource-manifest.py --output=${DERIVED_SOURCES_WEBKIT2GTK_DIR}/InspectorGResourceBundle.xml ${InspectorFiles}
     VERBATIM
diff --git a/Tools/gtk/generate-inspector-gresource-manifest.py b/Tools/gtk/generate-inspector-gresource-manifest.py
index 0687c4c..03060cf 100755
--- a/Tools/gtk/generate-inspector-gresource-manifest.py
+++ b/Tools/gtk/generate-inspector-gresource-manifest.py
@@ -16,6 +16,7 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 import argparse
+import glob
 import os
 import sys
 
@@ -26,10 +27,17 @@ BASE_DIR = 'WebInspectorUI/'
 def get_filenames(args):
     filenames = []
 
-    for filename in args:
-        base_dir_index = filename.rfind(BASE_DIR)
-        if base_dir_index != -1:
-            filenames.append(filename[base_dir_index + len(BASE_DIR):])
+    for pattern in args:
+        paths = glob.glob(pattern)
+        for filename in paths:
+            base_dir_index = filename.rfind(BASE_DIR)
+            if base_dir_index != -1:
+                name = filename[base_dir_index + len(BASE_DIR):]
+                # The result should use forward slashes, thus make sure any os-specific
+                # separator, added by the glob.glob() call, is properly replaced
+                if os.sep != '/':
+                    name = name.replace(os.sep, '/')
+                filenames.append(name)
     return filenames
 
 
-- 
2.1.4

