Mac: Ensure that C++11 is always used when linking against a static Qt build

If Qt was built with C++11, it links to libc++, and we need all projects
that use Qt to link against the same library.

Technically, we could do QMAKE_LFLAGS += -stdlib=libc++, but that hasn't
been tested enough without also enabling C++11, so we keep the
relationship between the two for now.

Change-Id: Ic628bcbade60cc82f93707f372c2119c24d9dc8a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Liang Qi <liang.qi@digia.com>
This commit is contained in:
Tor Arne Vestbø 2013-06-24 10:58:03 +02:00 committed by The Qt Project
parent d3190572cc
commit d0d158f092

View File

@ -1,12 +1,12 @@
load(default_post)
!no_objective_c:CONFIG += objective_c
# Pick a suitable default architecture for qmake-based applications.
# If the Qt package contains one of x86 and x86_64, pick that one. If it
# contains both then use the compiler default. Make a similiar decision for
# PowerPC-based systems. Note that this logic assumes that Qt has been
# configured with an architecture that is usable on the system.
qt:!isEmpty(QT_CONFIG) {
# Pick a suitable default architecture for qmake-based applications.
# If the Qt package contains one of x86 and x86_64, pick that one. If it
# contains both then use the compiler default. Make a similar decision for
# PowerPC-based systems. Note that this logic assumes that Qt has been
# configured with an architecture that is usable on the system.
contains(QMAKE_HOST.arch, ppc)|contains(QMAKE_HOST.arch, "Power Macintosh") {
!contains(QT_CONFIG, ppc64):contains(QT_CONFIG, ppc):CONFIG += ppc
contains(QT_CONFIG, ppc64):!contains(QT_CONFIG, ppc):CONFIG += ppc64
@ -14,6 +14,9 @@ qt:!isEmpty(QT_CONFIG) {
!contains(QT_CONFIG, x86_64):contains(QT_CONFIG, x86):CONFIG += x86
contains(QT_CONFIG, x86_64):!contains(QT_CONFIG, x86):CONFIG += x86_64
}
# Ensure that C++11 is always used when linking against a static Qt build
contains(QT_CONFIG, static):contains(QT_CONFIG, c++11): CONFIG += c++11
}
isEmpty(_QMAKE_CACHE_) {