From b229eff08c816ebe8100dca00ab80ccd88541a5e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 23 Oct 2012 16:46:32 +0200 Subject: make qmltypes target properly respect debug vs. release Change-Id: Ia4f5ccb2b795a7594b74ea95aa0cc56a91aa7043 Reviewed-by: Joerg Bornemann Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qml_plugin.prf | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index ae5fbf28a2..8efc8c9959 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -42,13 +42,17 @@ load(qt_targets) # directory. Then review and commit the changes made to plugins.qmltypes. # !cross_compile { - isEmpty(IMPORT_VERSION): IMPORT_VERSION = $$eval(QT.$${CXX_MODULE}.MAJOR_VERSION).$$eval(QT.$${CXX_MODULE}.MINOR_VERSION) - - load(resolve_target) - qtPrepareTool(QMLPLUGINDUMP, qmlplugindump) - qmltypes.target = qmltypes - qmltypes.commands = $$QMLPLUGINDUMP $$replace(TARGETPATH, /, .) $$IMPORT_VERSION $$QMAKE_RESOLVED_TARGET > $$QMLTYPEFILE - qmltypes.depends = $$QMAKE_RESOLVED_TARGET + build_pass|!debug_and_release { + isEmpty(IMPORT_VERSION): IMPORT_VERSION = $$eval(QT.$${CXX_MODULE}.MAJOR_VERSION).$$eval(QT.$${CXX_MODULE}.MINOR_VERSION) + + load(resolve_target) + qtPrepareTool(QMLPLUGINDUMP, qmlplugindump) + qmltypes.target = qmltypes + qmltypes.commands = $$QMLPLUGINDUMP $$replace(TARGETPATH, /, .) $$IMPORT_VERSION $$QMAKE_RESOLVED_TARGET > $$QMLTYPEFILE + qmltypes.depends = $$QMAKE_RESOLVED_TARGET + } else { + qmltypes.CONFIG += recursive + } QMAKE_EXTRA_TARGETS += qmltypes } -- cgit v1.2.3 From 315c58509dcd3a2729b4efabef40fd76a6e0c5fa Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 23 Oct 2012 20:10:25 +0200 Subject: fix 'qmltypes' targets should now actually work for all build types Change-Id: I2dc1f8231737c13e95ce8aab1330b4f063951547 Reviewed-by: Joerg Bornemann Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qml_plugin.prf | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index 8efc8c9959..8a24e9b36c 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -47,8 +47,17 @@ load(qt_targets) load(resolve_target) qtPrepareTool(QMLPLUGINDUMP, qmlplugindump) + importpath.value = + for(qmod, QMAKEMODULES) { + qmod = $$section(qmod, /, 0, -3)/imports + exists($$qmod): importpath.value += $$shell_path($$qmod) + } + importpath.name = QML_IMPORT_PATH + importpath.value = $$unique(importpath.value) + qtAddToolEnv(QMLPLUGINDUMP, importpath) + TARGETPATHBASE = $$replace(TARGETPATH, \\.\\d+\$, ) qmltypes.target = qmltypes - qmltypes.commands = $$QMLPLUGINDUMP $$replace(TARGETPATH, /, .) $$IMPORT_VERSION $$QMAKE_RESOLVED_TARGET > $$QMLTYPEFILE + qmltypes.commands = $$QMLPLUGINDUMP $$replace(TARGETPATHBASE, /, .) $$IMPORT_VERSION > $$QMLTYPEFILE qmltypes.depends = $$QMAKE_RESOLVED_TARGET } else { qmltypes.CONFIG += recursive -- cgit v1.2.3 From e8170aee1fd2e423d92616fbdf1c173d9e4b7913 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 18 Sep 2012 18:26:09 +0200 Subject: move QMAKEMODULES addition to .qmake.super to qt_build_config.prf this is qt module specific magic that has no business in the generic default_pre.prf. a side effect is that every qt module now needs to have a .qmake.conf (unless it sets MODULE_QMAKE_OUTDIR, like webkit does). Change-Id: Id9e5f6eee2d8ec0c711e7217d9e1893fc9c88132 Reviewed-by: Joerg Bornemann Reviewed-by: Oswald Buddenhagen --- mkspecs/features/default_pre.prf | 14 -------------- mkspecs/features/qt_build_config.prf | 10 ++++++++++ 2 files changed, 10 insertions(+), 14 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf index 8b9cae5a6d..8f8916ae19 100644 --- a/mkspecs/features/default_pre.prf +++ b/mkspecs/features/default_pre.prf @@ -1,20 +1,6 @@ load(exclusive_builds) CONFIG = lex yacc warn_on debug exceptions depend_includepath $$CONFIG -!build_pass:exists($$_PRO_FILE_PWD_/sync.profile) { - !exists($$[QT_HOST_DATA]/.qmake.cache) { - !isEmpty(_QMAKE_SUPER_CACHE_) { - # When doing a -prefix build of top-level qt5/qt.pro, we need to announce - # this repo's module pris' location to the other repos. - isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$OUT_PWD - modpath = $$MODULE_QMAKE_OUTDIR/mkspecs/modules - !contains(QMAKEMODULES, $$modpath): \ - cache(QMAKEMODULES, add super, modpath) - unset(modpath) - } - } -} - # Populate the installdir which will be passed to qdoc in the default_post.prf # This allows a project to remove the installdir if need be, to trigger building online docs, # which Qt Creator does. diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf index a2ad4429c1..01605da5e8 100644 --- a/mkspecs/features/qt_build_config.prf +++ b/mkspecs/features/qt_build_config.prf @@ -9,6 +9,16 @@ debug(1, "Not loading qmodule.pri twice") } +!build_pass:!isEmpty(_QMAKE_SUPER_CACHE_):!exists($$[QT_HOST_DATA]/.qmake.cache) { + # When doing a -prefix build of top-level qt5/qt.pro, we need to announce + # this repo's module pris' location to the other repos. + isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$shadowed($$dirname(_QMAKE_CONF_)) + modpath = $$MODULE_QMAKE_OUTDIR/mkspecs/modules + !contains(QMAKEMODULES, $$modpath): \ + cache(QMAKEMODULES, add super, modpath) + unset(modpath) +} + mac { !isEmpty(QMAKE_RPATHDIR){ CONFIG += absolute_library_soname -- cgit v1.2.3 From a3941c2f6ef31986bd315fa41bc4df7330a89109 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 18 Oct 2012 19:20:34 +0200 Subject: escape constructed command for makefiles Change-Id: Iec7f2bd7b02d03bf6a99dde363a41578924e523c Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_functions.prf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 2d8f81bae1..1d24ed9c00 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -192,13 +192,16 @@ defineTest(qtAddToolEnv) { equals(QMAKE_DIR_SEP, /) { contains($${env}.CONFIG, prepend): infix = \${$$name:+:\$$$name} else: infix = - $$1 = "$$name=$$join(value, :)$$infix $$eval($$1)" + val = "$$name=$$join(value, :)$$infix" } else { # Escape closing parens when expanding the variable, otherwise cmd confuses itself. contains($${env}.CONFIG, prepend): infix = ;%$$name:)=^)% else: infix = - $$1 = "(set $$name=$$join(value, ;)$$infix) & $$eval($$1)" + val = "(set $$name=$$join(value, ;)$$infix) &" } + contains(MAKEFILE_GENERATOR, MS.*): val ~= s,%,%%,g + else: val ~= s,\\\$,\$\$,g + $$1 = "$$val $$eval($$1)" } } export($$1) -- cgit v1.2.3 From ae789544e4a239a1e26ab96fd07603cee016cd18 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 20 Sep 2012 12:17:30 +0200 Subject: simplify determination of static plugin link line qt_debug & qt_release are dead, so collapse the respective paths and use an existing function. Change-Id: Ie800be477186a6eab72682d367b24e83c3b9bbc0 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt.prf | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 8f797a5960..28f8c8dd6d 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -38,16 +38,6 @@ plugin { #Qt plugins QT_PLUGIN_VERIFY = QTPLUGIN DEPLOYMENT_PLUGIN for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { for(QTPLUG, $$list($$lower($$unique($$QT_CURRENT_VERIFY)))) { - qplugin_style = - !qt_debug:!qt_release { - CONFIG(debug, debug|release):qplugin_style = debug - else:qplugin_style = release - } else:CONFIG(qt_debug, qt_debug|qt_release) { - qplugin_style = debug - } else { - qplugin_style = release - } - # Check if the plugin is known to Qt. We can use this to determine # the plugin path. Unknown plugins must rely on the default link path. ACCESSIBLEPLUGINS = qtaccessiblewidgets qtaccessiblecompatwidgets @@ -86,12 +76,7 @@ for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { target_qt:isEqual(TARGET, QTPLUG) { warning($$TARGET cannot have a QTPLUGIN of $$QTPLUG) } else { - QT_LINKAGE = -l$${QTPLUG} - win32 { - CONFIG(debug, debug|release):QT_LINKAGE = -l$${QTPLUG}d - } else:mac { - isEqual(qplugin_style, debug):QT_LINKAGE = -l$${QTPLUG}_debug - } + QT_LINKAGE = -l$${QTPLUG}$$qtPlatformTargetSuffix() } # Only link against plugin in static builds -- cgit v1.2.3 From c9266e7cb93cc9c265f0de69e3660ee7dc4492c6 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 20 Sep 2012 12:53:33 +0200 Subject: redo QT_PLUGIN_PATH assembly for non-installed execution it is a bad idea to extract plugin paths from library modules. instead, just collect plugin paths from all known repositories. Change-Id: I527325f20e9cf98ae974997530af1b2893537e5d Reviewed-by: Joerg Bornemann Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qt_functions.prf | 14 +++++++------- mkspecs/features/qt_module_fwdpri.prf | 4 ---- 2 files changed, 7 insertions(+), 11 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 1d24ed9c00..f8922e68ef 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -210,12 +210,10 @@ defineTest(qtAddToolEnv) { defineTest(qtAddTargetEnv) { deps = $$resolve_depends(QT, "QT.") !isEmpty(deps) { - plugin_paths = for(dep, deps) { deppath += $$shell_path($$eval(QT.$${dep}.libs)) for(rpath, QT.$${dep}.rpath_link): \ deppath += $$shell_path($$rpath) - plugin_paths += $$eval(QT.$${dep}.plugin_path) $$eval(QT.$${dep}.plugins) } equals(QMAKE_HOST.os, Windows): \ deppath.name = PATH @@ -227,12 +225,14 @@ defineTest(qtAddTargetEnv) { error("Operating system not supported.") deppath.value = $$unique(deppath) deppath.CONFIG = prepend - pluginpath.name = QT_PLUGIN_PATH + pluginpath.value = - plugin_paths = $$unique(plugin_paths) - for(ppath, plugin_paths): \ - exists($$ppath): \ - pluginpath.value += $$shell_path($$ppath) + for(qmod, QMAKEMODULES) { + qmod = $$section(qmod, /, 0, -3)/plugins + exists($$qmod): pluginpath.value += $$shell_path($$qmod) + } + pluginpath.name = QT_PLUGIN_PATH + QT_TOOL_ENV += deppath pluginpath } qtAddToolEnv($$1, $$QT_TOOL_ENV) diff --git a/mkspecs/features/qt_module_fwdpri.prf b/mkspecs/features/qt_module_fwdpri.prf index 5dc63ebdfd..9a0fd36019 100644 --- a/mkspecs/features/qt_module_fwdpri.prf +++ b/mkspecs/features/qt_module_fwdpri.prf @@ -32,11 +32,9 @@ privqt = $$replace(QT_PRIVATE, -private$, ) privdep = $$resolve_depends(privqt, "QT.") rpaths = - pluginpath = alldep = $$pubdep $$privdep for(dep, alldep) { # Inherit link-rpaths from all our dependencies rpaths += $$eval(QT.$${dep}.rpath_link) $$eval(QT.$${dep}.rpath_link_private) - pluginpath += $$eval(QT.$${dep}.plugin_path) $$eval(QT.$${dep}.plugins) } privdep -= $$pubdep for(dep, privdep): \ # Add our private dependencies' lib paths as new link-rpaths @@ -58,7 +56,6 @@ } else { module_rpathlink_priv = } - pluginpath = $$unique(pluginpath) # Create a forwarding module .pri file MODULE_FWD_PRI_CONT = \ @@ -71,7 +68,6 @@ $$module_rpathlink \ $$module_rpathlink_priv \ "QT.$${MODULE}.rpath = $$MODULE_INSTALL_LIBS" \ - "QT.$${MODULE}.plugin_path = $$val_escape(pluginpath)" \ "include($$MODULE_PRI)" write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error("Aborting.") touch($$MODULE_FWD_PRI, $$MODULE_PRI) -- cgit v1.2.3 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') 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 From 103ddce67a6d3863caa3ff4466cd8ea7d844a165 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 23 Oct 2012 22:19:53 +0200 Subject: kill $$mod_component_base & $$mod_qmake_base use $$MODULE_BASE_OUTDIR & $$MODULE_QMAKE_OUTDIR directly. this is a no-op, except that now module pris will be built in qtbase for all modules when building without -prefix - which is only consistent with all other artifacts. Change-Id: I2965b2c7a15aa9e82ba6017f5f4c0daa14b6e6fe Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_build_paths.prf | 12 ++++-------- mkspecs/features/qt_module.prf | 2 +- mkspecs/features/qt_module_fwdpri.prf | 12 ++++++------ mkspecs/features/qt_module_headers.prf | 6 +++--- 4 files changed, 14 insertions(+), 18 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_build_paths.prf b/mkspecs/features/qt_build_paths.prf index 75b83c0a5a..62a5a801f3 100644 --- a/mkspecs/features/qt_build_paths.prf +++ b/mkspecs/features/qt_build_paths.prf @@ -14,12 +14,8 @@ 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: MODULE_BASE_OUTDIR = $$QTDIR + # ... though this sort of breaks the idea. + MODULE_QMAKE_OUTDIR = $$QTDIR } -# 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 ac9852b0e8..878867099a 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -112,7 +112,7 @@ CONFIG -= fix_output_dirs doc_subdir = doc unset(QMAKE_DOCS_INDEX) - QMAKE_DOCS_OUTPUTDIR = $$mod_component_base/$$doc_subdir/qt$${MODULE} + QMAKE_DOCS_OUTPUTDIR = $$MODULE_BASE_OUTDIR/$$doc_subdir/qt$${MODULE} for(qmod, QMAKEMODULES): \ QMAKE_DOCS_INDEX += $$section(qmod, /, 0, -3)/$$doc_subdir diff --git a/mkspecs/features/qt_module_fwdpri.prf b/mkspecs/features/qt_module_fwdpri.prf index d62092cf6c..17c0ba20ee 100644 --- a/mkspecs/features/qt_module_fwdpri.prf +++ b/mkspecs/features/qt_module_fwdpri.prf @@ -4,7 +4,7 @@ isEmpty(MODULE_INSTALL_LIBS): MODULE_INSTALL_LIBS = $$[QT_INSTALL_LIBS/raw] - MODULE_FWD_PRI = $$mod_qmake_base/mkspecs/modules/qt_$${MODULE}.pri + MODULE_FWD_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_$${MODULE}.pri # -rpath-link is used by the linker to find depedencies of dynamic # libraries which were NOT specified on the command line. @@ -51,11 +51,11 @@ # Create a forwarding module .pri file MODULE_FWD_PRI_CONT = \ "QT_MODULE_BASE = $$MODULE_BASE_DIR" \ - "QT_MODULE_BIN_BASE = $$mod_component_base/bin" \ - "QT_MODULE_INCLUDE_BASE = $$mod_component_base/include" \ - "QT_MODULE_IMPORT_BASE = $$mod_component_base/imports" \ - "QT_MODULE_LIB_BASE = $$mod_component_base/lib" \ - "QT_MODULE_PLUGIN_BASE = $$mod_component_base/plugins" \ + "QT_MODULE_BIN_BASE = $$MODULE_BASE_OUTDIR/bin" \ + "QT_MODULE_INCLUDE_BASE = $$MODULE_BASE_OUTDIR/include" \ + "QT_MODULE_IMPORT_BASE = $$MODULE_BASE_OUTDIR/imports" \ + "QT_MODULE_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \ + "QT_MODULE_PLUGIN_BASE = $$MODULE_BASE_OUTDIR/plugins" \ $$module_rpathlink \ $$module_rpathlink_priv \ "QT.$${MODULE}.rpath = $$MODULE_INSTALL_LIBS" \ diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 7c9940b698..b1918bd67d 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -4,13 +4,13 @@ load(qt_build_paths) qtPrepareTool(QMAKE_SYNCQT, syncqt) contains(QT_CONFIG, private_tests): \ # -developer-build QMAKE_SYNCQT += -check-includes - QMAKE_SYNCQT += -module $$TARGET -mkspecsdir $$[QT_HOST_DATA/get]/mkspecs -outdir $$mod_component_base $$MODULE_BASE_DIR + QMAKE_SYNCQT += -module $$TARGET -mkspecsdir $$[QT_HOST_DATA/get]/mkspecs -outdir $$MODULE_BASE_OUTDIR $$MODULE_BASE_DIR !silent: message($$QMAKE_SYNCQT) system($$QMAKE_SYNCQT)|error("Failed to run: $$QMAKE_SYNCQT") } #load up the headers info -include($$mod_component_base/include/$$TARGET/headers.pri, "", true) +include($$MODULE_BASE_OUTDIR/include/$$TARGET/headers.pri, "", true) lctarget = $$lower($$TARGET) uctarget = $$upper($$TARGET) @@ -51,7 +51,7 @@ count(MODULE_VERSION_HEADER, 1) { } # Create a module master header -MODULE_MASTER_HEADER = $$mod_component_base/include/$$TARGET/$$TARGET +MODULE_MASTER_HEADER = $$MODULE_BASE_OUTDIR/include/$$TARGET/$$TARGET !build_pass { MODULE_MASTER_HEADER_CONT = \ "/* This file was generated by qmake with the info from $${_PRO_FILE_}. */" \ -- cgit v1.2.3 From 4010c702692de3986e672c6a5ce0ce60f36a2492 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 24 Oct 2012 15:03:49 +0200 Subject: namespace "module" pri files we now have tool and soon plugin pri files. make them easily distinguishable. Change-Id: I8904e4182227a78060121e8712446bc43b1dd185 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_module.prf | 2 +- mkspecs/features/qt_module_fwdpri.prf | 2 +- mkspecs/features/qt_tool.prf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 878867099a..79a4d80279 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -41,7 +41,7 @@ load(qt_build_paths) exists($$MODULE_PRI)|error("Specified module pri file $$MODULE_PRI does not exist.") } else { -MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst/qt_$${MODULE}.pri +MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst/qt_lib_$${MODULE}.pri !build_pass { diff --git a/mkspecs/features/qt_module_fwdpri.prf b/mkspecs/features/qt_module_fwdpri.prf index 17c0ba20ee..4c3a4b433f 100644 --- a/mkspecs/features/qt_module_fwdpri.prf +++ b/mkspecs/features/qt_module_fwdpri.prf @@ -4,7 +4,7 @@ isEmpty(MODULE_INSTALL_LIBS): MODULE_INSTALL_LIBS = $$[QT_INSTALL_LIBS/raw] - MODULE_FWD_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_$${MODULE}.pri + MODULE_FWD_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_lib_$${MODULE}.pri # -rpath-link is used by the linker to find depedencies of dynamic # libraries which were NOT specified on the command line. diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf index 13caa28a49..c17e90816e 100644 --- a/mkspecs/features/qt_tool.prf +++ b/mkspecs/features/qt_tool.prf @@ -22,7 +22,7 @@ INSTALLS += target cmd = $$shell_path($$QMAKE_RESOLVED_TARGET) qtAddTargetEnv(cmd) - TOOL_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_$${MODULE}.pri + TOOL_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_tool_$${MODULE}.pri TOOL_PRI_CONT = "QT_TOOL.$${MODULE}.command = $$val_escape(cmd)" write_file($$TOOL_PRI, TOOL_PRI_CONT)|error("Aborting.") -- cgit v1.2.3 From f0ee55c00a51a2677477de18405b4f61c9142157 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 24 Oct 2012 13:43:13 +0200 Subject: VERSION makes no sense for plugins Change-Id: I7af058eec1c5a0fdbd9848d2dc2f6bd76ca4747e Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_plugin.prf | 1 - 1 file changed, 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf index 0209910203..6c12a9c9b3 100644 --- a/mkspecs/features/qt_plugin.prf +++ b/mkspecs/features/qt_plugin.prf @@ -1,5 +1,4 @@ TEMPLATE = lib -isEmpty(VERSION):VERSION = $$QT_VERSION CONFIG += qt plugin if(win32|mac):!macx-xcode { -- cgit v1.2.3 From b493e1ec6f6dd9fffdbb9dc1a8ecedf2e72f3d2e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 24 Oct 2012 14:03:47 +0200 Subject: introduce tool_plugin CONFIG flag while plugins for libraries need to follow the -debug-and-release switch, plugins for tools must follow the single-config approach of tools. Change-Id: I8a79e98034d2ff8b5d4e6191a9143c9472a5aa02 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_plugin.prf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf index 6c12a9c9b3..b6036dda42 100644 --- a/mkspecs/features/qt_plugin.prf +++ b/mkspecs/features/qt_plugin.prf @@ -1,7 +1,9 @@ TEMPLATE = lib CONFIG += qt plugin -if(win32|mac):!macx-xcode { +tool_plugin { + !build_pass:contains(QT_CONFIG, build_all): CONFIG += release +} else:if(win32|mac):!macx-xcode { contains(QT_CONFIG, debug_and_release):CONFIG += debug_and_release contains(QT_CONFIG, build_all):CONFIG += build_all } -- cgit v1.2.3 From d802a0019895207e719ed9a51612735d11970887 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 26 Oct 2012 19:59:09 +0200 Subject: let qt_tool.prf set up DESTDIR Change-Id: Ie30066566fe25859b2a661970b11a58e69361b1d Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_tool.prf | 3 +++ 1 file changed, 3 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf index c17e90816e..27753f26dd 100644 --- a/mkspecs/features/qt_tool.prf +++ b/mkspecs/features/qt_tool.prf @@ -1,5 +1,8 @@ TEMPLATE = app +load(qt_build_paths) +DESTDIR = $$MODULE_BASE_OUTDIR/bin + CONFIG += qt warn_on console isEmpty(QMAKE_INFO_PLIST): CONFIG -= app_bundle -- cgit v1.2.3 From f05a392f3ea70d2d446bb3a0bc826ef6d60f1c3b Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 29 Oct 2012 11:18:06 +0100 Subject: fix tool invocation for -prefix + -framework builds on macx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit set DYLD_FRAMEWORK_PATH instead of DYLD_LIBRARY_PATH Change-Id: I9849f12063b8c7a45d040c087f4611c3a48180b8 Reviewed-by: Johanna Äijälä Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_functions.prf | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index f8922e68ef..ce32028138 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -215,14 +215,18 @@ defineTest(qtAddTargetEnv) { for(rpath, QT.$${dep}.rpath_link): \ deppath += $$shell_path($$rpath) } - equals(QMAKE_HOST.os, Windows): \ + equals(QMAKE_HOST.os, Windows) { deppath.name = PATH - else:contains(QMAKE_HOST.os, Linux|FreeBSD): \ + } else:contains(QMAKE_HOST.os, Linux|FreeBSD) { deppath.name = LD_LIBRARY_PATH - else:equals(QMAKE_HOST.os, Darwin): \ - deppath.name = DYLD_LIBRARY_PATH - else: \ + } else:equals(QMAKE_HOST.os, Darwin) { + contains(QT_CONFIG, qt_framework): \ + deppath.name = DYLD_FRAMEWORK_PATH + else: \ + deppath.name = DYLD_LIBRARY_PATH + } else { error("Operating system not supported.") + } deppath.value = $$unique(deppath) deppath.CONFIG = prepend -- cgit v1.2.3 From 21d74702d18b2aa745ea847b5aa0fb1c970df817 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 26 Oct 2012 15:26:34 +0200 Subject: add qml1_{module,plugin}.prf these are in fact thin wrappers around the qml2 variants, which got respective hooks. Change-Id: I1190856aea3f454b6f163e147d39c707a35ec4c6 Reviewed-by: Joerg Bornemann Reviewed-by: Thiago Macieira --- mkspecs/features/qml1_module.prf | 2 ++ mkspecs/features/qml1_plugin.prf | 2 ++ mkspecs/features/qml_module.prf | 9 +++++++-- mkspecs/features/qml_plugin.prf | 14 ++++++++++++-- 4 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 mkspecs/features/qml1_module.prf create mode 100644 mkspecs/features/qml1_plugin.prf (limited to 'mkspecs') diff --git a/mkspecs/features/qml1_module.prf b/mkspecs/features/qml1_module.prf new file mode 100644 index 0000000000..8bacddc549 --- /dev/null +++ b/mkspecs/features/qml1_module.prf @@ -0,0 +1,2 @@ +CONFIG += qml1_target +load(qml_module) diff --git a/mkspecs/features/qml1_plugin.prf b/mkspecs/features/qml1_plugin.prf new file mode 100644 index 0000000000..2914c78ea3 --- /dev/null +++ b/mkspecs/features/qml1_plugin.prf @@ -0,0 +1,2 @@ +CONFIG += qml1_target +load(qml_plugin) diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf index 10ee3bf3a7..03ef88221e 100644 --- a/mkspecs/features/qml_module.prf +++ b/mkspecs/features/qml_module.prf @@ -9,6 +9,11 @@ for(qmlf, QML_FILES): fq_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_) # Only for Qt Creator's project view OTHER_FILES += $$fq_qml_files +qml1_target: \ + instbase = $$[QT_INSTALL_IMPORTS]/QtDeclarative +else: \ + instbase = $$[QT_INSTALL_IMPORTS] + exists($$[QT_HOST_PREFIX]/.qmake.cache) { # These bizarre rules copy the files to the qtbase build directory @@ -17,7 +22,7 @@ exists($$[QT_HOST_PREFIX]/.qmake.cache) { } qmlfiles2build.input = fq_qml_files - qmlfiles2build.output = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH/${QMAKE_FUNC_FILE_IN_qmlModStripSrcDir} + qmlfiles2build.output = $$instbase/$$TARGETPATH/${QMAKE_FUNC_FILE_IN_qmlModStripSrcDir} !contains(TEMPLATE, vc.*): qmlfiles2build.variable_out = PRE_TARGETDEPS qmlfiles2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} qmlfiles2build.name = COPY ${QMAKE_FILE_IN} @@ -29,5 +34,5 @@ exists($$[QT_HOST_PREFIX]/.qmake.cache) { # Install rules qmldir.base = $$_PRO_FILE_PWD_ qmldir.files = $$fq_qml_files -qmldir.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH +qmldir.path = $$instbase/$$TARGETPATH INSTALLS += qmldir diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index 8a24e9b36c..b938bf493e 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -24,7 +24,12 @@ exists($$QMLTYPEFILE): QML_FILES += $$QMLTYPEFILE # Install rules -target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH +qml1_target: \ + instbase = $$[QT_INSTALL_IMPORTS]/QtDeclarative +else: \ + instbase = $$[QT_INSTALL_IMPORTS] + +target.path = $$instbase/$$TARGETPATH INSTALLS += target # Some final setup @@ -46,10 +51,15 @@ load(qt_targets) isEmpty(IMPORT_VERSION): IMPORT_VERSION = $$eval(QT.$${CXX_MODULE}.MAJOR_VERSION).$$eval(QT.$${CXX_MODULE}.MINOR_VERSION) load(resolve_target) - qtPrepareTool(QMLPLUGINDUMP, qmlplugindump) + qml1_target: \ + qmlplugindump = qml1plugindump + else: \ + qmlplugindump = qmlplugindump + qtPrepareTool(QMLPLUGINDUMP, $$qmlplugindump) importpath.value = for(qmod, QMAKEMODULES) { qmod = $$section(qmod, /, 0, -3)/imports + qml1_target: qmod = $$qmod/QtDeclarative exists($$qmod): importpath.value += $$shell_path($$qmod) } importpath.name = QML_IMPORT_PATH -- cgit v1.2.3 From 8c39b4c05fecf1e0c1713c19b5e077c47e881846 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 24 Oct 2012 14:00:12 +0200 Subject: beef up qt_plugin.prf it now defines the DESTDIR and creates an INSTALLS rule. Change-Id: I15a462ccad9acbe3521c352fa98327825dc27c05 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_plugin.prf | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf index b6036dda42..363664bb67 100644 --- a/mkspecs/features/qt_plugin.prf +++ b/mkspecs/features/qt_plugin.prf @@ -1,5 +1,10 @@ +load(qt_build_paths) + +isEmpty(PLUGIN_TYPE): error("PLUGIN_TYPE (plugins/ subdirectory) needs to be defined.") + TEMPLATE = lib -CONFIG += qt plugin +CONFIG += plugin +DESTDIR = $$MODULE_BASE_OUTDIR/plugins/$$PLUGIN_TYPE tool_plugin { !build_pass:contains(QT_CONFIG, build_all): CONFIG += release @@ -7,7 +12,6 @@ tool_plugin { contains(QT_CONFIG, debug_and_release):CONFIG += debug_and_release contains(QT_CONFIG, build_all):CONFIG += build_all } -TARGET = $$qtLibraryTarget($$TARGET) contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols contains(QT_CONFIG, separate_debug_info):CONFIG += separate_debug_info contains(QT_CONFIG, separate_debug_info_nocopy):CONFIG += separate_debug_info_nocopy @@ -16,6 +20,11 @@ contains(QT_CONFIG, c++11):CONFIG += c++11 contains(QT_CONFIG, static):CONFIG += static else:CONFIG += shared +target.path = $$[QT_INSTALL_PLUGINS]/$$PLUGIN_TYPE +INSTALLS += target + +TARGET = $$qtLibraryTarget($$TARGET) + load(qt_targets) wince*:LIBS += $$QMAKE_LIBS_GUI -- cgit v1.2.3 From 6853f888ebf1fc8b30805b16b05a6d356a25fec6 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 29 Oct 2012 11:22:17 +0100 Subject: use .qmake.conf instead of sync.profile as "anchor" this is less expensive, as qmake already provides us with it. Change-Id: Ifb44ea9126e6b52c02025858c5d88032e7a6cc2a Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_build_paths.prf | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_build_paths.prf b/mkspecs/features/qt_build_paths.prf index 62a5a801f3..5f6f08c3db 100644 --- a/mkspecs/features/qt_build_paths.prf +++ b/mkspecs/features/qt_build_paths.prf @@ -1,13 +1,6 @@ # 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(_QMAKE_CONF_): error("Project has no top-level .qmake.conf file.") +MODULE_PROFILE_DIR = $$dirname(_QMAKE_CONF_) 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 -- cgit v1.2.3 From 7db3c4dc1db3f401864292850038e1a0d8c964b5 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 29 Oct 2012 18:32:04 +0100 Subject: remove pointless indirections Change-Id: I2bf6d9a0352dea75f8fd596859ca7939685c9cec Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_module.prf | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 79a4d80279..50c7c74c82 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -92,10 +92,7 @@ MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst/qt_lib_$${MODULE}.pri load(qt_module_fwdpri) -MODULE_INCLUDES = $$eval(QT.$${MODULE}.includes) -MODULE_PRIVATE_INCLUDES = $$eval(QT.$${MODULE}.private_includes) -INCLUDEPATH *= $$MODULE_INCLUDES -INCLUDEPATH *= $$MODULE_PRIVATE_INCLUDES +INCLUDEPATH *= $$eval(QT.$${MODULE}.includes) $$eval(QT.$${MODULE}.private_includes) load(qt_module_headers) -- cgit v1.2.3 From 8abfe4bb43616d1a57087bfa2c2cfc889a5dcea4 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 29 Oct 2012 19:59:48 +0100 Subject: purge dead defines Change-Id: I8770416a19fb0951c0096cedf3f36c3493437903 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt.prf | 3 --- 1 file changed, 3 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 28f8c8dd6d..679dfc422c 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -134,6 +134,3 @@ wince*:static:gui { } !isEmpty(QT_NAMESPACE):DEFINES *= QT_NAMESPACE=$$QT_NAMESPACE -mac { - !isEmpty(QT_NAMESPACE_MAC_CRC):DEFINES *= QT_NAMESPACE_MAC_CRC=$$QT_NAMESPACE_MAC_CRC -} -- cgit v1.2.3 From b94cfa423610e5601674f713303db2cc264452cd Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Mon, 29 Oct 2012 15:16:51 +0100 Subject: Use the new QMAKE_XSPEC to get the mkspec. Change-Id: I7f307ffe0954464f68192f9f3781bdb206f87809 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/create_cmake.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index 29d256db7f..c879103c24 100644 --- a/mkspecs/features/create_cmake.prf +++ b/mkspecs/features/create_cmake.prf @@ -60,7 +60,7 @@ static|staticlib:CMAKE_STATIC_TYPE = true contains(QT_CONFIG, reduce_relocations):CMAKE_ADD_FPIE_FLAGS = "true" -CMAKE_MKSPEC = $$relative_path($$QMAKESPEC, $$[QT_HOST_DATA/get]/mkspecs) +CMAKE_MKSPEC = $$[QMAKE_XSPEC] macx { !isEmpty(CMAKE_STATIC_TYPE) { -- cgit v1.2.3 From 733ac1f6e6b3155a594376ef99288c6117124000 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 24 Oct 2012 15:02:08 +0200 Subject: let static plugins have "module" pri files ... and use them in qt.prf instead of (not) maintaining hand-coded lists. Change-Id: Ia21f7864eaf3ca92fa75f23876f71075d0521f4b Reviewed-by: Mark Brand --- mkspecs/features/qt.prf | 32 +------------------------------- mkspecs/features/qt_plugin.prf | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 31 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 679dfc422c..c4b991becd 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -40,37 +40,7 @@ for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { for(QTPLUG, $$list($$lower($$unique($$QT_CURRENT_VERIFY)))) { # Check if the plugin is known to Qt. We can use this to determine # the plugin path. Unknown plugins must rely on the default link path. - ACCESSIBLEPLUGINS = qtaccessiblewidgets qtaccessiblecompatwidgets - BEARERPLUGINS = qgenericbearer qnativewifibearer - CODECPLUGINS = qcncodecs qjpcodecs qkrcodecs qtwcodecs - DECORATIONPLUGINS = qdecorationdefault qdecorationstyled qdecorationwindows - GFXDRIVERPLUGINS = qscreenvfb qgfxtransformed qgfxshadowfb qgfxpvregl qscreenlinuxfb qeglnullws qdirectfbscreen qahiscreen - GRAPHICSSYSTEMPLUGINS = qmeegographicssystem qglgraphicssystem qvggraphicssystem qshivavggraphicssystem - IMAGEPLUGINS = qgif qico qjpeg qsvg - INPUTPLUGINS = qimsw-multi - KBDDRIVERPLUGINS = qlinuxinputkbddriver - MOUSEDRIVERPLUGINS = qtslibmousehandler qpcmousedriver qlinuxtpmousedriver - SQLPLUGINS = qsqldb2 qsqloci qsqltds qsqlodbc qsqlpsql qsqlibase qsqlmysql qsqlite2 qsqlite - PHONONPLUGINS = phonon_waveout phonon_ds9 phonon_gstreamer phonon_qt7 phonon_mmf - - ALLQTPLUGINS = $$ACCESSIBLEPLUGINS $$BEARERPLUGINS $$CODECPLUGINS $$DECORATIONPLUGINS $$GFXDRIVERPLUGINS $$GRAPHICSSYSTEMPLUGINS $$IMAGEPLUGINS $$INPUTPLUGINS $$KBDDRIVERPLUGINS $$MOUSEDRIVERPLUGINS $$SQLPLUGINS $$PHONONPLUGINS - - QT_PLUGINPATH = - contains(ALLQTPLUGINS, $$QTPLUG) { - # Determine the plugin path - contains(ACCESSIBLEPLUGINS, $$QTPLUG): QT_PLUGINPATH = accessible - contains(BEARERPLUGINS, $$QTPLUG): QT_PLUGINPATH = bearer - contains(CODECPLUGINS, $$QTPLUG): QT_PLUGINPATH = codecs - contains(DECORATIONPLUGINS, $$QTPLUG): QT_PLUGINPATH = decorations - contains(GFXDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = gfxdrivers - contains(GRAPHICSSYSTEMPLUGINS, $$QTPLUG): QT_PLUGINPATH = graphicssystems - contains(IMAGEPLUGINS, $$QTPLUG): QT_PLUGINPATH = imageformats - contains(INPUTPLUGINS, $$QTPLUG): QT_PLUGINPATH = inputmethods - contains(KBDDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = kbddrivers - contains(MOUSEDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = mousedrivers - contains(SQLPLUGINS, $$QTPLUG): QT_PLUGINPATH = sqldrivers - contains(PHONONPLUGINS, $$QTPLUG): QT_PLUGINPATH = phonon_backend - } + QT_PLUGINPATH = $$eval(QT_PLUGIN.$${QTPLUG}.TYPE) # Generate the plugin linker line target_qt:isEqual(TARGET, QTPLUG) { diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf index 363664bb67..b84fa47dd1 100644 --- a/mkspecs/features/qt_plugin.prf +++ b/mkspecs/features/qt_plugin.prf @@ -20,6 +20,20 @@ contains(QT_CONFIG, c++11):CONFIG += c++11 contains(QT_CONFIG, static):CONFIG += static else:CONFIG += shared +!build_pass:static { + isEmpty(MODULE): MODULE = $$section($$list($$basename(_PRO_FILE_)), ., 0, 0) + + MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_plugin_$${MODULE}.pri + + MODULE_PRI_CONT = \ + "QT_PLUGIN.$${MODULE}.TYPE = $$PLUGIN_TYPE" + write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.") + + pritarget.path = $$[QT_HOST_DATA]/mkspecs/modules + pritarget.files = $$MODULE_PRI + INSTALLS += pritarget +} + target.path = $$[QT_INSTALL_PLUGINS]/$$PLUGIN_TYPE INSTALLS += target -- cgit v1.2.3