From bca8e1cda01072f7ca19cf6af357cad94ad208f6 Mon Sep 17 00:00:00 2001 From: Evan Olcott Date: Mon, 6 May 2019 14:47:36 -0500 Subject: [PATCH] iOS Simulator support Added support for the iOS Simulator in zt.framework for iOS. --- dist.sh | 61 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/dist.sh b/dist.sh index d9a8b93..19a24ea 100755 --- a/dist.sh +++ b/dist.sh @@ -36,8 +36,8 @@ BUILD_CONCURRENCY= OSNAME=$(uname | tr '[A-Z]' '[a-z]') BUILD_TMP=$(pwd)/tmp ANDROID_PROJ_DIR=$(pwd)/ports/android -XCODE_IOS_ARM64_PROJ_DIR=$(pwd)/ports/xcode_ios-arm64 -#XCODE_IOS_ARMV7_PROJ_DIR=$(pwd)/ports/xcode_ios-armv7 +XCODE_IOS_PROJ_DIR=$(pwd)/ports/xcode_ios +XCODE_IOS_SIMULATOR_PROJ_DIR=$(pwd)/ports/xcode_ios_simulator XCODE_MACOS_PROJ_DIR=$(pwd)/ports/xcode_macos # Generates projects if needed @@ -49,23 +49,24 @@ generate_projects() echo "Executing task: " ${FUNCNAME[ 0 ]} "(" $1 ")" if [[ $OSNAME = *"darwin"* ]]; then # iOS (SDK 11+, 64-bit only, arm64) - if [ ! -d "$XCODE_IOS_ARM64_PROJ_DIR" ]; then - mkdir -p $XCODE_IOS_ARM64_PROJ_DIR - cd $XCODE_IOS_ARM64_PROJ_DIR + if [ ! -d "$XCODE_IOS_PROJ_DIR" ]; then + mkdir -p $XCODE_IOS_PROJ_DIR + cd $XCODE_IOS_PROJ_DIR cmake -G Xcode ../../ -DIOS_FRAMEWORK=1 -DIOS_ARM64=1 # Manually replace arch strings in project file sed -i '' 's/x86_64/$(CURRENT_ARCH)/g' zt.xcodeproj/project.pbxproj cd - fi - # iOS (SDK <11, 32-bit only, armv7, armv7s) - #if [ ! -d "$XCODE_IOS_ARMV7_PROJ_DIR" ]; then - # mkdir -p $XCODE_IOS_ARMV7_PROJ_DIR - # cd $XCODE_IOS_ARMV7_PROJ_DIR - # cmake -G Xcode ../../ -DIOS_FRAMEWORK=1 -DIOS_ARMV7=1 + + if [ ! -d "$XCODE_IOS_SIMULATOR_PROJ_DIR" ]; then + mkdir -p $XCODE_IOS_SIMULATOR_PROJ_DIR + cd $XCODE_IOS_SIMULATOR_PROJ_DIR + cmake -G Xcode ../../ -DIOS_FRAMEWORK=1 # Manually replace arch strings in project file - # sed -i '' 's/x86_64/$(CURRENT_ARCH)/g' zt.xcodeproj/project.pbxproj - # cd - - #fi + #sed -i '' 's/x86_64/$(CURRENT_ARCH)/g' zt.xcodeproj/project.pbxproj + cd - + fi + # macOS if [ ! -d "$XCODE_MACOS_PROJ_DIR" ]; then mkdir -p $XCODE_MACOS_PROJ_DIR @@ -86,27 +87,29 @@ ios() echo "Executing task: " ${FUNCNAME[ 0 ]} "(" $1 ")" UPPERCASE_CONFIG="$(tr '[:lower:]' '[:upper:]' <<< ${1:0:1})${1:1}" - # 64-bit - cd $XCODE_IOS_ARM64_PROJ_DIR + cd $XCODE_IOS_PROJ_DIR # Framework xcodebuild -arch arm64 -target zt -configuration "$UPPERCASE_CONFIG" -sdk "iphoneos" cd - - OUTPUT_DIR=$(pwd)/lib/$1/ios-arm64 - mkdir -p $OUTPUT_DIR - rm -rf $OUTPUT_DIR/zt.framework # Remove prior to move to prevent error - mv $XCODE_IOS_ARM64_PROJ_DIR/$UPPERCASE_CONFIG-iphoneos/* $OUTPUT_DIR + IOS_OUTPUT_DIR=$(pwd)/lib/$1/ios + mkdir -p $IOS_OUTPUT_DIR + rm -rf $IOS_OUTPUT_DIR/zt.framework # Remove prior to move to prevent error + mv $XCODE_IOS_PROJ_DIR/$UPPERCASE_CONFIG-iphoneos/* $IOS_OUTPUT_DIR - # 32-bit - #cd $XCODE_IOS_ARMV7_PROJ_DIR + cd $XCODE_IOS_SIMULATOR_PROJ_DIR # Framework - #xcodebuild -target zt -configuration "$UPPERCASE_CONFIG" -sdk "iphoneos10.0" - # Manually replace arch strings in project file - #sed -i '' 's/x86_64/$(CURRENT_ARCH)/g' zt.xcodeproj/project.pbxproj - #cd - - #OUTPUT_DIR=$(pwd)/lib/$1/ios-armv7 - #mkdir -p $OUTPUT_DIR - #rm -rf $OUTPUT_DIR/* - #mv $XCODE_IOS_ARMV7_PROJ_DIR/$UPPERCASE_CONFIG-iphoneos/* $OUTPUT_DIR + xcodebuild -target zt -configuration "$UPPERCASE_CONFIG" -sdk "iphonesimulator" + cd - + SIMULATOR_OUTPUT_DIR=$(pwd)/lib/$1/ios-simulator + mkdir -p $SIMULATOR_OUTPUT_DIR + rm -rf $SIMULATOR_OUTPUT_DIR/zt.framework # Remove prior to move to prevent error + mv $XCODE_IOS_SIMULATOR_PROJ_DIR/$UPPERCASE_CONFIG-iphonesimulator/* $SIMULATOR_OUTPUT_DIR + + # Combine the two archs + lipo -create $IOS_OUTPUT_DIR/zt.framework/zt $SIMULATOR_OUTPUT_DIR/zt.framework/zt -output $IOS_OUTPUT_DIR/zt.framework/zt + + # Clean up + rm -rf $SIMULATOR_OUTPUT_DIR } # Build framework for current host (macOS only)