refactor
This commit is contained in:
		
							
								
								
									
										72
									
								
								scripts/ios_build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										72
									
								
								scripts/ios_build.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
CARGO=`which cargo`
 | 
			
		||||
CARGO=${CARGO:=~/.cargo/bin/cargo}
 | 
			
		||||
CARGO_DIR=$(dirname $CARGO)
 | 
			
		||||
 | 
			
		||||
WORKING_DIR=$1
 | 
			
		||||
shift
 | 
			
		||||
echo $WORKING_DIR
 | 
			
		||||
pushd $WORKING_DIR >/dev/null
 | 
			
		||||
echo PWD: `pwd`
 | 
			
		||||
 | 
			
		||||
CARGO_MANIFEST_PATH=$(python3 -c "import os; import json; print(json.loads(os.popen('$CARGO locate-project').read())['root'])")
 | 
			
		||||
CARGO_WORKSPACE_PATH=$(python3 -c "import os; import json; print(json.loads(os.popen('$CARGO locate-project --workspace').read())['root'])")
 | 
			
		||||
TARGET_PATH=$(python3 -c "import os; print(os.path.realpath(\"$CARGO_WORKSPACE_PATH/../target\"))")
 | 
			
		||||
PACKAGE_NAME=$1
 | 
			
		||||
shift
 | 
			
		||||
 | 
			
		||||
if [ "$CONFIGURATION" == "Debug" ]; then 
 | 
			
		||||
    EXTRA_CARGO_OPTIONS="$@"
 | 
			
		||||
    BUILD_MODE="debug"
 | 
			
		||||
else
 | 
			
		||||
    EXTRA_CARGO_OPTIONS="$@ --release"
 | 
			
		||||
    BUILD_MODE="release"
 | 
			
		||||
fi
 | 
			
		||||
ARCHS=${ARCHS:=arm64}
 | 
			
		||||
 | 
			
		||||
if [ "$PLATFORM_NAME" == "iphonesimulator" ]; then
 | 
			
		||||
    LIPO_OUT_NAME="lipo-ios-sim"
 | 
			
		||||
else 
 | 
			
		||||
    LIPO_OUT_NAME="lipo-ios"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
for arch in $ARCHS
 | 
			
		||||
do
 | 
			
		||||
    if [ "$arch" == "arm64" ]; then
 | 
			
		||||
        echo arm64
 | 
			
		||||
        if [ "$PLATFORM_NAME" == "iphonesimulator" ]; then
 | 
			
		||||
            CARGO_TARGET=aarch64-apple-ios-sim
 | 
			
		||||
        else
 | 
			
		||||
            CARGO_TARGET=aarch64-apple-ios
 | 
			
		||||
        fi
 | 
			
		||||
        #CARGO_TOOLCHAIN=+ios-arm64-1.57.0
 | 
			
		||||
        CARGO_TOOLCHAIN=
 | 
			
		||||
    elif [ "$arch" == "x86_64" ]; then
 | 
			
		||||
        echo x86_64
 | 
			
		||||
        CARGO_TARGET=x86_64-apple-ios
 | 
			
		||||
        CARGO_TOOLCHAIN=
 | 
			
		||||
    else
 | 
			
		||||
        echo Unsupported ARCH: $arch
 | 
			
		||||
        continue
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    # Choose arm64 brew for unit tests by default if we are on M1
 | 
			
		||||
    if [ -f /opt/homebrew/bin/brew ]; then
 | 
			
		||||
        HOMEBREW_DIR=/opt/homebrew/bin
 | 
			
		||||
    elif [ -f /usr/local/bin/brew ]; then
 | 
			
		||||
        HOMEBREW_DIR=/usr/local/bin
 | 
			
		||||
    else 
 | 
			
		||||
        HOMEBREW_DIR=$(dirname `which brew`)
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    env -i PATH=/usr/bin:/bin:$HOMEBREW_DIR:$CARGO_DIR HOME="$HOME" USER="$USER" cargo $CARGO_TOOLCHAIN build $EXTRA_CARGO_OPTIONS --target $CARGO_TARGET --manifest-path $CARGO_MANIFEST_PATH
 | 
			
		||||
 | 
			
		||||
    LIPOS="$LIPOS $TARGET_PATH/$CARGO_TARGET/$BUILD_MODE/lib$PACKAGE_NAME.a"
 | 
			
		||||
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
mkdir -p "$TARGET_PATH/$LIPO_OUT_NAME/$BUILD_MODE/"
 | 
			
		||||
lipo $LIPOS -create -output "$TARGET_PATH/$LIPO_OUT_NAME/$BUILD_MODE/lib$PACKAGE_NAME.a"
 | 
			
		||||
							
								
								
									
										24
									
								
								scripts/new_android_sim.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								scripts/new_android_sim.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
UNAME_M=`uname -m`
 | 
			
		||||
if [[ "$UNAME_M" == "arm64" ]]; then
 | 
			
		||||
    ANDROID_ABI=arm64-v8a
 | 
			
		||||
elif [[ "$UNAME_M" == "x86_64" ]]; then
 | 
			
		||||
    ANDROID_ABI=x86
 | 
			
		||||
else 
 | 
			
		||||
    echo "Unknown platform"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
AVD_NAME="testavd"
 | 
			
		||||
AVD_TAG="google_atd"
 | 
			
		||||
AVD_IMAGE="system-images;android-30;$AVD_TAG;$ANDROID_ABI"
 | 
			
		||||
AVD_DEVICE="Nexus 10"
 | 
			
		||||
# Install AVD image
 | 
			
		||||
$ANDROID_SDK_ROOT/tools/bin/sdkmanager --install "$AVD_IMAGE"
 | 
			
		||||
# Make AVD
 | 
			
		||||
echo "no" | $ANDROID_SDK_ROOT/tools/bin/avdmanager --verbose create avd --force --name "$AVD_NAME" --package "$AVD_IMAGE" --tag "$AVD_TAG" --abi "$ANDROID_ABI" --device "$AVD_DEVICE"
 | 
			
		||||
# Run emulator
 | 
			
		||||
$ANDROID_SDK_ROOT/emulator/emulator -avd testavd -no-snapshot -no-boot-anim -no-window &
 | 
			
		||||
( trap exit SIGINT ; read -r -d '' _ </dev/tty ) ## wait for Ctrl-C
 | 
			
		||||
kill %1
 | 
			
		||||
wait
 | 
			
		||||
							
								
								
									
										9
									
								
								scripts/new_ios_sim.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								scripts/new_ios_sim.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
ID=$(xcrun simctl create test-iphone com.apple.CoreSimulator.SimDeviceType.iPhone-14-Pro com.apple.CoreSimulator.SimRuntime.iOS-16-1 2>/dev/null)
 | 
			
		||||
xcrun simctl boot $ID
 | 
			
		||||
xcrun simctl bootstatus $ID
 | 
			
		||||
echo Simulator ID is $ID
 | 
			
		||||
( trap exit SIGINT ; read -r -d '' _ </dev/tty ) ## wait for Ctrl-C
 | 
			
		||||
xcrun simctl delete $ID
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
		Reference in New Issue
	
	Block a user