]> git.saurik.com Git - wxWidgets.git/blame - utils/ifacecheck/rungccxml.sh.in
wxMessageBox off the main thread lost result code.
[wxWidgets.git] / utils / ifacecheck / rungccxml.sh.in
CommitLineData
2f46438b
FM
1#!/bin/bash
2
2f46438b
FM
3#
4# Runs gccxml on the wxWidgets include folder, in order to build the XML
5# file to fetch to ifacecheck to check the coherency of the wxWidgets
6# interface headers with the "real" ones.
7
8
9## CONSTANTS
10############
11
12
5570107a
FM
13gccxmloutput="wxapi.xml" # the file where we store the gccXML output
14preprocoutput="wxapi-preproc.txt" # the file where we store the preprocessor's #define values
15allheaders="/tmp/wx-all.h" # the header which includes all wx public headers (autogenerated)
2f46438b
FM
16
17# the list of all wxWidgets public headers
18listcmd="ls wx/*.h wx/aui/*.h wx/html/*.h wx/protocol/*.h wx/richtext/*.h wx/stc/*.h wx/xml/*.h wx/xrc/*.h"
19
20
21
22## MAIN
23#######
24
25if [[ ! -z "$1" ]]; then
26 echo "This script does not accept arguments."
27 echo "Usage: $0"
28 echo "Creates a '$gccxmloutput' file which you can pass to ifacecheck."
29 exit 1
30fi
31
32me=$(basename $0)
027c8a00 33current=$(pwd)/${0%%/$me} # current path
2f46438b 34
027c8a00 35gccxmloutput="$current/$gccxmloutput"
2f46438b
FM
36
37cd @top_srcdir@/include # go to wx include folder
38
39# now filter it
40headerlist=`$listcmd | grep -v wxshl | grep -v wx_cw | grep -v setup | grep -v xti | grep -v dde.h | grep -v fmappriv`
41
42cd $current # return to the original path
43
44# create the header file to pass to gccxml
8e190381 45echo "Creating the $allheaders dummy file which #includes all wxWidgets interface header files..."
2f46438b
FM
46if [[ -f $allheaders ]]; then rm $allheaders; fi
47for f in $headerlist; do
48 echo "#include <$f>" >> $allheaders
49done
50
51# filter the configure flags to pass to gccxml
15b8639e
FM
52wx_top_builddir="@wx_top_builddir@"
53top_srcdir="@top_srcdir@"
54flags="@CPPFLAGS@ @CXXFLAGS@"
2f46438b
FM
55
56# NOTE: it's important to define __WXDEBUG__ because some functions of wx
5570107a
FM
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.
2f46438b
FM
59flags=`echo "$flags" | sed -e 's/-pthread//g' | sed -e 's/__WXDEBUG__//g'`
60
5570107a
FM
61# append some other flags:
62flags="-I . -I @top_srcdir@/include $flags -D__WXDEBUG__ -D__WX@TOOLKIT@__ -DWXBUILDING $allheaders"
63
2f46438b 64# run gccxml with the same flag used for the real compilation of wx sources:
03d4f7b9 65echo "Running gccxml on the $allheaders file... results in $gccxmloutput"
2f46438b 66if [[ -f "$gccxmloutput" ]]; then rm $gccxmloutput; fi
5570107a 67gccxml $flags -fxml=$gccxmloutput
8e190381
FM
68if [[ $? != 0 ]]; then
69 echo "Errors running gccxml... aborting."
70 exit
71fi
5570107a
FM
72
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
03d4f7b9 75echo "Running gccxml's preprocessor on the $allheaders file... results in $preprocoutput"
5570107a 76gccxml -E -dM $flags >$preprocoutput
cbea3ec6
FM
77if [[ $? != 0 ]]; then
78 echo "Errors running gccxml preprocessor... aborting."
79 exit
80fi
81
2f46438b
FM
82# cleanup
83rm $allheaders