git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
#
 | 
						|
# Name:      check_unused_headers
 | 
						|
# Purpose:   checks all wxWidgets headers looking for headers not referenced anywhere
 | 
						|
# Usage:     run with --verbose for verbose output
 | 
						|
# Copyright: (c) 2007 Francesco Montorsi
 | 
						|
# Version:   $Id$
 | 
						|
# Licence:   wxWindows licence
 | 
						|
################################################################################
 | 
						|
 | 
						|
 | 
						|
 | 
						|
if [[ "$1" = "-v" || "$1" = "--verbose" ]]; then
 | 
						|
    verbose=yes
 | 
						|
else
 | 
						|
    verbose=no
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
me=$(basename $0)
 | 
						|
path=${0%%/$me}        # path from which the script has been launched
 | 
						|
current=$(pwd)
 | 
						|
 | 
						|
# the path where this script resides:
 | 
						|
scriptPath=$current/$path
 | 
						|
 | 
						|
# other interesting wx paths
 | 
						|
headerPath="$scriptPath/../../include"
 | 
						|
srcPath="$scriptPath/../../src"
 | 
						|
 | 
						|
# get list of wx source and header filenames
 | 
						|
# NOTE: these list won't contain the .svn backup copies of the real sources/headers
 | 
						|
# NOTE2: we keep the size of these lists small avoiding to include the prefixes 
 | 
						|
#        like e.g. ../../include so to not incurr in OS limits when passing
 | 
						|
#        them as arguments of commands
 | 
						|
cd $headerPath
 | 
						|
headerList=`find wx -name "*.h"`
 | 
						|
cd $srcPath
 | 
						|
srcList=`find . -name "*.cpp"`
 | 
						|
 | 
						|
 | 
						|
unusedHeaders=0
 | 
						|
 | 
						|
function checkIfHeaderIsUsed
 | 
						|
{
 | 
						|
    local headerToCheck="$1"
 | 
						|
    local found=no
 | 
						|
 | 
						|
    if [[ $verbose = yes ]]; then
 | 
						|
        echo -n "checking if header: $headerToCheck is used... "
 | 
						|
    fi
 | 
						|
 | 
						|
    # find the first occurrence of this header in wx sources and headers:
 | 
						|
    cd $headerPath
 | 
						|
    grep -m 1 "$headerToCheck" $headerList >/dev/null 2>&1
 | 
						|
    if [[ $? = 0 ]]; then found=yes; fi
 | 
						|
 | 
						|
    cd $srcPath
 | 
						|
    grep -m 1 "$headerToCheck" $srcList >/dev/null 2>&1
 | 
						|
    if [[ $? = 0 ]]; then found=yes; fi
 | 
						|
 | 
						|
    if [[ $found = no ]]; then
 | 
						|
 | 
						|
        if [[ $verbose = yes ]]; then
 | 
						|
            echo "no, it's not!"
 | 
						|
        fi
 | 
						|
 | 
						|
        # this header is not used anywhere...
 | 
						|
        echo "WARNING: unused header $headerToCheck"
 | 
						|
        ((( unusedHeaders++ )))
 | 
						|
    else
 | 
						|
        if [[ $verbose = yes ]]; then
 | 
						|
            echo "yes, it is"
 | 
						|
        fi
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
echo " This script will look for unused wxWidgets headers"
 | 
						|
echo " Note that some headers maybe not referenced by wxWidgets sources/headers but still"
 | 
						|
echo " be useful for user applications; others instead are simply old and forgotten."
 | 
						|
echo
 | 
						|
 | 
						|
for header in $headerList; do
 | 
						|
    checkIfHeaderIsUsed $header
 | 
						|
done
 | 
						|
 | 
						|
if [[ $unusedHeaders -gt 0 ]]; then
 | 
						|
    echo " => WARNING: found $unusedHeaders unused headers!"
 | 
						|
else
 | 
						|
    echo " => All headers are referenced in either wxWidgets sources or in other headers"
 | 
						|
fi
 |