summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure22
-rw-r--r--mkspecs/features/qt_example_installs.prf3
-rw-r--r--tools/configure/configureapp.cpp20
3 files changed, 43 insertions, 2 deletions
diff --git a/configure b/configure
index e633a780bd..d11a50554f 100755
--- a/configure
+++ b/configure
@@ -880,6 +880,7 @@ QT_DEFAULT_BUILD_PARTS="libs tools examples"
CFG_BUILD_PARTS=""
CFG_NOBUILD_PARTS=""
CFG_SKIP_MODULES=""
+CFG_COMPILE_EXAMPLES=auto
CFG_RELEASE_QMAKE=no
CFG_AUDIO_BACKEND=auto
CFG_V8SNAPSHOT=auto
@@ -1404,6 +1405,13 @@ while [ "$#" -gt 0 ]; do
fi
CFG_SKIP_MODULES="$CFG_SKIP_MODULES $VAL"
;;
+ compile-examples)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_COMPILE_EXAMPLES="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
sdk)
if [ "$BUILD_ON_MAC" = "yes" ]; then
DeviceVar set !host_build:QMAKE_MAC_SDK "$VAL"
@@ -3151,6 +3159,18 @@ else
QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
fi
+# Do not actually build the examples in production builds with -prefix, unless requested
+if [ "$CFG_COMPILE_EXAMPLES" = auto ]; then
+ if [ "$CFG_DEV" = "yes" ] || [ "x$outpath" = "x$QT_INSTALL_PREFIX" ]; then
+ CFG_COMPILE_EXAMPLES=yes
+ else
+ CFG_COMPILE_EXAMPLES=no
+ fi
+fi
+if [ "$CFG_COMPILE_EXAMPLES" = "yes" ]; then
+ QMAKE_CONFIG="$QMAKE_CONFIG compile_examples"
+fi
+
#-------------------------------------------------------------------------------
# help - interactive parts of the script _after_ this section please
#-------------------------------------------------------------------------------
@@ -3452,6 +3472,8 @@ Additional options:
-skip <module> ..... Exclude an entire module from the build.
+ -compile-examples .. Compile examples even in a production build.
+
-no-gui ............ Don't build the Qt GUI module and dependencies.
+ -gui ............... Build the Qt GUI module and dependencies.
diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf
index 479a16a90b..2db752c1e4 100644
--- a/mkspecs/features/qt_example_installs.prf
+++ b/mkspecs/features/qt_example_installs.prf
@@ -93,8 +93,7 @@ probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples)
!isEmpty(allfiles): warning("remaining files in $$_PRO_FILE_PWD_: $$allfiles")
}
- # Do not actually build the examples in production builds with -prefix
- !equals(TEMPLATE, subdirs):prefix_build:!contains(QT_CONFIG, private_tests) {
+ !equals(TEMPLATE, subdirs):!compile_examples {
TEMPLATE = aux
CONFIG -= have_target qt staticlib dll
SOURCES =
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index a030351443..a83f451b81 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -276,6 +276,8 @@ Configure::Configure(int& argc, char** argv)
dictionary[ "BUILDDEV" ] = "no";
+ dictionary[ "COMPILE_EXAMPLES" ] = "auto";
+
dictionary[ "C++11" ] = "auto";
dictionary[ "SHARED" ] = "yes";
@@ -458,6 +460,13 @@ void Configure::parseCmdLine()
dictionary[ "BUILDALL" ] = "yes";
else if (configCmdLine.at(i) == "-force-debug-info")
dictionary[ "FORCEDEBUGINFO" ] = "yes";
+
+ else if (configCmdLine.at(i) == "-compile-examples") {
+ dictionary[ "COMPILE_EXAMPLES" ] = "yes";
+ } else if (configCmdLine.at(i) == "-no-compile-examples") {
+ dictionary[ "COMPILE_EXAMPLES" ] = "no";
+ }
+
else if (configCmdLine.at(i) == "-c++11")
dictionary[ "C++11" ] = "yes";
else if (configCmdLine.at(i) == "-no-c++11")
@@ -1696,6 +1705,8 @@ bool Configure::displayHelp()
desc( "-skip <module>", "Exclude an entire module from the build.\n");
+ desc( "-compile-examples", "Compile examples even in a production build.\n");
+
desc("WIDGETS", "no", "-no-widgets", "Disable Qt Widgets module.\n");
desc("GUI", "no", "-no-gui", "Disable Qt GUI module.\n");
@@ -1979,6 +1990,13 @@ QString Configure::defaultTo(const QString &option)
&& (!QFile::exists(sourcePath + "/bin/syncqt.pl")))
return "no";
+ // Do not actually build the examples in production builds with -prefix, unless requested
+ if (option == "COMPILE_EXAMPLES"
+ && QDir::cleanPath(dictionary[ "QT_BUILD_TREE" ])
+ != QDir::cleanPath(dictionary[ "QT_INSTALL_PREFIX" ])
+ && dictionary[ "BUILDDEV" ] == "no")
+ return "no";
+
return "yes";
}
@@ -2560,6 +2578,8 @@ void Configure::generateOutputVars()
if (!buildParts.contains("libs"))
buildParts += "libs";
buildParts.removeDuplicates();
+ if (dictionary[ "COMPILE_EXAMPLES" ] == "yes")
+ qmakeConfig += "compile_examples";
if (dictionary["MSVC_MP"] == "yes")
qmakeConfig += "msvc_mp";