Commit 8ea19caa authored by Oswald Buddenhagen's avatar Oswald Buddenhagen Committed by The Qt Project
Browse files

add -compile-examples configure option


this overrides the magic that makes examples only install their sources
in production builds.

packagers may want to force the build of the examples, so they can
package them up for demo purposes.
this is actually why we formerly had the split between demos and
examples ...

Task-number: QTBUG-30788
Change-Id: I5633f69404c5aa6846f5496e8f161a273a7a7da3
Reviewed-by: default avatarJoerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: default avatarLisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: default avatarOswald Buddenhagen <oswald.buddenhagen@digia.com>
parent c1d5f46d
dev 5.10 5.11 5.12 5.12.1 5.12.10 5.12.11 5.12.12 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13 5.13.0 5.13.1 5.13.2 5.14 5.14.0 5.14.1 5.14.2 5.15 5.15.0 5.15.1 5.15.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.9.8 6.0 6.0.0 6.1 6.1.0 6.1.1 6.1.2 6.1.3 6.2 6.2.0 6.2.1 6.2.2 old/5.1 old/5.2 wip/cmake wip/highdpi wip/lite wip/mir wip/nacl wip/network-test-server wip/remac wip/tizen wip/webassembly v5.15.0-alpha1 v5.14.1 v5.14.0 v5.14.0-rc2 v5.14.0-rc1 v5.14.0-beta3 v5.14.0-beta2 v5.14.0-beta1 v5.14.0-alpha1 v5.13.2 v5.13.1 v5.13.0 v5.13.0-rc3 v5.13.0-rc2 v5.13.0-rc1 v5.13.0-beta4 v5.13.0-beta3 v5.13.0-beta2 v5.13.0-beta1 v5.13.0-alpha1 v5.12.7 v5.12.6 v5.12.5 v5.12.4 v5.12.3 v5.12.2 v5.12.1 v5.12.0 v5.12.0-rc2 v5.12.0-rc1 v5.12.0-beta4 v5.12.0-beta3 v5.12.0-beta2 v5.12.0-beta1 v5.12.0-alpha1 v5.11.3 v5.11.2 v5.11.1 v5.11.0 v5.11.0-rc2 v5.11.0-rc1 v5.11.0-beta4 v5.11.0-beta3 v5.11.0-beta2 v5.11.0-beta1 v5.11.0-alpha1 v5.10.1 v5.10.0 v5.10.0-rc3 v5.10.0-rc2 v5.10.0-rc1 v5.10.0-beta4 v5.10.0-beta3 v5.10.0-beta2 v5.10.0-beta1 v5.10.0-alpha1 v5.9.9 v5.9.8 v5.9.7 v5.9.6 v5.9.5 v5.9.4 v5.9.3 v5.9.2 v5.9.1 v5.9.0 v5.9.0-rc2 v5.9.0-rc1 v5.9.0-beta4 v5.9.0-beta3 v5.9.0-beta2 v5.9.0-beta1 v5.9.0-alpha1 v5.8.0 v5.8.0-rc1 v5.8.0-beta1 v5.8.0-alpha1 v5.7.1 v5.7.0 v5.7.0-rc1 v5.7.0-beta1 v5.7.0-alpha1 v5.6.3 v5.6.2 v5.6.1 v5.6.1-1 v5.6.0 v5.6.0-rc1 v5.6.0-beta1 v5.6.0-alpha1 v5.5.1 v5.5.0 v5.5.0-rc1 v5.5.0-beta1 v5.5.0-alpha1 v5.4.2 v5.4.1 v5.4.0 v5.4.0-rc1 v5.4.0-beta1 v5.4.0-alpha1 v5.3.2 v5.3.1 v5.3.0 v5.3.0-rc1 v5.3.0-beta1 v5.3.0-alpha1 v5.2.1 v5.2.0 v5.2.0-rc1 v5.2.0-beta1 v5.2.0-alpha1 v5.1.1 v5.1.0 v5.1.0-rc2 v5.1.0-rc1
No related merge requests found
Showing with 43 additions and 2 deletions
......@@ -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.
......
......@@ -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 =
......
......@@ -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";
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment