From 6c6fde809a5f380b2a1bab99e45c4c085fbcfb9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 2 Dec 2013 12:44:14 +0100 Subject: iOS: Use DWARF instead of DWARF with dSYM for debug builds Generating the dSYM file takes a long time due to our relatively large static libraries, and is not really useful for a debug build where you are likely to have the object files and Qt libraries available on your host system for debugging anyways. Change-Id: Ie7549975f271de8c56ca04bd28b29e6ed65f16cb Reviewed-by: Simon Hausmann --- mkspecs/macx-ios-clang/features/default_post.prf | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf index 262a8f1889..c5ac57f949 100644 --- a/mkspecs/macx-ios-clang/features/default_post.prf +++ b/mkspecs/macx-ios-clang/features/default_post.prf @@ -183,6 +183,22 @@ macx-xcode { QMAKE_SUBSTITUTES += copy_image launch_images.files = $$copy_image.output QMAKE_BUNDLE_DATA += launch_images + + # Make the default debug information format for 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 our static libraries + # 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). The only + # unfortunate side effect of this is that the user won't be + # able to break on specific lines of main(). This is due to + # using ld to rename the main-function, and will go away once + # we implement a separate tool to do the symbol renaming. + debug_information_format.name = DEBUG_INFORMATION_FORMAT + debug_information_format.value = dwarf + debug_information_format.build = debug + QMAKE_MAC_XCODE_SETTINGS += debug_information_format } macx-xcode { -- cgit v1.2.3 From 53f48a4ba2a527735fd67968a211052a8eda00dc Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 20 Nov 2013 15:14:52 +0100 Subject: properly replace windows paths in installed meta files it's bogus in the first place that the meta files contain windows paths, but straightening that out is a prohibitive effort. so instead generate additional s/// commands which take care of these paths. fwiw, the generated s///i command is a gnu extension. but as we are doing this on windows only where we are using our built-in sed command anyway, this should be fine. Task-number: QTBUG-33794 Change-Id: I46fcc598db12816ee56b5371ab184f6277eb3a22 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_module.prf | 2 ++ 1 file changed, 2 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 5068f7028f..84882ccbc2 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -146,8 +146,10 @@ unix|win32-g++* { rplbase = $$MODULE_BASE_OUTDIR include_replace.match = $$rplbase/include include_replace.replace = $$[QT_INSTALL_HEADERS/raw] + include_replace.CONFIG = path lib_replace.match = $$rplbase/lib lib_replace.replace = $$QMAKE_PKGCONFIG_LIBDIR + lib_replace.CONFIG = path QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace } -- cgit v1.2.3 From 08a2d8df4943453a0df8c02a88cfb29f210d0a10 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 25 Nov 2013 17:52:37 +0100 Subject: enable path replacement in installed prl files on all platforms Task-number: QTBUG-33794 Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_module.prf | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 84882ccbc2..11509eeb40 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -131,32 +131,33 @@ android: CONFIG += qt_android_deps #install directives load(qt_installs) +!isEmpty(_QMAKE_SUPER_CACHE_): \ + rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]* +else: \ + rplbase = $$MODULE_BASE_OUTDIR +include_replace.match = $$rplbase/include +include_replace.replace = $$[QT_INSTALL_HEADERS/raw] +include_replace.CONFIG = path +lib_replace.match = $$rplbase/lib +host_build: \ + lib_replace.replace = $$[QT_HOST_LIBS] +else: \ + lib_replace.replace = $$[QT_INSTALL_LIBS/raw] +lib_replace.CONFIG = path +QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace + unix|win32-g++* { CONFIG += create_pc - host_build: \ - QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS] - else: \ - QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw] - QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw] + QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace + QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME QMAKE_PKGCONFIG_DESTDIR = pkgconfig - !isEmpty(_QMAKE_SUPER_CACHE_): \ - rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]* - else: \ - rplbase = $$MODULE_BASE_OUTDIR - include_replace.match = $$rplbase/include - include_replace.replace = $$[QT_INSTALL_HEADERS/raw] - include_replace.CONFIG = path - lib_replace.match = $$rplbase/lib - lib_replace.replace = $$QMAKE_PKGCONFIG_LIBDIR - lib_replace.CONFIG = path QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace - QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace } unix { CONFIG += create_libtool explicitlib - QMAKE_LIBTOOL_LIBDIR = $$QMAKE_PKGCONFIG_LIBDIR + QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace } -- cgit v1.2.3 From fed439c243fa2342d21100fbf3c9101dbe0d69a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Hunold?= Date: Sat, 7 Dec 2013 14:37:10 +0100 Subject: Add mkspec for clang using libc++ on Linux. libc++ is an alternative stdlib implementation for clang. See http://libcxx.llvm.org/ for further details. The library is enabled by adding -stdlib=libc++ to the command line. Change-Id: I07d09cbb69b59b579d3754c99d717d2ac6d44d67 Reviewed-by: Olivier Goffart Reviewed-by: Oswald Buddenhagen Reviewed-by: Thiago Macieira --- mkspecs/linux-clang-libc++/qmake.conf | 10 +++++++ mkspecs/linux-clang-libc++/qplatformdefs.h | 42 ++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 mkspecs/linux-clang-libc++/qmake.conf create mode 100644 mkspecs/linux-clang-libc++/qplatformdefs.h (limited to 'mkspecs') diff --git a/mkspecs/linux-clang-libc++/qmake.conf b/mkspecs/linux-clang-libc++/qmake.conf new file mode 100644 index 0000000000..c5b0b57b78 --- /dev/null +++ b/mkspecs/linux-clang-libc++/qmake.conf @@ -0,0 +1,10 @@ +# +# qmake configuration for linux-clang and libc++ +# + +include(../linux-clang/qmake.conf) + +QMAKE_CXXFLAGS += -stdlib=libc++ +QMAKE_LFLAGS += -stdlib=libc++ + +load(qt_config) diff --git a/mkspecs/linux-clang-libc++/qplatformdefs.h b/mkspecs/linux-clang-libc++/qplatformdefs.h new file mode 100644 index 0000000000..471c98a6e4 --- /dev/null +++ b/mkspecs/linux-clang-libc++/qplatformdefs.h @@ -0,0 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the qmake spec of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "../linux-clang/qplatformdefs.h" -- cgit v1.2.3