[Kde-bindings] KDE/kdebindings/smoke
Richard Dale
Richard_Dale at tipitina.demon.co.uk
Tue Oct 9 13:18:38 UTC 2007
SVN commit 723371 by rdale:
* Restore the grab_qglobal_symbols() check as requested by Germain Garand
* However, don't enable it yet as it gives incorrect results, such as QT_NO_LISTVIEW
in qtdefines when there are QListViews in the Qt build.
CCMAIL: kde-bindings at kde.org
CCMAIL: germain at ebooksfrance.org
M +36 -0 kde/qtguess.pl.cmake
M +36 -0 qt/qtguess.pl.cmake
--- trunk/KDE/kdebindings/smoke/kde/qtguess.pl.cmake #723370:723371
@@ -36,6 +36,7 @@
my $tmp = gettmpfile();
my $qtcoreinc = '@QT_QTCORE_INCLUDE_DIR@';
+my $qtinc = '@QT_INCLUDE_DIR@';
my $allinc = '@all_includes@';
my $alllib = '-L at QT_LIBRARY_DIR@ @QT_QTGUI_LIBRARY@';
# my $alllib = '@all_libs@';
@@ -56,6 +57,7 @@
print "Number of defines to be tested : $used/$total\n\n" unless $opt_q;
open( QTDEFS, ">>".($opt_o || "qtdefines") ) or die "Can't open output file: $!\n";
+# grab_qglobal_symbols();
preliminary_test();
perform_all_tests();
@@ -66,6 +68,40 @@
#--------------------------------------------------------------#
+sub grab_qglobal_symbols
+{
+ my $cmd = "$cc -E -D__cplusplus -dM -I$qtinc -I$qtcoreinc $qtcoreinc/qglobal.h 2>/dev/null";
+print("cmd: '$cmd'\n");
+ my $symbols = `$cmd`;
+ for(0..1)
+ {
+ if( check_exit_status($?) )
+ {
+print("In grab_qglobal_symbols()\n");
+ while( $symbols =~/^#\s*define\s*(QT_\S+)/gm )
+ {
+ $qtdefs{$1} = 1;
+ }
+ print "Found ". scalar( keys %qtdefs )." predefined symbol".((scalar( keys %qtdefs ) -1)?"s":"")." in qglobal.h\n" unless ($opt_q or !(keys %qtdefs));
+ while( $symbols =~/^#\s*define\s*QT_MODULE_(\S+)/gm )
+ {
+ $qtundefs{"QT_NO_$1"} = 1;
+ }
+ print "Found ". scalar( keys %qtundefs )." undefined symbol".((scalar( keys %qtundefs ) -1)?"s":"")." in qglobal.h\n" unless ($opt_q or !(keys %qtundefs));
+ last;
+ }
+ elsif(! $_) # first try
+ {
+ print "Failed to run $cmd.\nTrying without __cplusplus (might be already defined)\n";
+ $cmd = "$cc -E -dM -I$qtinc/QtCore $qtinc/QtCore/qglobal.h 2>/dev/null";
+ $symbols = `$cmd`;
+ next;
+ }
+ }
+}
+
+#--------------------------------------------------------------#
+
sub gettmpfile
{
my $tmpdir = $ENV{'TMP'} || ".";
--- trunk/KDE/kdebindings/smoke/qt/qtguess.pl.cmake #723370:723371
@@ -36,6 +36,7 @@
my $tmp = gettmpfile();
my $qtcoreinc = '@QT_QTCORE_INCLUDE_DIR@';
+my $qtinc = '@QT_INCLUDE_DIR@';
my $allinc = '@all_includes@';
my $alllib = '@all_libs@';
@@ -55,6 +56,7 @@
print "Number of defines to be tested : $used/$total\n\n" unless $opt_q;
open( QTDEFS, ">>".($opt_o || "qtdefines") ) or die "Can't open output file: $!\n";
+# grab_qglobal_symbols();
preliminary_test();
perform_all_tests();
@@ -65,6 +67,40 @@
#--------------------------------------------------------------#
+sub grab_qglobal_symbols
+{
+ my $cmd = "$cc -E -D__cplusplus -dM -I$qtinc -I$qtcoreinc $qtcoreinc/qglobal.h 2>/dev/null";
+print("cmd: '$cmd'\n");
+ my $symbols = `$cmd`;
+ for(0..1)
+ {
+ if( check_exit_status($?) )
+ {
+print("In grab_qglobal_symbols()\n");
+ while( $symbols =~/^#\s*define\s*(QT_\S+)/gm )
+ {
+ $qtdefs{$1} = 1;
+ }
+ print "Found ". scalar( keys %qtdefs )." predefined symbol".((scalar( keys %qtdefs ) -1)?"s":"")." in qglobal.h\n" unless ($opt_q or !(keys %qtdefs));
+ while( $symbols =~/^#\s*define\s*QT_MODULE_(\S+)/gm )
+ {
+ $qtundefs{"QT_NO_$1"} = 1;
+ }
+ print "Found ". scalar( keys %qtundefs )." undefined symbol".((scalar( keys %qtundefs ) -1)?"s":"")." in qglobal.h\n" unless ($opt_q or !(keys %qtundefs));
+ last;
+ }
+ elsif(! $_) # first try
+ {
+ print "Failed to run $cmd.\nTrying without __cplusplus (might be already defined)\n";
+ $cmd = "$cc -E -dM -I$qtinc/QtCore $qtinc/QtCore/qglobal.h 2>/dev/null";
+ $symbols = `$cmd`;
+ next;
+ }
+ }
+}
+
+#--------------------------------------------------------------#
+
sub gettmpfile
{
my $tmpdir = $ENV{'TMP'} || ".";
More information about the Kde-bindings
mailing list