Expose source and build directories for QtBase
Also expose moc, uic, rcc, qdbusxml2cpp, include and lib
This commit is contained in:
parent
f6d0b71700
commit
a6fa179a23
69
configure
vendored
69
configure
vendored
@ -8299,10 +8299,10 @@ else
|
||||
ln -s "$outpath/src/corelib/global/qconfig.h" "$conf"
|
||||
done
|
||||
fi
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# save configuration into qconfig.pri
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
QTCONFIG="$outpath/mkspecs/qconfig.pri"
|
||||
QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
|
||||
[ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
|
||||
@ -8402,23 +8402,19 @@ else
|
||||
fi
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# save configuration into .qmake.cache
|
||||
# save configuration into qmodule.pri
|
||||
#-------------------------------------------------------------------------------
|
||||
QTMODULE="$outpath/mkspecs/qmodule.pri"
|
||||
|
||||
CACHEFILE="$outpath/.qmake.cache"
|
||||
[ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
|
||||
cat >>"$CACHEFILE.tmp" <<EOF
|
||||
CONFIG += $QMAKE_CONFIG dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build
|
||||
cat >>"$QTMODULE.tmp" <<EOF
|
||||
#paths
|
||||
QT_SOURCE_TREE = \$\$quote($relpath)
|
||||
QT_BUILD_TREE = \$\$quote($outpath)
|
||||
QT_BUILD_PARTS = $CFG_BUILD_PARTS
|
||||
QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
|
||||
QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc
|
||||
|
||||
#local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
|
||||
QMAKE_MOC = \$\$QT_BUILD_TREE/bin/moc
|
||||
QMAKE_UIC = \$\$QT_BUILD_TREE/bin/uic
|
||||
QMAKE_UIC3 = \$\$QT_BUILD_TREE/bin/uic3
|
||||
QMAKE_RCC = \$\$QT_BUILD_TREE/bin/rcc
|
||||
QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
|
||||
QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
|
||||
@ -8428,65 +8424,86 @@ EOF
|
||||
|
||||
# Ensure we can link to uninistalled libraries
|
||||
if [ "$XPLATFORM_MINGW" != "yes" ] && [ "$CFG_EMBEDDED" != "nacl" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
|
||||
echo "QMAKE_LFLAGS = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$CACHEFILE.tmp"
|
||||
echo "QMAKE_LFLAGS = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
if [ -n "$QT_CFLAGS_PSQL" ]; then
|
||||
echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$CACHEFILE.tmp"
|
||||
echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
if [ -n "$QT_LFLAGS_PSQL" ]; then
|
||||
echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$CACHEFILE.tmp"
|
||||
echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
if [ -n "$QT_CFLAGS_MYSQL" ]; then
|
||||
echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$CACHEFILE.tmp"
|
||||
echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
if [ -n "$QT_LFLAGS_MYSQL" ]; then
|
||||
echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$CACHEFILE.tmp"
|
||||
echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
if [ -n "$QT_CFLAGS_SQLITE" ]; then
|
||||
echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$CACHEFILE.tmp"
|
||||
echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
if [ -n "$QT_LFLAGS_SQLITE" ]; then
|
||||
echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$CACHEFILE.tmp"
|
||||
echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
if [ -n "$QT_LFLAGS_ODBC" ]; then
|
||||
echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$CACHEFILE.tmp"
|
||||
echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
if [ -n "$QT_LFLAGS_TDS" ]; then
|
||||
echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$CACHEFILE.tmp"
|
||||
echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
|
||||
if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
|
||||
echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$CACHEFILE.tmp"
|
||||
echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
|
||||
#dump in the OPENSSL_LIBS info
|
||||
if [ '!' -z "$OPENSSL_LIBS" ]; then
|
||||
echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$CACHEFILE.tmp"
|
||||
echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
|
||||
elif [ "$CFG_OPENSSL" = "linked" ]; then
|
||||
echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$CACHEFILE.tmp"
|
||||
echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
|
||||
#dump in the SDK info
|
||||
if [ '!' -z "$CFG_SDK" ]; then
|
||||
echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$CACHEFILE.tmp"
|
||||
echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
|
||||
# mac gcc -Xarch support
|
||||
if [ "$CFG_MAC_XARCH" = "no" ]; then
|
||||
echo "QMAKE_MAC_XARCH = no" >> "$CACHEFILE.tmp"
|
||||
echo "QMAKE_MAC_XARCH = no" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
|
||||
#dump the qmake spec
|
||||
if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
|
||||
echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
|
||||
echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$QTMODULE.tmp"
|
||||
else
|
||||
echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
|
||||
echo "QMAKESPEC = $XPLATFORM" >> "$QTMODULE.tmp"
|
||||
fi
|
||||
|
||||
# cmdline args
|
||||
cat "$QMAKE_VARS_FILE" >> "$CACHEFILE.tmp"
|
||||
cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
|
||||
rm -f "$QMAKE_VARS_FILE" 2>/dev/null
|
||||
|
||||
# replace qmodule.pri if it differs from the newly created temp file
|
||||
if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
|
||||
rm -f "$QTMODULE.tmp"
|
||||
else
|
||||
mv -f "$QTMODULE.tmp" "$QTMODULE"
|
||||
fi
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# save configuration into .qmake.cache
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
CACHEFILE="$outpath/.qmake.cache"
|
||||
[ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
|
||||
cat >>"$CACHEFILE.tmp" <<EOF
|
||||
include(\$\$PWD/mkspecs/qmodule.pri)
|
||||
CONFIG += $QMAKE_CONFIG dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build
|
||||
QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
|
||||
QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc
|
||||
|
||||
EOF
|
||||
|
||||
# incrementals
|
||||
INCREMENTAL=""
|
||||
[ "$CFG_INCREMENTAL" = "auto" ] && "$WHICH" p4 >/dev/null 2>&1 && [ "$CFG_DEV" = "yes" ] && CFG_INCREMENTAL="yes"
|
||||
|
16
mkspecs/features/qt_module.prf
Normal file
16
mkspecs/features/qt_module.prf
Normal file
@ -0,0 +1,16 @@
|
||||
# This file is loaded on-demand, before any .qmake.cache (sometimes *in* .qmake.cache), to loaded
|
||||
# important settings for modules, such as paths to QtBase and other modules.
|
||||
# Consequently, we have to do some stunts to figure out where to find qmodule.pri.
|
||||
|
||||
isEmpty(QMAKE_QT_MODULE)|!exists($$QMAKE_QT_MODULE) {
|
||||
exists($$_QMAKE_CACHE_/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$_QMAKE_CACHE_/mkspecs/qmodule.pri
|
||||
else:exists($$_QMAKE_CACHE_/qtbase/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$_QMAKE_CACHE_/qtbase/mkspecs/qmodule.pri
|
||||
else:if(!isEmpty(QT_BUILD_TREE) & exists($$QT_BUILD_TREE/mkspecs/qmodule.pri)):QMAKE_QT_MODULE = $$QT_BUILD_TREE/mkspecs/qmodule.pri
|
||||
else:exists($$[QT_INSTALL_DATA]/mkspecs/qmodule.pri):QMAKE_QT_MODULE = $$[QT_INSTALL_DATA]/mkspecs/qmodule.pri
|
||||
}
|
||||
|
||||
!exists($$QMAKE_QT_MODULE)|!include($$QMAKE_QT_MODULE, "", true) {
|
||||
error("Cannot load qmodule.pri!")
|
||||
} else {
|
||||
debug(1, "Loaded qmodule.pri from ($$QMAKE_QT_MODULE)")
|
||||
}
|
@ -2911,63 +2911,101 @@ void Configure::generateCachefile()
|
||||
QFile cacheFile(buildPath + "/.qmake.cache");
|
||||
if (cacheFile.open(QFile::WriteOnly | QFile::Text)) { // Truncates any existing file.
|
||||
QTextStream cacheStream(&cacheFile);
|
||||
|
||||
cacheStream << "include($$PWD/mkspecs/qmodule.pri)" << endl;
|
||||
|
||||
for (QStringList::Iterator var = qmakeVars.begin(); var != qmakeVars.end(); ++var) {
|
||||
cacheStream << (*var) << endl;
|
||||
}
|
||||
cacheStream << "CONFIG += " << qmakeConfig.join(" ") << " incremental msvc_mp create_prl link_prl depend_includepath QTDIR_build" << endl;
|
||||
|
||||
cacheStream.flush();
|
||||
cacheFile.close();
|
||||
}
|
||||
|
||||
// Generate qmodule.pri
|
||||
QFile configFile(dictionary[ "QT_BUILD_TREE" ] + "/mkspecs/qmodule.pri");
|
||||
if (configFile.open(QFile::WriteOnly | QFile::Text)) { // Truncates any existing file.
|
||||
QTextStream configStream(&configFile);
|
||||
|
||||
configStream << "#paths" << endl;
|
||||
configStream << "QT_BUILD_TREE = " << fixSeparators(dictionary[ "QT_BUILD_TREE" ], true) << endl;
|
||||
configStream << "QT_SOURCE_TREE = " << fixSeparators(dictionary[ "QT_SOURCE_TREE" ], true) << endl;
|
||||
QStringList buildParts;
|
||||
buildParts << "libs" << "tools" << "examples" << "demos" << "docs" << "translations";
|
||||
foreach (const QString &item, disabledBuildParts) {
|
||||
buildParts.removeAll(item);
|
||||
}
|
||||
cacheStream << "QT_BUILD_PARTS = " << buildParts.join(" ") << endl;
|
||||
configStream << "QT_BUILD_PARTS = " << buildParts.join(" ") << endl << endl;
|
||||
|
||||
//so that we can build without an install first (which would be impossible)
|
||||
configStream << "#local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR" << endl;
|
||||
configStream << "QMAKE_MOC = $$QT_BUILD_TREE" << fixSeparators("/bin/moc.exe", true) << endl;
|
||||
configStream << "QMAKE_UIC = $$QT_BUILD_TREE" << fixSeparators("/bin/uic.exe", true) << endl;
|
||||
configStream << "QMAKE_RCC = $$QT_BUILD_TREE" << fixSeparators("/bin/rcc.exe", true) << endl;
|
||||
configStream << "QMAKE_DUMPCPP = $$QT_BUILD_TREE" << fixSeparators("/bin/dumpcpp.exe", true) << endl;
|
||||
configStream << "QMAKE_INCDIR_QT = $$QT_BUILD_TREE" << fixSeparators("/include", true) << endl;
|
||||
configStream << "QMAKE_LIBDIR_QT = $$QT_BUILD_TREE" << fixSeparators("/lib", true) << endl;
|
||||
|
||||
|
||||
QString targetSpec = dictionary.contains("XQMAKESPEC") ? dictionary[ "XQMAKESPEC" ] : dictionary[ "QMAKESPEC" ];
|
||||
QString mkspec_path = fixSeparators(sourcePath + "/mkspecs/" + targetSpec);
|
||||
if (QFile::exists(mkspec_path))
|
||||
cacheStream << "QMAKESPEC = " << escapeSeparators(mkspec_path) << endl;
|
||||
configStream << "QMAKESPEC = " << escapeSeparators(mkspec_path) << endl;
|
||||
else
|
||||
cacheStream << "QMAKESPEC = " << fixSeparators(targetSpec, true) << endl;
|
||||
cacheStream << "ARCH = " << dictionary[ "ARCHITECTURE" ] << endl;
|
||||
cacheStream << "QT_BUILD_TREE = " << fixSeparators(dictionary[ "QT_BUILD_TREE" ], true) << endl;
|
||||
cacheStream << "QT_SOURCE_TREE = " << fixSeparators(dictionary[ "QT_SOURCE_TREE" ], true) << endl;
|
||||
configStream << "QMAKESPEC = " << fixSeparators(targetSpec, true) << endl;
|
||||
configStream << "ARCH = " << dictionary[ "ARCHITECTURE" ] << endl;
|
||||
|
||||
if (dictionary["QT_EDITION"] != "QT_EDITION_OPENSOURCE")
|
||||
cacheStream << "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" << endl;
|
||||
configStream << "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" << endl;
|
||||
|
||||
//so that we can build without an install first (which would be impossible)
|
||||
cacheStream << "QMAKE_MOC = $$QT_BUILD_TREE" << fixSeparators("/bin/moc.exe", true) << endl;
|
||||
cacheStream << "QMAKE_UIC = $$QT_BUILD_TREE" << fixSeparators("/bin/uic.exe", true) << endl;
|
||||
cacheStream << "QMAKE_UIC3 = $$QT_BUILD_TREE" << fixSeparators("/bin/uic3.exe", true) << endl;
|
||||
cacheStream << "QMAKE_RCC = $$QT_BUILD_TREE" << fixSeparators("/bin/rcc.exe", true) << endl;
|
||||
cacheStream << "QMAKE_DUMPCPP = $$QT_BUILD_TREE" << fixSeparators("/bin/dumpcpp.exe", true) << endl;
|
||||
cacheStream << "QMAKE_INCDIR_QT = $$QT_BUILD_TREE" << fixSeparators("/include", true) << endl;
|
||||
cacheStream << "QMAKE_LIBDIR_QT = $$QT_BUILD_TREE" << fixSeparators("/lib", true) << endl;
|
||||
if (dictionary["CETEST"] == "yes") {
|
||||
cacheStream << "QT_CE_RAPI_INC = " << fixSeparators(dictionary[ "QT_CE_RAPI_INC" ], true) << endl;
|
||||
cacheStream << "QT_CE_RAPI_LIB = " << fixSeparators(dictionary[ "QT_CE_RAPI_LIB" ], true) << endl;
|
||||
configStream << "QT_CE_RAPI_INC = " << fixSeparators(dictionary[ "QT_CE_RAPI_INC" ], true) << endl;
|
||||
configStream << "QT_CE_RAPI_LIB = " << fixSeparators(dictionary[ "QT_CE_RAPI_LIB" ], true) << endl;
|
||||
}
|
||||
|
||||
configStream << "#Qt for Windows CE c-runtime deployment" << endl
|
||||
<< "QT_CE_C_RUNTIME = " << fixSeparators(dictionary[ "CE_CRT" ], true) << endl;
|
||||
|
||||
if (dictionary["CE_SIGNATURE"] != QLatin1String("no"))
|
||||
configStream << "DEFAULT_SIGNATURE=" << dictionary["CE_SIGNATURE"] << endl;
|
||||
|
||||
if (!dictionary["QMAKE_RPATHDIR"].isEmpty())
|
||||
configStream << "QMAKE_RPATHDIR += " << dictionary["QMAKE_RPATHDIR"] << endl;
|
||||
|
||||
if (!dictionary["QT_LIBINFIX"].isEmpty())
|
||||
configStream << "QT_LIBINFIX = " << dictionary["QT_LIBINFIX"] << endl;
|
||||
|
||||
configStream << "#Qt for Symbian FPU settings" << endl;
|
||||
if (!dictionary["ARM_FPU_TYPE"].isEmpty()) {
|
||||
configStream<<"MMP_RULES += \"ARMFPU "<< dictionary["ARM_FPU_TYPE"]<< "\"";
|
||||
}
|
||||
if (!dictionary["QT_NAMESPACE"].isEmpty()) {
|
||||
configStream << "#namespaces" << endl << "QT_NAMESPACE = " << dictionary["QT_NAMESPACE"] << endl;
|
||||
}
|
||||
|
||||
// embedded
|
||||
if (!dictionary["KBD_DRIVERS"].isEmpty())
|
||||
cacheStream << "kbd-drivers += "<< dictionary["KBD_DRIVERS"]<<endl;
|
||||
configStream << "kbd-drivers += "<< dictionary["KBD_DRIVERS"]<<endl;
|
||||
if (!dictionary["GFX_DRIVERS"].isEmpty())
|
||||
cacheStream << "gfx-drivers += "<< dictionary["GFX_DRIVERS"]<<endl;
|
||||
configStream << "gfx-drivers += "<< dictionary["GFX_DRIVERS"]<<endl;
|
||||
if (!dictionary["MOUSE_DRIVERS"].isEmpty())
|
||||
cacheStream << "mouse-drivers += "<< dictionary["MOUSE_DRIVERS"]<<endl;
|
||||
configStream << "mouse-drivers += "<< dictionary["MOUSE_DRIVERS"]<<endl;
|
||||
if (!dictionary["DECORATIONS"].isEmpty())
|
||||
cacheStream << "decorations += "<<dictionary["DECORATIONS"]<<endl;
|
||||
configStream << "decorations += "<<dictionary["DECORATIONS"]<<endl;
|
||||
|
||||
if (!dictionary["QMAKE_RPATHDIR"].isEmpty())
|
||||
cacheStream << "QMAKE_RPATHDIR += "<<dictionary["QMAKE_RPATHDIR"];
|
||||
configStream << "QMAKE_RPATHDIR += "<<dictionary["QMAKE_RPATHDIR"];
|
||||
|
||||
cacheStream.flush();
|
||||
cacheFile.close();
|
||||
configStream.flush();
|
||||
configFile.close();
|
||||
}
|
||||
|
||||
// Generate qconfig.pri
|
||||
QFile configFile(dictionary[ "QT_BUILD_TREE" ] + "/mkspecs/qconfig.pri");
|
||||
if (configFile.open(QFile::WriteOnly | QFile::Text)) { // Truncates any existing file.
|
||||
QTextStream configStream(&configFile);
|
||||
|
||||
configStream << "CONFIG+= ";
|
||||
configStream << dictionary[ "BUILD" ];
|
||||
if (dictionary[ "SHARED" ] == "yes")
|
||||
@ -3027,26 +3065,6 @@ void Configure::generateCachefile()
|
||||
<< "QT_MINOR_VERSION = " << dictionary["VERSION_MINOR"] << endl
|
||||
<< "QT_PATCH_VERSION = " << dictionary["VERSION_PATCH"] << endl;
|
||||
|
||||
configStream << "#Qt for Windows CE c-runtime deployment" << endl
|
||||
<< "QT_CE_C_RUNTIME = " << fixSeparators(dictionary[ "CE_CRT" ], true) << endl;
|
||||
|
||||
if (dictionary["CE_SIGNATURE"] != QLatin1String("no"))
|
||||
configStream << "DEFAULT_SIGNATURE=" << dictionary["CE_SIGNATURE"] << endl;
|
||||
|
||||
if (!dictionary["QMAKE_RPATHDIR"].isEmpty())
|
||||
configStream << "QMAKE_RPATHDIR += " << dictionary["QMAKE_RPATHDIR"] << endl;
|
||||
|
||||
if (!dictionary["QT_LIBINFIX"].isEmpty())
|
||||
configStream << "QT_LIBINFIX = " << dictionary["QT_LIBINFIX"] << endl;
|
||||
|
||||
configStream << "#Qt for Symbian FPU settings" << endl;
|
||||
if (!dictionary["ARM_FPU_TYPE"].isEmpty()) {
|
||||
configStream<<"MMP_RULES += \"ARMFPU "<< dictionary["ARM_FPU_TYPE"]<< "\"";
|
||||
}
|
||||
if (!dictionary["QT_NAMESPACE"].isEmpty()) {
|
||||
configStream << "#namespaces" << endl << "QT_NAMESPACE = " << dictionary["QT_NAMESPACE"] << endl;
|
||||
}
|
||||
|
||||
configStream.flush();
|
||||
configFile.close();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user