summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure21
-rw-r--r--mkspecs/features/qt_build_paths.prf3
-rw-r--r--mkspecs/features/qt_module_headers.prf8
-rw-r--r--mkspecs/features/qt_module_pris.prf15
-rw-r--r--qmake/Makefile.unix4
-rw-r--r--qmake/Makefile.win322
-rw-r--r--tools/configure/configureapp.cpp7
7 files changed, 44 insertions, 16 deletions
diff --git a/configure b/configure
index 43e7f8851e..1e15220ca1 100755
--- a/configure
+++ b/configure
@@ -2389,13 +2389,6 @@ fi
if [ "$OPT_SHADOW" = "yes" ]; then
echo "Preparing build tree..."
- if [ -z "$PERL" ]; then
- echo
- echo "You need perl in your PATH to make a shadow build."
- echo "Cannot proceed."
- exit 1
- fi
-
[ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
# save a pre-existing mkspecs/modules dir
@@ -3895,7 +3888,14 @@ fi
# -----------------------------------------------------------------------------
# symlink includes
-if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt.pl" ]; then
+if [ -e "$relpath/.git" ]; then
+ if [ -z "$PERL" ]; then
+ echo
+ echo "You need perl in your PATH to make a build from GIT."
+ echo "Cannot proceed."
+ exit 1
+ fi
+
"$relpath/bin/syncqt.pl" -minimal -module QtCore "$relpath" || exit 1
fi
@@ -4028,6 +4028,11 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
echo "BUILD_PATH = $adjoutpath" >> "$mkfile"
echo "SOURCE_PATH = $adjrelpath" >> "$mkfile"
+ if [ -e "$relpath/.git" ]; then
+ echo 'INC_PATH = $(BUILD_PATH)/include' >> "$mkfile"
+ else
+ echo 'INC_PATH = $(SOURCE_PATH)/include' >> "$mkfile"
+ fi
echo "QMAKESPEC = $adjqmakespec" >> "$mkfile"
echo "QT_VERSION = $QT_VERSION" >> "$mkfile"
echo "EXTRA_CFLAGS = $EXTRA_CFLAGS" >> "$mkfile"
diff --git a/mkspecs/features/qt_build_paths.prf b/mkspecs/features/qt_build_paths.prf
index 03b43e3153..25fc2c3033 100644
--- a/mkspecs/features/qt_build_paths.prf
+++ b/mkspecs/features/qt_build_paths.prf
@@ -16,6 +16,9 @@ isEmpty(MODULE_BASE_DIR): MODULE_BASE_DIR = $$MODULE_PROFILE_DIR
isEmpty(MODULE_BASE_OUTDIR): MODULE_BASE_OUTDIR = $$shadowed($$MODULE_BASE_DIR)
isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR
+exists($$MODULE_PROFILE_DIR/.git): \
+ CONFIG += git_build
+
!prefix_build {
QTDIR = $$[QT_HOST_PREFIX]
# Permit modules to enforce being built outside QTDIR ...
diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf
index 7591bffb19..fd6cf6b943 100644
--- a/mkspecs/features/qt_module_headers.prf
+++ b/mkspecs/features/qt_module_headers.prf
@@ -11,7 +11,7 @@
load(qt_build_paths)
-!build_pass {
+!build_pass:git_build {
qtPrepareTool(QMAKE_SYNCQT, syncqt)
minimal_syncqt {
QMAKE_SYNCQT += -minimal $$QMAKE_SYNCQT_OPTIONS
@@ -29,7 +29,11 @@ load(qt_build_paths)
minimal_syncqt: return()
#load up the headers info
-include($$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/headers.pri, "", true)
+git_build: \
+ INC_PATH = $$MODULE_BASE_OUTDIR
+else: \
+ INC_PATH = $$MODULE_BASE_DIR
+include($$INC_PATH/include/$$MODULE_INCNAME/headers.pri, "", true)
autogen_warning = \
"/* This file was generated by qmake with the info from <root>/$$relative_path($$_PRO_FILE_, $$MODULE_BASE_DIR). */"
diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf
index 77adc02259..653f753815 100644
--- a/mkspecs/features/qt_module_pris.prf
+++ b/mkspecs/features/qt_module_pris.prf
@@ -56,6 +56,18 @@ else: \
MODULE_PRIVATE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \
\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME
}
+ !git_build:!equals(_PRO_FILE_PWD_, $$OUT_PWD) {
+ pub_inc = $$replace(MODULE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, $$MODULE_BASE_DIR/include)
+ priv_inc = $$replace(MODULE_PRIVATE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, $$MODULE_BASE_DIR/include)
+ force_independent {
+ MODULE_FWD_PRI_CONT_SUFFIX = \
+ "QT.$${MODULE}.includes += $$pub_inc" \
+ "QT.$${MODULE}.private_includes += $$priv_inc"
+ } else {
+ MODULE_INCLUDES += $$pub_inc
+ MODULE_PRIVATE_INCLUDES += $$priv_inc
+ }
+ }
MODULE_PRI_CONT = \
"QT.$${MODULE}.VERSION = $${VERSION}" \
"QT.$${MODULE}.MAJOR_VERSION = $$section(VERSION, ., 0, 0)" \
@@ -97,7 +109,8 @@ else: \
"QT_MODULE_HOST_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \
"QT_MODULE_LIBEXEC_BASE = $$MODULE_BASE_OUTDIR/libexec" \
"QT_MODULE_PLUGIN_BASE = $$MODULE_BASE_OUTDIR/plugins" \
- "include($$MODULE_PRI)"
+ "include($$MODULE_PRI)" \
+ $$MODULE_FWD_PRI_CONT_SUFFIX
write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error("Aborting.")
touch($$MODULE_FWD_PRI, $$MODULE_PRI)
MODULE_PRI_FILES += $$MODULE_FWD_PRI
diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix
index 7293f4c869..9b7bfa6f8b 100644
--- a/qmake/Makefile.unix
+++ b/qmake/Makefile.unix
@@ -85,8 +85,8 @@ DEPEND_SRC = \
CPPFLAGS = -g $(EXTRA_CPPFLAGS) \
-I$(QMKSRC) -I$(QMKLIBSRC) -I$(QMKSRC)/generators -I$(QMKSRC)/generators/unix -I$(QMKSRC)/generators/win32 \
-I$(QMKSRC)/generators/mac -I$(QMKSRC)/generators/integrity \
- -I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \
- -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION) -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION)/QtCore \
+ -I$(INC_PATH) -I$(INC_PATH)/QtCore \
+ -I$(INC_PATH)/QtCore/$(QT_VERSION) -I$(INC_PATH)/QtCore/$(QT_VERSION)/QtCore \
-I$(BUILD_PATH)/src/corelib/global -DHAVE_QCONFIG_CPP \
-I$(QMAKESPEC) \
-I$(SOURCE_PATH)/tools/shared \
diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32
index 63cdf50563..7dbef61413 100644
--- a/qmake/Makefile.win32
+++ b/qmake/Makefile.win32
@@ -34,7 +34,7 @@ CFLAGS_BARE = -c -Fo./ \
-W3 -nologo -O1 \
$(CFLAGS_EXTRA) \
-I$(QMKSRC) -I$(QMKSRC)\library -I$(QMKSRC)\generators -I$(QMKSRC)\generators\unix -I$(QMKSRC)\generators\win32 -I$(QMKSRC)\generators\mac -I$(QMKSRC)\generators\integrity \
- -I$(BUILD_PATH)\include -I$(BUILD_PATH)\include\QtCore -I$(BUILD_PATH)\include\QtCore\$(QT_VERSION) -I$(BUILD_PATH)\include\QtCore\$(QT_VERSION)\QtCore \
+ -I$(INC_PATH) -I$(INC_PATH)\QtCore -I$(INC_PATH)\QtCore\$(QT_VERSION) -I$(INC_PATH)\QtCore\$(QT_VERSION)\QtCore \
-I$(BUILD_PATH)\src\corelib\global -DHAVE_QCONFIG_CPP \
-I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \
-I$(SOURCE_PATH)\tools\shared \
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 9620129509..ad2854880a 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -1987,7 +1987,7 @@ QString Configure::defaultTo(const QString &option)
return "auto";
if (option == "SYNCQT"
- && (!QFile::exists(sourcePath + "/bin/syncqt.pl")))
+ && (!QFile::exists(sourcePath + "/.git")))
return "no";
// Do not actually build the examples in production builds with -prefix, unless requested
@@ -3810,7 +3810,10 @@ void Configure::buildQmake()
QTextStream stream(&out);
stream << "#AutoGenerated by configure.exe" << endl
<< "BUILD_PATH = " << QDir::toNativeSeparators(buildPath) << endl
- << "SOURCE_PATH = " << QDir::toNativeSeparators(sourcePath) << endl;
+ << "SOURCE_PATH = " << QDir::toNativeSeparators(sourcePath) << endl
+ << "INC_PATH = " << QDir::toNativeSeparators(
+ (QFile::exists(sourcePath + "/.git") ? buildPath : sourcePath)
+ + "/include") << endl;
stream << "QT_VERSION = " << dictionary["VERSION"] << endl;
if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) {
stream << "QMAKESPEC = $(SOURCE_PATH)\\mkspecs\\win32-g++" << endl