summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@digia.com>2014-11-06 16:14:32 +0100
committerJani Heikkinen <jani.heikkinen@theqtcompany.com>2014-11-13 20:00:13 +0100
commiteca0668a8c76cc5ea273f614500e91de7e706541 (patch)
tree2507acb56e8f4bfb7f6d20f9324eb5cba418e45f
parent3e161dcb3dcee13a942bb7f0aca1a1920808acd3 (diff)
iOS: Ensure that the rename-main logic works for multi-arch builds
We need to tell Xcode which architectures it should set up pre-link dependencies for, as well as run the rename script in the root object file directory. We pass it the current architectures so that we only rename main() for simulator or device, not both. Change-Id: I095d7c8a22ff0cb2ce872c9a86c93a070c1fcc65 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
-rw-r--r--mkspecs/macx-ios-clang/features/default_post.prf2
-rw-r--r--mkspecs/macx-ios-clang/features/qt.prf6
-rwxr-xr-xmkspecs/macx-ios-clang/rename_main.sh10
3 files changed, 12 insertions, 6 deletions
diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf
index 51a87e3eab..5da95f16bf 100644
--- a/mkspecs/macx-ios-clang/features/default_post.prf
+++ b/mkspecs/macx-ios-clang/features/default_post.prf
@@ -201,7 +201,7 @@ macx-xcode {
arch_iphonesimulator.value = $$QMAKE_IOS_SIMULATOR_ARCHS
QMAKE_MAC_XCODE_SETTINGS += arch_iphoneos arch_iphonesimulator
- unset(QMAKE_XCODE_ARCHS)
+ QMAKE_XCODE_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS
} else {
# Be more specific about which architecture we're targeting
contains(QT_ARCH, arm.*): \
diff --git a/mkspecs/macx-ios-clang/features/qt.prf b/mkspecs/macx-ios-clang/features/qt.prf
index a5b00377ee..7ca3198dbe 100644
--- a/mkspecs/macx-ios-clang/features/qt.prf
+++ b/mkspecs/macx-ios-clang/features/qt.prf
@@ -32,17 +32,19 @@ equals(TEMPLATE, app):contains(QT, gui(-private)?) {
# called 'qt_main' now.
macx-xcode {
- objects_dir = "${OBJECT_FILE_DIR}-${CURRENT_VARIANT}/${CURRENT_ARCH}"
+ objects_dir = "${OBJECT_FILE_DIR}-${CURRENT_VARIANT}"
+ archs = "${ARCHS}"
} else {
objects_dir = $$OBJECTS_DIR
isEmpty(objects_dir): \
objects_dir = .
+ archs = "$$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS"
}
!isEmpty(QMAKE_PRE_LINK): \
QMAKE_PRE_LINK += ";"
- QMAKE_PRE_LINK += $$QMAKESPEC/rename_main.sh $${objects_dir}
+ QMAKE_PRE_LINK += $$QMAKESPEC/rename_main.sh $${objects_dir} \"$${archs}\"
}
}
diff --git a/mkspecs/macx-ios-clang/rename_main.sh b/mkspecs/macx-ios-clang/rename_main.sh
index b1321e855e..040140b7ee 100755
--- a/mkspecs/macx-ios-clang/rename_main.sh
+++ b/mkspecs/macx-ios-clang/rename_main.sh
@@ -41,10 +41,14 @@
##
#############################################################################
-if [ $# -eq 0 ]; then
- echo "usage: $0 <path to object files>"
+if [ $# -ne 2 ]; then
+ echo "$0: wrong number of arguments for internal tool used by iOS mkspec"
else
- for f in $(find $1 -name '*.o'); do
+ arch_paths=""
+ for a in $2; do
+ arch_paths="$arch_paths $1/$a"
+ done
+ for f in $(find $arch_paths -name '*.o'); do
# Skip object files without the _main symbol
nm $f 2>/dev/null | grep -q 'T _main$' || continue