From 2dc77d9264f3a5b713c1742515d627c92a1b61b6 Mon Sep 17 00:00:00 2001 From: Michael Goddard Date: Mon, 25 Jul 2011 22:07:54 +1000 Subject: [PATCH] Try to make sure the config test script is installed. And try to fail a bit more gracefully if it isn't. Change-Id: I62e01c0536aa0a032940d6a9a5ccf5edcfeef221 Reviewed-on: http://codereview.qt.nokia.com/2109 Reviewed-by: Qt Sanity Bot Reviewed-by: Rohan McGovern Reviewed-by: Michael Goddard --- bin/syncqt | 14 +++++++++++--- configure | 2 +- qtbase.pro | 5 +++++ tools/configure/configureapp.cpp | 6 ++++++ 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/bin/syncqt b/bin/syncqt index 0c22cf8a6f..0dcbc4d58e 100755 --- a/bin/syncqt +++ b/bin/syncqt @@ -1320,10 +1320,18 @@ if($check_includes) { # Do configure tests now (pass some things along) # fatal tests have a non zero return -unless ($showonly) { +# If the generator is not set (e.g. someone invoking syncqt as part of configure etc, then don't run tests either) +unless ($showonly || $makefile_generator eq '') { my $configtests = dirname($0)."/qtmodule-configtests"; - if (system($EXECUTABLE_NAME, $configtests, $basedir, $out_basedir, $qtbasedir, $makefile_generator)) { - die "$configtests exited with status $?"; + if (! -f $configtests) { + $configtests = $qtbasedir."/bin/qtmodule-configtests"; + } + if (! -f $configtests) { + warn "Unable to locate qtmodule-configtests script - config tests disabled.\n"; + } else { + if (system($EXECUTABLE_NAME, $configtests, $basedir, $out_basedir, $qtbasedir, $makefile_generator)) { + die "$configtests exited with status $?"; + } } } diff --git a/configure b/configure index 35aea298ff..2bd5c06351 100755 --- a/configure +++ b/configure @@ -2577,7 +2577,7 @@ if [ "$OPT_SHADOW" = "yes" ]; then chmod 755 "$outpath/bin/syncqt" fi - for i in elf2e32_qtwrapper createpackage patch_capabilities; do + for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do rm -f "$outpath/bin/$i" if [ -x "$relpath/bin/$i" ]; then mkdir -p "$outpath/bin" diff --git a/qtbase.pro b/qtbase.pro index ecbb183471..c28bc9382b 100644 --- a/qtbase.pro +++ b/qtbase.pro @@ -135,6 +135,11 @@ syncqt.files=$$QT_BUILD_TREE/bin/syncqt win32:syncqt.files=$$QT_BUILD_TREE/bin/syncqt.bat INSTALLS += syncqt +#qtmodule-configtests +configtests.path=$$[QT_INSTALL_BINS] +configtests.files=$$QT_BUILD_TREE/bin/qtmodule-configtests +INSTALLS += configtests + #mkspecs mkspecs.path=$$[QT_INSTALL_DATA]/mkspecs mkspecs.files=$$QT_BUILD_TREE/mkspecs/qconfig.pri $$files($$QT_SOURCE_TREE/mkspecs/*) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 698b6a381e..f76b9930a7 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -221,6 +221,12 @@ Configure::Configure(int& argc, char** argv) createpackage_bat.close(); } + QFile configtests(buildPath + "/bin/qtmodule-configtests"); + if (configtests.open(QFile::WriteOnly)) { + QTextStream stream(&configtests); + stream << "#!/usr/bin/perl -w" << endl + << "require \"" << sourcePath + "/bin/qtmodule-configtests\";" << endl; + } // For Windows CE and shadow builds we need to copy these to the // build directory. QFile::copy(sourcePath + "/bin/setcepaths.bat" , buildPath + "/bin/setcepaths.bat");