From 4a9ffb5c9ee3f2b307fd9dc794d1467ed03f9bdb Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 23 Oct 2012 22:15:43 +0200 Subject: centralize module directory calculation Change-Id: I5db529676b3287013008f28623a541fee1cde6a0 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_build_paths.prf | 25 +++++++++++++++++++++++++ mkspecs/features/qt_module.prf | 20 +------------------- mkspecs/features/qt_module_fwdpri.prf | 11 +---------- mkspecs/features/qt_module_headers.prf | 6 +----- mkspecs/features/qt_tool.prf | 15 +-------------- 5 files changed, 29 insertions(+), 48 deletions(-) create mode 100644 mkspecs/features/qt_build_paths.prf (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt_build_paths.prf b/mkspecs/features/qt_build_paths.prf new file mode 100644 index 0000000000..75b83c0a5a --- /dev/null +++ b/mkspecs/features/qt_build_paths.prf @@ -0,0 +1,25 @@ +# Find the module's source root dir. +MODULE_PROFILE_DIR = $$_PRO_FILE_PWD_ +for(ever) { + exists($$MODULE_PROFILE_DIR/sync.profile):break() + nmpri = $$dirname(MODULE_PROFILE_DIR) + equals(nmpri, $$MODULE_PROFILE_DIR):error("No sync.profile found. This does not look like a Qt module source tree.") + MODULE_PROFILE_DIR = $$nmpri + unset(nmpri) +} + +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 + +QTDIR = $$[QT_HOST_PREFIX] +exists($$QTDIR/.qmake.cache) { + mod_component_base = $$QTDIR + mod_qmake_base = $$QTDIR +} else { + mod_component_base = $$MODULE_BASE_OUTDIR + mod_qmake_base = $$MODULE_QMAKE_OUTDIR +} +# Permit modules to enforce being built outside QTDIR. +force_independent: mod_component_base = $$MODULE_BASE_OUTDIR + diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 23541930e3..ac9852b0e8 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -32,19 +32,7 @@ else: \ MODULE_DEFINE = QT_$${ucmodule}_LIB MODULE_DEFINES = $$MODULE_DEFINE $$MODULE_DEFINES -# Find the module's source root dir. -MODULE_PROFILE_DIR = $$_PRO_FILE_PWD_ -for(ever) { - exists($$MODULE_PROFILE_DIR/sync.profile):break() - nmpri = $$dirname(MODULE_PROFILE_DIR) - equals(nmpri, $$MODULE_PROFILE_DIR):error("No sync.profile found. This does not look like a Qt module source tree.") - MODULE_PROFILE_DIR = $$nmpri - unset(nmpri) -} - -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 +load(qt_build_paths) # This check will be removed soon. Weird indentation to avoid reindenting the code later. !isEmpty(MODULE_PRI) { @@ -123,12 +111,6 @@ CONFIG -= fix_output_dirs !isEmpty(QMAKE_DOCS) { doc_subdir = doc - QTDIR = $$[QT_HOST_PREFIX] - !force_independent:exists($$QTDIR/.qmake.cache): \ - mod_component_base = $$QTDIR - else: \ - mod_component_base = $$MODULE_BASE_OUTDIR - unset(QMAKE_DOCS_INDEX) QMAKE_DOCS_OUTPUTDIR = $$mod_component_base/$$doc_subdir/qt$${MODULE} for(qmod, QMAKEMODULES): \ diff --git a/mkspecs/features/qt_module_fwdpri.prf b/mkspecs/features/qt_module_fwdpri.prf index 9a0fd36019..d62092cf6c 100644 --- a/mkspecs/features/qt_module_fwdpri.prf +++ b/mkspecs/features/qt_module_fwdpri.prf @@ -1,15 +1,6 @@ !build_pass { - QTDIR = $$[QT_HOST_PREFIX] - exists($$QTDIR/.qmake.cache) { - mod_component_base = $$QTDIR - mod_qmake_base = $$QTDIR - } else { - mod_component_base = $$MODULE_BASE_OUTDIR - mod_qmake_base = $$MODULE_QMAKE_OUTDIR - } - # Permit modules to enforce being built outside QTDIR. - force_independent: mod_component_base = $$MODULE_BASE_OUTDIR + load(qt_build_paths) isEmpty(MODULE_INSTALL_LIBS): MODULE_INSTALL_LIBS = $$[QT_INSTALL_LIBS/raw] diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 0340f234c5..7c9940b698 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -1,8 +1,4 @@ -QTDIR = $$[QT_HOST_PREFIX] -!force_independent:exists($$QTDIR/.qmake.cache): \ - mod_component_base = $$QTDIR -else: \ - mod_component_base = $$MODULE_BASE_OUTDIR +load(qt_build_paths) !build_pass { qtPrepareTool(QMAKE_SYNCQT, syncqt) diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf index 01a26b238e..13caa28a49 100644 --- a/mkspecs/features/qt_tool.prf +++ b/mkspecs/features/qt_tool.prf @@ -16,20 +16,7 @@ INSTALLS += target MODULE_DEPENDS = $$replace(QT, -private$, ) - # Find the module's source root dir. - MODULE_PROFILE_DIR = $$_PRO_FILE_PWD_ - for(ever) { - exists($$MODULE_PROFILE_DIR/sync.profile):break() - nmpri = $$dirname(MODULE_PROFILE_DIR) - equals(nmpri, $$MODULE_PROFILE_DIR): \ - error("No sync.profile found. This does not look like a Qt module source tree.") - MODULE_PROFILE_DIR = $$nmpri - unset(nmpri) - } - - isEmpty(MODULE_BASE_DIR): MODULE_BASE_DIR = $$MODULE_PROFILE_DIR - MODULE_BASE_OUTDIR = $$shadowed($$MODULE_BASE_DIR) - isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR + load(qt_build_paths) load(resolve_target) cmd = $$shell_path($$QMAKE_RESOLVED_TARGET) -- cgit v1.2.3