summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/features')
-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
3 files changed, 23 insertions, 3 deletions
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