]>
git.saurik.com Git - wxWidgets.git/blob - utils/ifacecheck/rungccxml.sh.in
5 # Runs gccxml on the wxWidgets include folder, in order to build the XML
6 # file to fetch to ifacecheck to check the coherency of the wxWidgets
7 # interface headers with the "real" ones.
14 gccxmloutput
="wxapi.xml" # the file where we store the gccXML output
15 preprocoutput
="wxapi-preproc.txt" # the file where we store the preprocessor's #define values
16 allheaders
="/tmp/wx-all.h" # the header which includes all wx public headers (autogenerated)
18 # the list of all wxWidgets public headers
19 listcmd
="ls wx/*.h wx/aui/*.h wx/html/*.h wx/protocol/*.h wx/richtext/*.h wx/stc/*.h wx/xml/*.h wx/xrc/*.h"
26 if [[ ! -z "$1" ]]; then
27 echo "This script does not accept arguments."
29 echo "Creates a '$gccxmloutput' file which you can pass to ifacecheck."
35 current
=$(pwd) # current path
37 #gccxmloutput="$current/$gccxmloutput"
39 cd @top_srcdir@
/include
# go to wx include folder
42 headerlist
=`$listcmd | grep -v wxshl | grep -v wx_cw | grep -v setup | grep -v xti | grep -v dde.h | grep -v fmappriv`
44 cd $current # return to the original path
46 # create the header file to pass to gccxml
47 echo "Creating the $allheaders dummy file which #includes all wxWidgets interface header files..."
48 if [[ -f $allheaders ]]; then rm $allheaders; fi
49 for f
in $headerlist; do
50 echo "#include <$f>" >> $allheaders
53 # filter the configure flags to pass to gccxml
56 # NOTE: it's important to define __WXDEBUG__ because some functions of wx
57 # are declared (and thus parsed by gcc) only if that symbol is defined.
58 # So we remove it from $flags (in case it's defined) and then readd it.
59 flags
=`echo "$flags" | sed -e 's/-pthread//g' | sed -e 's/__WXDEBUG__//g'`
61 # append some other flags:
62 flags
="-I . -I @top_srcdir@/include $flags -D__WXDEBUG__ -D__WX@TOOLKIT@__ -DWXBUILDING $allheaders"
64 # run gccxml with the same flag used for the real compilation of wx sources:
65 echo "Running gccxml on the $allheaders file... results in $gccxmloutput"
66 if [[ -f "$gccxmloutput" ]]; then rm $gccxmloutput; fi
67 gccxml
$flags -fxml=$gccxmloutput
68 if [[ $?
!= 0 ]]; then
69 echo "Errors running gccxml... aborting."
73 # now get the list of the #defined values for wx headers, so that the result
74 # can be passed to ifacecheck to aid the comparison
75 echo "Running gccxml's preprocessor on the $allheaders file... results in $preprocoutput"
76 gccxml
-E -dM $flags >$preprocoutput
77 if [[ $?
!= 0 ]]; then
78 echo "Errors running gccxml preprocessor... aborting."