diff options
-rw-r--r-- | mkspecs/features/ios/default_post.prf | 33 | ||||
-rw-r--r-- | qmake/generators/mac/pbuilder_pbx.cpp | 3 |
2 files changed, 20 insertions, 16 deletions
diff --git a/mkspecs/features/ios/default_post.prf b/mkspecs/features/ios/default_post.prf index 06e06e34cb..e55228ed4a 100644 --- a/mkspecs/features/ios/default_post.prf +++ b/mkspecs/features/ios/default_post.prf @@ -46,24 +46,27 @@ isEmpty(QT_ARCH) { # but we fail to pick up the architecture since we're not passing -arch # yet. Xcode does not seem to have a way to run the shared toolchain # in a way that will automatically do this (for example xcrun -sdk). - contains(QMAKE_MAC_SDK, iphoneos.*): QT_ARCH = armv7 + contains(QMAKE_MAC_SDK, iphoneos.*): QT_ARCH = arm else: QT_ARCH = i386 # Simulator -} else { - # Fix up the QT_ARCH to be more specific - equals(QT_ARCH, arm) { - # Samsung S5PC100, Apple A4, A5, A5X - QT_ARCH = armv7 - - # FIXME: How do we support armv7s when Qt can't do universal builds? - } } -!equals(MAKEFILE_GENERATOR, XCODE) { - arch_flag = -arch $$QT_ARCH - QMAKE_CFLAGS += $$arch_flag - QMAKE_CXXFLAGS += $$arch_flag - QMAKE_OBJECTIVE_CFLAGS += $$arch_flag - QMAKE_LFLAGS += $$arch_flag +# Be more specific about which architecture we're targeting +equals(QT_ARCH, arm): \ + actual_archs = armv7 +else: \ + actual_archs = $$QT_ARCH + +equals(MAKEFILE_GENERATOR, XCODE) { + QMAKE_XCODE_ARCHS = $$actual_archs +} else { + for(arch, actual_archs): \ + arch_flags += -arch $$arch + + QMAKE_CFLAGS += $$arch_flags + QMAKE_CXXFLAGS += $$arch_flags + QMAKE_OBJECTIVE_CFLAGS += $$arch_flags + QMAKE_LFLAGS += $$arch_flags } +unset(actual_archs) load(default_post) diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp index a09e10c55e..e148448c06 100644 --- a/qmake/generators/mac/pbuilder_pbx.cpp +++ b/qmake/generators/mac/pbuilder_pbx.cpp @@ -1409,7 +1409,8 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) + fixListForOutput("QMAKE_LIBS_PRIVATE"), SettingsAsList, 6) << ";" << "\n"; } - const ProStringList &archs = project->values("QT_ARCH"); + const ProStringList &archs = !project->values("QMAKE_XCODE_ARCHS").isEmpty() ? + project->values("QMAKE_XCODE_ARCHS") : project->values("QT_ARCH"); if (!archs.isEmpty()) t << "\t\t\t\t" << writeSettings("ARCHS", archs) << ";" << "\n"; if (!project->isEmpty("OBJECTS_DIR")) |