diff options
Diffstat (limited to 'WebKitTools/Scripts/enumerate-included-framework-headers')
-rwxr-xr-x | WebKitTools/Scripts/enumerate-included-framework-headers | 61 |
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 |