From c999cb94215bdc497c70d5a08e69cd2494fd244b Mon Sep 17 00:00:00 2001 From: dogmaphobic Date: Sun, 18 Sep 2016 21:13:54 -0400 Subject: [PATCH] Another attempt at Xcode 8 --- .travis.yml | 8 +++++--- QGCCommon.pri | 2 +- tools/patch_qt_for_xcode8.sh | 31 +++++++++++++++++++++++++++++++ tools/qt_ios_xcode8.patch | 27 +++++++++++++++++++++++++++ tools/qt_macos_xcode8.patch | 12 ++++++++++++ 5 files changed, 76 insertions(+), 4 deletions(-) create mode 100755 tools/patch_qt_for_xcode8.sh create mode 100644 tools/qt_ios_xcode8.patch create mode 100644 tools/qt_macos_xcode8.patch diff --git a/.travis.yml b/.travis.yml index 738f0f096..2049b58c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,15 +28,15 @@ matrix: env: SPEC=android-g++ CONFIG=installer sudo: false - os: osx - osx_image: xcode7.3 + osx_image: xcode8 env: SPEC=macx-clang CONFIG=debug sudo: required - os: osx - osx_image: xcode7.3 + osx_image: xcode8 env: SPEC=macx-clang CONFIG=installer sudo: required - os: osx - osx_image: xcode7.3 + osx_image: xcode8 env: SPEC=macx-ios-clang CONFIG=release sudo: false @@ -126,6 +126,7 @@ install: export QT_QPA_PLATFORM_PLUGIN_PATH=/tmp/$QT_DIR/plugins && export QML2_IMPORT_PATH=/tmp/$QT_DIR/qml && export PATH=/tmp/$QT_DIR/bin:$PATH + tools/patch_qt_for_xcode8.sh ; fi @@ -136,6 +137,7 @@ install: export IOS_CCACHE_CC=`/usr/bin/xcrun -sdk iphoneos -find clang` && export IOS_CCACHE_CXX=`/usr/bin/xcrun -sdk iphoneos -find clang++` && export PATH=/tmp/ios/bin:$PATH + tools/patch_qt_for_xcode8.sh ; fi diff --git a/QGCCommon.pri b/QGCCommon.pri index c2c9c7aba..8238a85ae 100644 --- a/QGCCommon.pri +++ b/QGCCommon.pri @@ -66,7 +66,7 @@ linux { } else { QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6 } - QMAKE_MAC_SDK = macosx10.11 + QMAKE_MAC_SDK = macosx10.12 QMAKE_CXXFLAGS += -fvisibility=hidden } else { error("Unsupported Mac toolchain, only 64-bit LLVM+clang is supported") diff --git a/tools/patch_qt_for_xcode8.sh b/tools/patch_qt_for_xcode8.sh new file mode 100755 index 000000000..dc0379e79 --- /dev/null +++ b/tools/patch_qt_for_xcode8.sh @@ -0,0 +1,31 @@ +XCODEVER=`xcodebuild -version 2>&1 | (head -n1) | awk '{print $2}'` +echo "Testing Xcode version: $XCODEVER" +IOSDIR=/tmp/ios +OSXDIR=/tmp/$QT_DIR +if [ X"$TRAVIS_BUILD_DIR" == "X" ]; then + echo "missing TRAVIS_BUILD_DIR" + exit 1 +fi +#IOSDIR=/Applications/Qt/5.5/ios +#OSXDIR=/Applications/Qt/5.5/clang_64 +#TRAVIS_BUILD_DIR=/Users/gus/github/work/qgroundcontrol +if [ "$XCODEVER" == "8.0" ]; then + if [ -d $OSXDIR/bin ]; then + QTVER=`$OSXDIR/bin/qmake -version | grep "Using Qt" | awk '{print $4}'` + echo "Testing Qt Version: $QTVER" + if [ "$QTVER" == "5.5.1" ]; then + echo "Found Xcode $XCODEVER for OSX. Applying patch:" + cd $OSXDIR 2> /dev/null && \ + patch -N -p7 < ${TRAVIS_BUILD_DIR}/tools/qt_macos_xcode8.patch # 2>&1 > /dev/null + fi + fi + if [ -d $IOSDIR/bin ]; then + QTVER=`$IOSDIR/bin/qmake -version | grep "Using Qt" | awk '{print $4}'` + echo "Testing Qt Version: $QTVER" + if [ "$QTVER" == "5.5.1" ]; then + echo "Found Xcode $XCODEVER for iOS. Applying patch:" + cd $IOSDIR 2> /dev/null && \ + patch -N -p7 < ${TRAVIS_BUILD_DIR}/tools/qt_ios_xcode8.patch # 2>&1 > /dev/null + fi + fi +fi diff --git a/tools/qt_ios_xcode8.patch b/tools/qt_ios_xcode8.patch new file mode 100644 index 000000000..090e1b348 --- /dev/null +++ b/tools/qt_ios_xcode8.patch @@ -0,0 +1,27 @@ +diff -Naur /Volumes/BootCopy/Applications/Qt/5.5/ios/mkspecs/features/mac/default_pre.prf mkspecs/features/mac/default_pre.prf +--- /Volumes/BootCopy/Applications/Qt/5.5/ios/mkspecs/features/mac/default_pre.prf 2015-10-12 18:59:25.000000000 -0400 ++++ mkspecs/features/mac/default_pre.prf 2016-09-18 19:53:59.000000000 -0400 +@@ -12,7 +12,7 @@ + error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.") + + # Make sure Xcode is set up properly +- isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null"))): \ ++ isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null"))): \ + error("Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.") + } + +diff -Naur /Volumes/BootCopy/Applications/Qt/5.5/ios/mkspecs/macx-ios-clang/features/sdk.prf mkspecs/macx-ios-clang/features/sdk.prf +--- /Volumes/BootCopy/Applications/Qt/5.5/ios/mkspecs/macx-ios-clang/features/sdk.prf 2015-10-12 18:59:26.000000000 -0400 ++++ mkspecs/macx-ios-clang/features/sdk.prf 2016-09-18 19:53:57.000000000 -0400 +@@ -11,8 +11,9 @@ + + load(sdk) + +-lessThan(QMAKE_MAC_SDK_VERSION, "8.0"): \ +- error("Current $$QMAKE_MAC_SDK SDK version ($$QMAKE_MAC_SDK_VERSION) is too old. Please upgrade Xcode.") ++#-- This is a string compare and "10.0" is less then "8.0" ++#lessThan(QMAKE_MAC_SDK_VERSION, "8.0"): \ ++# error("Current $$QMAKE_MAC_SDK SDK version ($$QMAKE_MAC_SDK_VERSION) is too old. Please upgrade Xcode.") + + macx-xcode { + sdk_path_iphoneos.name = "QMAKE_MAC_SDK_PATH[sdk=iphoneos*]" diff --git a/tools/qt_macos_xcode8.patch b/tools/qt_macos_xcode8.patch new file mode 100644 index 000000000..1de019f7d --- /dev/null +++ b/tools/qt_macos_xcode8.patch @@ -0,0 +1,12 @@ +diff -Naur /Volumes/BootCopy/Applications/Qt/5.5/clang_64/mkspecs/features/mac/default_pre.prf mkspecs/features/mac/default_pre.prf +--- /Volumes/BootCopy/Applications/Qt/5.5/clang_64/mkspecs/features/mac/default_pre.prf 2015-10-12 19:40:39.000000000 -0400 ++++ mkspecs/features/mac/default_pre.prf 2016-09-18 19:54:02.000000000 -0400 +@@ -12,7 +12,7 @@ + error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.") + + # Make sure Xcode is set up properly +- isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null"))): \ ++ isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null"))): \ + error("Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.") + } + -- 2.22.0