PKGBUILDs/qt5-base/apple-darwin/0002-Allow-overriding-stdli...

40 lines
1.5 KiB
Diff

From be78c416c070a8a87fe8f449a717c5a7b800f683 Mon Sep 17 00:00:00 2001
From: Martchus <martchus@gmx.net>
Date: Sun, 30 Jul 2017 21:17:41 +0200
Subject: [PATCH 2/8] Allow overriding stdlib under MacOS
---
mkspecs/common/clang-mac.conf | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/mkspecs/common/clang-mac.conf b/mkspecs/common/clang-mac.conf
index cbae2e6262..bdf855fed2 100644
--- a/mkspecs/common/clang-mac.conf
+++ b/mkspecs/common/clang-mac.conf
@@ -6,8 +6,20 @@ QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
QMAKE_XCODE_GCC_VERSION = com.apple.compilers.llvm.clang.1_0
-QMAKE_CXXFLAGS += -stdlib=libc++
-QMAKE_LFLAGS += -stdlib=libc++
+# Use libc++ by default under MacOS/Clang
+isEmpty(QMAKE_MACOSX_STDLIB) {
+ QMAKE_MACOSX_STDLIB = libc++
+}
+isEqual(QMAKE_MACOSX_STDLIB, libstdc++) {
+ # To enable libstdc++, passing -stdlib=XXX is not enough - at least under osxcross the stdheaders are otherwise not found
+ # It is also required to disable GCC extensions by defining __STRICT_ANSI__ because not all GCC extensions are supported by Clang
+ QMAKE_CXXFLAGS += -D__STRICT_ANSI__ -foc-use-gcc-libstdc++
+ QMAKE_LFLAGS += -D__STRICT_ANSI__ -foc-use-gcc-libstdc++
+} else {
+ QMAKE_CXXFLAGS += -stdlib=$${QMAKE_MACOSX_STDLIB}
+ QMAKE_LFLAGS += -stdlib=$${QMAKE_MACOSX_STDLIB}
+}
+
QMAKE_AR_LTCG = libtool -static -o
QMAKE_CFLAGS_APPLICATION_EXTENSION = -fapplication-extension
--
2.13.4