From 10a0ac759e26e27751ae96d02eb1e260ab371194 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 2 Apr 2014 16:56:15 +0200 Subject: Windows XP target support for MSVC >= 2012 To enable windows xp support, we must do two things: 1. linker flag must be /SUBSYSTEM:CONSOLE,5.01 or /SUBSYSTEM:WINDOWS,5.01. For x64, the version is 5.02. 2. Do not use Windows Kit 8. Win SDK v7.1A is recommended. Prepend the right include paths and lib paths to INCLUDE and LIB before building. The Windows XP target support is enabled by passing "-target xp" to configure. Task-number: QTBUG-29939 Change-Id: I84c8439606cc2a9d27d64947702846faa4f1e4a2 Reviewed-by: Lucas Wang Reviewed-by: Oswald Buddenhagen --- mkspecs/features/win32/console.prf | 4 +++- mkspecs/features/win32/qt_config.prf | 10 ++++++++++ mkspecs/features/win32/windows.prf | 4 +++- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 mkspecs/features/win32/qt_config.prf (limited to 'mkspecs/features') diff --git a/mkspecs/features/win32/console.prf b/mkspecs/features/win32/console.prf index 8a1725d648..568d1b1eb5 100644 --- a/mkspecs/features/win32/console.prf +++ b/mkspecs/features/win32/console.prf @@ -1,4 +1,6 @@ CONFIG -= windows contains(TEMPLATE, ".*app") { - QMAKE_LFLAGS += $$QMAKE_LFLAGS_CONSOLE $$QMAKE_LFLAGS_EXE + QMAKE_LFLAGS += \ + $$replace(QMAKE_LFLAGS_CONSOLE, @QMAKE_SUBSYSTEM_SUFFIX@, $$QMAKE_SUBSYSTEM_SUFFIX) \ + $$QMAKE_LFLAGS_EXE } diff --git a/mkspecs/features/win32/qt_config.prf b/mkspecs/features/win32/qt_config.prf new file mode 100644 index 0000000000..49b4c79431 --- /dev/null +++ b/mkspecs/features/win32/qt_config.prf @@ -0,0 +1,10 @@ +load(qt_config) + +equals(QMAKE_TARGET_OS, xp) { + # http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx?PageIndex=3 + equals(QT_ARCH, x86_64) { + QMAKE_SUBSYSTEM_SUFFIX = ,5.02 + } else { + QMAKE_SUBSYSTEM_SUFFIX = ,5.01 + } +} diff --git a/mkspecs/features/win32/windows.prf b/mkspecs/features/win32/windows.prf index 82e0ebe1b5..6d8289d949 100644 --- a/mkspecs/features/win32/windows.prf +++ b/mkspecs/features/win32/windows.prf @@ -1,6 +1,8 @@ CONFIG -= console contains(TEMPLATE, ".*app"){ - QMAKE_LFLAGS += $$QMAKE_LFLAGS_WINDOWS $$QMAKE_LFLAGS_EXE + QMAKE_LFLAGS += \ + $$replace(QMAKE_LFLAGS_WINDOWS, @QMAKE_SUBSYSTEM_SUFFIX@, $$QMAKE_SUBSYSTEM_SUFFIX) \ + $$QMAKE_LFLAGS_EXE mingw:DEFINES += QT_NEEDS_QMAIN qt:for(entryLib, $$list($$unique(QMAKE_LIBS_QT_ENTRY))) { -- cgit v1.2.3 From a4ec90175c76ce35688acc06cdf93e9cab886223 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 3 Mar 2014 21:20:30 +0100 Subject: purge vestiges of opengl es 1 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit amends 0d5170256c1. Change-Id: Ifa178d38f602bb7c66ef13334673ff47e332af5b Reviewed-by: Jørgen Lind Reviewed-by: Laszlo Agocs --- mkspecs/features/egl.prf | 29 +++++++---------------------- mkspecs/features/opengles1.prf | 2 -- mkspecs/features/unix/opengl.prf | 7 +------ 3 files changed, 8 insertions(+), 30 deletions(-) delete mode 100644 mkspecs/features/opengles1.prf (limited to 'mkspecs/features') diff --git a/mkspecs/features/egl.prf b/mkspecs/features/egl.prf index 3dd66bce53..c3bdd9fdf4 100644 --- a/mkspecs/features/egl.prf +++ b/mkspecs/features/egl.prf @@ -1,23 +1,8 @@ -# On UNIX, we can use config tests to figure out if egl.h is in -# EGL/egl.h or GLES/egl.h. Sadly, there are no config tests on WinCE -# so we have to assume that for GLES 1.1 (CL), the EGL header is in -# GLES/egl.h. We also assume there is no separate libEGL.lib library, -# so we use the GL library instead. - -wince*:contains(QT_CONFIG, opengles1) { - INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1 - LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1 - for(p, QMAKE_LIBDIR_OPENGL_ES1) { - exists($$p):LIBS_PRIVATE += -L$$p - } - DEFINES += QT_GLES_EGL -} else { - INCLUDEPATH += $$QMAKE_INCDIR_EGL - LIBS_PRIVATE += $$QMAKE_LIBS_EGL - QMAKE_CFLAGS += $$QMAKE_CFLAGS_EGL - QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_EGL - LIBS += $$QMAKE_LFLAGS_EGL - for(p, QMAKE_LIBDIR_EGL) { - exists($$p):LIBS_PRIVATE += -L$$p - } +INCLUDEPATH += $$QMAKE_INCDIR_EGL +LIBS_PRIVATE += $$QMAKE_LIBS_EGL +QMAKE_CFLAGS += $$QMAKE_CFLAGS_EGL +QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_EGL +LIBS += $$QMAKE_LFLAGS_EGL +for(p, QMAKE_LIBDIR_EGL) { + exists($$p): LIBS_PRIVATE += -L$$p } diff --git a/mkspecs/features/opengles1.prf b/mkspecs/features/opengles1.prf deleted file mode 100644 index b09262f8a9..0000000000 --- a/mkspecs/features/opengles1.prf +++ /dev/null @@ -1,2 +0,0 @@ -QMAKE_LIBS_OPENGL_ES2 = -LIBS += $$QMAKE_LIBS_OPENGL_ES1 diff --git a/mkspecs/features/unix/opengl.prf b/mkspecs/features/unix/opengl.prf index 8dd47d089d..123c647be2 100644 --- a/mkspecs/features/unix/opengl.prf +++ b/mkspecs/features/unix/opengl.prf @@ -1,9 +1,4 @@ -contains(QT_CONFIG, opengles1) { - INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1 - !isEmpty(QMAKE_LIBDIR_OPENGL_ES1):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1 - target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1 - else:LIBS += $$QMAKE_LIBS_OPENGL_ES1 -} else:contains(QT_CONFIG, opengles2) { +contains(QT_CONFIG, opengles2) { INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2 !isEmpty(QMAKE_LIBDIR_OPENGL_ES2):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2 target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES2 -- cgit v1.2.3 From 8b50386b087d6e330ad20cde14b98d923397517d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 1 Apr 2014 15:05:20 +0200 Subject: Use PlistBuddy instead of sed/xpath magic to extract OS X/iOS SDK name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I9e9f9b033cc892a35c86b35f64dc1dd915ad44f3 Reviewed-by: Oswald Buddenhagen Reviewed-by: Eike Ziller Reviewed-by: Jake Petroules Reviewed-by: Tor Arne Vestbø --- mkspecs/features/mac/sdk.prf | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index 5b5186a14b..36bff00496 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -45,12 +45,7 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_ } isEmpty(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.platform_name) { - # We use xml as the output format instead of json since plutil on 10.6 does not have that option - QMAKE_MAC_PLATFORM_NAME = $$system("/usr/bin/plutil -convert xml1 \"$$QMAKE_MAC_SDK_PATH/SDKSettings.plist\" -o - 2>/dev/null | " \ - "sed '/^/dev/null | " \ - "sed 's/.*Value: \\(.*\\)/\\1/'") - + QMAKE_MAC_PLATFORM_NAME = $$system("/usr/libexec/PlistBuddy -c 'print DefaultProperties:PLATFORM_NAME' $$QMAKE_MAC_SDK_PATH/SDKSettings.plist 2>/dev/null") isEmpty(QMAKE_MAC_PLATFORM_NAME): error("Could not resolve platform name for SDK '$$QMAKE_MAC_SDK'") cache(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.platform_name, set stash, QMAKE_MAC_PLATFORM_NAME) } else { -- cgit v1.2.3 From 4255ba40ab073afcf2a095b135883612859af4c2 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 2 Apr 2014 22:17:40 +0200 Subject: automatically link plugins belonging to qt modules when building static apps the plugins already declare which modules they belong to. additionally, we allow plugins to declare which modules they "extend" - e.g., while the Quick accessibility plugin belongs to Gui's 'accessiblity' type, it makes no sense to link it unless Quick is actually linked. finally, it is possible to manually override the plugins which are linked for a particular type, by setting QTPLUGIN. (to '-' if no plugins of this type should be linked at all). Task-number: QTBUG-35195 Change-Id: I8273d167a046eb3f3c1c584dc6e3798212a2fa31 Reviewed-by: Fawzi Mohamed Reviewed-by: Richard Moe Gustavsen Reviewed-by: Joerg Bornemann --- mkspecs/features/qt.prf | 34 +++++++++++++++++++++++++++++++++- mkspecs/features/qt_module_pris.prf | 6 +++++- mkspecs/features/qt_plugin.prf | 4 +++- 3 files changed, 41 insertions(+), 3 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index fb83e59e65..cf6d66d1a0 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -73,10 +73,11 @@ wince*:static:gui { QTLIB += qmenu_wce.res } -# static builds: link qml import plugins into the app. qt_module_deps = $$QT $$QT_PRIVATE qt_module_deps = $$replace(qt_module_deps, -private$, _private) qt_module_deps = $$resolve_depends(qt_module_deps, "QT.") + +# static builds: link qml import plugins into the app. contains(qt_module_deps, qml): \ contains(QT_CONFIG, static):contains(TEMPLATE, .*app):!host_build:!no_import_scan { # run qmlimportscanner @@ -162,6 +163,37 @@ contains(qt_module_deps, qml): \ } } +contains(TEMPLATE, .*app) { + autoplugs = + for (qtmod, qt_module_deps) { + for (ptype, QT.$${qtmod}.plugin_types) { + isEmpty(QTPLUGIN.$$ptype) { + for (plug, QT_PLUGINS) { + equals(QT_PLUGIN.$${plug}.TYPE, $$ptype) { + for (dep, QT_PLUGIN.$${plug}.EXTENDS) { + !contains(qt_module_deps, $$dep) { + plug = + break() + } + } + autoplugs += $$plug + } + } + } else { + plug = $$eval(QTPLUGIN.$$ptype) + !equals(plug, -): \ + autoplugs += $$plug + } + } + } + manualplugs = $$QTPLUGIN + manualplugs -= $$autoplugs + QTPLUGIN -= $$manualplugs + !isEmpty(QTPLUGIN): \ + warning("Redundant entries in QTPLUGIN: $$QTPLUGIN") + QTPLUGIN = $$manualplugs $$autoplugs +} + QT_PLUGIN_VERIFY = DEPLOYMENT_PLUGIN contains(QT_CONFIG, static) { QT_PLUGIN_VERIFY += QTPLUGIN diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf index 900ade9b6e..f31bc38c75 100644 --- a/mkspecs/features/qt_module_pris.prf +++ b/mkspecs/features/qt_module_pris.prf @@ -70,6 +70,10 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri module_config = "QT.$${MODULE_ID}.CONFIG = $$MODULE_CONFIG" else: \ module_config = + !isEmpty(MODULE_PLUGIN_TYPES): \ + module_plugtypes = "QT.$${MODULE_ID}.plugin_types = $$replace(MODULE_PLUGIN_TYPES, /.*$, )" + else: \ + module_plugtypes = !no_module_headers:!minimal_syncqt { MODULE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME MODULE_PRIVATE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \ @@ -100,7 +104,7 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri "QT.$${MODULE_ID}.plugins = \$\$QT_MODULE_PLUGIN_BASE" \ "QT.$${MODULE_ID}.imports = \$\$QT_MODULE_IMPORT_BASE" \ "QT.$${MODULE_ID}.qml = \$\$QT_MODULE_QML_BASE" \ - $$join(MODULE_PLUGIN_TYPES, " ", "QT.$${MODULE_ID}.plugin_types = ") + $$module_plugtypes MODULE_PRI_CONT += \ "QT.$${MODULE_ID}.depends =$$join(MODULE_DEPENDS, " ", " ")" \ $$module_rundep \ diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf index ba12b9c1cd..5efd55582d 100644 --- a/mkspecs/features/qt_plugin.prf +++ b/mkspecs/features/qt_plugin.prf @@ -32,7 +32,9 @@ CONFIG(static, static|shared) { !build_pass { MODULE_PRI_CONT = \ "QT_PLUGIN.$${MODULE}.TYPE = $$PLUGIN_TYPE" \ - "QT_PLUGIN.$${MODULE}.CLASS_NAME = $$PLUGIN_CLASS_NAME" + "QT_PLUGIN.$${MODULE}.EXTENDS = $$PLUGIN_EXTENDS" \ + "QT_PLUGIN.$${MODULE}.CLASS_NAME = $$PLUGIN_CLASS_NAME" \ + "QT_PLUGINS += $$MODULE" write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.") } -- cgit v1.2.3 From 06e4676871143acf99380dfe9331563d106d3c50 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 4 Apr 2014 16:49:26 +0200 Subject: make QTPLUGIN work in prefix builds for plugins outside qtbase this means creating forwarding pris also for plugins. unlike for qt modules, we don't actually populate the .PATH unless it we are making a prefix build (and thus expecting it to be outside the regular location). Change-Id: Id836821cddec8d5f53d0708ae001e8eaa13cc71b Reviewed-by: Joerg Bornemann --- mkspecs/features/qt.prf | 7 ++++++- mkspecs/features/qt_plugin.prf | 31 +++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 3 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index cf6d66d1a0..5968a8a4ff 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -241,7 +241,12 @@ for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { # Only link against plugin in static builds isEqual(QT_CURRENT_VERIFY, QTPLUGIN): { - !isEmpty(QT_PLUGINPATH): LIBS *= -L$$[QT_INSTALL_PLUGINS/get]/$$QT_PLUGINPATH + !isEmpty(QT_PLUGINPATH) { + plugpath = $$eval(QT_PLUGIN.$${QTPLUG}.PATH) + isEmpty(plugpath): \ + plugpath = $$[QT_INSTALL_PLUGINS/get] + LIBS *= -L$$plugpath/$$QT_PLUGINPATH + } LIBS += $$QT_LINKAGE # if the plugin is linked statically there is no need to deploy it DEPLOYMENT_PLUGIN -= $$QT_CURRENT_VERIFY diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf index 5efd55582d..c020bd2767 100644 --- a/mkspecs/features/qt_plugin.prf +++ b/mkspecs/features/qt_plugin.prf @@ -27,7 +27,13 @@ tool_plugin { CONFIG(static, static|shared) { isEmpty(MODULE): MODULE = $$basename(TARGET) - MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_plugin_$${MODULE}.pri + mod_work_pfx = $$MODULE_QMAKE_OUTDIR/mkspecs/modules + force_independent: \ + mod_inst_pfx = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst + else: \ + mod_inst_pfx = $$mod_work_pfx + MODULE_PRI = $$mod_inst_pfx/qt_plugin_$${MODULE}.pri + MODULE_FWD_PRI = $$mod_work_pfx/qt_plugin_$${MODULE}.pri !build_pass { MODULE_PRI_CONT = \ @@ -35,8 +41,29 @@ CONFIG(static, static|shared) { "QT_PLUGIN.$${MODULE}.EXTENDS = $$PLUGIN_EXTENDS" \ "QT_PLUGIN.$${MODULE}.CLASS_NAME = $$PLUGIN_CLASS_NAME" \ "QT_PLUGINS += $$MODULE" - write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.") + MODULE_PRI_FILES = $$MODULE_PRI + + force_independent { + + # Create a forwarding module .pri file + MODULE_FWD_PRI_CONT = \ + "QT_PLUGIN.$${MODULE}.PATH = $$MODULE_BASE_OUTDIR/plugins" \ + "include($$MODULE_PRI)" + write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error("Aborting.") + touch($$MODULE_FWD_PRI, $$MODULE_PRI) + MODULE_PRI_FILES += $$MODULE_FWD_PRI + + } + + # Then, inject the new module into the current cache state + !contains(QMAKE_INTERNAL_INCLUDED_FILES, $$MODULE_FWD_PRI): \ # before the actual include()! + cache(QMAKE_INTERNAL_INCLUDED_FILES, add transient, MODULE_PRI_FILES) + include($$MODULE_FWD_PRI) + for(var, $$list(TYPE EXTENDS CLASS_NAME PATH)): \ + defined(QT_PLUGIN.$${MODULE}.$$var, var): \ + cache(QT_PLUGIN.$${MODULE}.$$var, transient) + cache(QT_PLUGINS, transient) } pritarget.path = $$[QT_HOST_DATA]/mkspecs/modules -- cgit v1.2.3 From 08672adb97c0707c513850a27aaec59327874260 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 2 Apr 2014 22:19:01 +0200 Subject: make cmake registration of qt plugins make use of PLUGIN_EXTENDS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit instead of assigning plugins to the first module which claims the whole type, try to assign it to a module which the plugin claims to extend. as we are getting stricter in that go, somebody needs to claim the 'generic', 'platformthemes', and 'platforminputcontexts' plugin types. the natural claimant is QtGui. however, as we don't want to auto-link any of these plugins, make them all claim that they extend a non-existing module. QtGui also claims 'iconengines' plugins. the 'printsupport' plugins are also claimed by the respective module. Change-Id: I7af7c16089f137b8d4a4ed93d1577bd85815c87b Reviewed-by: Jørgen Lind Reviewed-by: Joerg Bornemann Reviewed-by: Oswald Buddenhagen --- mkspecs/features/create_cmake.prf | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'mkspecs/features') diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index 82e2812f3b..ac5fe22d75 100644 --- a/mkspecs/features/create_cmake.prf +++ b/mkspecs/features/create_cmake.prf @@ -111,15 +111,22 @@ if(build_all|CONFIG(debug, debug|release)): CMAKE_DEBUG_TYPE = debug if(build_all|CONFIG(release, debug|release)): CMAKE_RELEASE_TYPE = release contains(CONFIG, plugin) { - PLUGIN_MODULE_NAME = - for (mod, QT_MODULES) { - types = $$replace(QT.$${mod}.plugin_types, /.*$, ) - contains(types, $$PLUGIN_TYPE) { - PLUGIN_MODULE_NAME = $$mod - break() + !isEmpty(PLUGIN_EXTENDS):!equals(PLUGIN_EXTENDS, -) { + count(PLUGIN_EXTENDS, 1, greaterThan): \ + error("Plugin declares to extend multiple modules. We don't handle that ...") + PLUGIN_MODULE_NAME = $$PLUGIN_EXTENDS + } else { + PLUGIN_MODULE_NAME = + for (mod, QT_MODULES) { + contains(QT.$${mod}.plugin_types, $$PLUGIN_TYPE) { + !isEmpty(PLUGIN_MODULE_NAME): \ + error("Multiple modules claim plugin type '$$PLUGIN_TYPE' ($$mod, in addition to $$PLUGIN_MODULE_NAME)") + PLUGIN_MODULE_NAME = $$mod + break() + } } + isEmpty(PLUGIN_MODULE_NAME): error("No module claims plugin type '$$PLUGIN_TYPE'") } - isEmpty(PLUGIN_MODULE_NAME): return() CMAKE_MODULE_NAME = $$cmakeModuleName($$PLUGIN_MODULE_NAME) -- cgit v1.2.3 From 02ecd3ae40d8e10c56f5c92060257422a8ba9f92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 13 Mar 2014 16:16:22 +0100 Subject: Make Xcode debug info format controllable through a qmake variable The default is still DWARF instead of DWARF with dSYM for static builds of Qt, so that debug builds of the final application don't take forever to build due to generating the dSYM file. Change-Id: I370d800d7c959e05c1a8780c4ebf58fff250daa1 Reviewed-by: Oswald Buddenhagen Reviewed-by: Fawzi Mohamed --- mkspecs/features/mac/default_post.prf | 7 +++++++ mkspecs/features/mac/default_pre.prf | 10 ++++++++++ 2 files changed, 17 insertions(+) (limited to 'mkspecs/features') diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf index da3e22b5f3..530683552b 100644 --- a/mkspecs/features/mac/default_post.prf +++ b/mkspecs/features/mac/default_post.prf @@ -37,6 +37,13 @@ qt:!isEmpty(QT_CONFIG) { } } +macx-xcode:!isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) { + debug_information_format.name = DEBUG_INFORMATION_FORMAT + debug_information_format.value = $$QMAKE_XCODE_DEBUG_INFORMATION_FORMAT + debug_information_format.build = debug + QMAKE_MAC_XCODE_SETTINGS += debug_information_format +} + cache(QMAKE_XCODE_DEVELOPER_PATH, stash) cache(QMAKE_XCODE_VERSION, stash) diff --git a/mkspecs/features/mac/default_pre.prf b/mkspecs/features/mac/default_pre.prf index c031403930..0cc8cd6dfd 100644 --- a/mkspecs/features/mac/default_pre.prf +++ b/mkspecs/features/mac/default_pre.prf @@ -33,6 +33,16 @@ isEmpty(QMAKE_TARGET_BUNDLE_PREFIX) { cache(QMAKE_TARGET_BUNDLE_PREFIX) } +# Make the default debug info format for static debug builds +# DWARF instead of DWARF with dSYM. This cuts down build times +# for application debug builds significantly, as Xcode doesn't +# have to pull out all the DWARF info from the Qt static libs +# and put it into a dSYM file. We don't need that dSYM file in +# the first place, since the information is available in the +# object files inside the archives (static libraries). +contains(QT_CONFIG, static): \ + QMAKE_XCODE_DEBUG_INFORMATION_FORMAT = dwarf + # This variable is used by the xcode_dynamic_library_suffix # feature, which allows Xcode to choose the Qt libraries to link to # at build time, depending on the current Xcode SDK and configuration. -- cgit v1.2.3