summaryrefslogtreecommitdiffstats
path: root/WebKitTools/Scripts/enumerate-included-framework-headers
diff options
context:
space:
mode:
Diffstat (limited to 'WebKitTools/Scripts/enumerate-included-framework-headers')
-rwxr-xr-xWebKitTools/Scripts/enumerate-included-framework-headers61
1 files changed, 61 insertions, 0 deletions
diff --git a/WebKitTools/Scripts/enumerate-included-framework-headers b/WebKitTools/Scripts/enumerate-included-framework-headers
new file mode 100755
index 0000000..598a790
--- /dev/null
+++ b/WebKitTools/Scripts/enumerate-included-framework-headers
@@ -0,0 +1,61 @@
+#!/bin/sh
+# Copyright (C) 2009, 2010 University of Szeged
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY UNIVERSITY OF SZEGED ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UNIVERSITY OF SZEGED OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# A script to find and enumerate headers included from the given frameworks by files in the
+# current directory (and subdirectories).
+
+# FIXME: This should be rewritten in perl.
+# FIXME: Currently only works for qt.
+
+platform_prefixes=android/\|brew/\|cf/\|chromium/\|curl\|efl/\|gtk/\|haiku/\|mac/\|soup\|v8\|win/\|wx/
+
+for framework in $*; do
+ headers=`find . \( -name '*.cpp' -o -name '*.h' \) -exec grep "<$framework/" {} ';' | sed -e 's|.*/\(.*\.h\).*|\1|' | sort -u`
+
+ for header in $headers
+ do
+ header_paths=`find ../$framework -name $header | sed "s/..\/$framework\///"`
+
+ if test `echo $header_paths | wc -w` -eq 1
+ then
+ header_path=$header_paths
+ if test `echo $header_path | grep -c -E $platform_prefixes` -ne 0
+ then
+ continue
+ fi
+ else
+ for path in $header_paths
+ do
+ if test `echo $path | grep -c -E $platform_prefixes` -eq 0
+ then
+ header_path=$path
+ break
+ fi
+ done
+ fi
+
+ echo -n "$header_path "
+ done
+done