mirror of
				https://github.com/slint-ui/slint.git
				synced 2025-10-31 12:04:33 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| # Copyright © SixtyFPS GmbH <info@slint.dev>
 | |
| # SPDX-License-Identifier: MIT
 | |
| 
 | |
| set -euvx
 | |
| 
 | |
| # Fix up PATH to work around https://github.com/rust-lang/rust/issues/80817 and add cargo.
 | |
| export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH:$HOME/.cargo/bin"
 | |
| 
 | |
| # based on https://github.com/mozilla/glean/blob/main/build-scripts/xc-universal-binary.sh
 | |
| 
 | |
| if [[ "$CONFIGURATION" != "Debug" ]]; then
 | |
|     CARGO_PROFILE=release
 | |
|     MAYBE_RELEASE=--release
 | |
| else
 | |
|     CARGO_PROFILE=debug
 | |
|     MAYBE_RELEASE=
 | |
| fi
 | |
| 
 | |
| # Make Cargo output cache files in Xcode's directories
 | |
| export CARGO_TARGET_DIR="$DERIVED_FILE_DIR/cargo"
 | |
| 
 | |
| IS_SIMULATOR=0
 | |
| if [ "${LLVM_TARGET_TRIPLE_SUFFIX-}" = "-simulator" ]; then
 | |
|   IS_SIMULATOR=1
 | |
| fi
 | |
| 
 | |
| executables=()
 | |
| for arch in $ARCHS; do
 | |
|     case "$arch" in
 | |
|         arm64)
 | |
|             if [ $IS_SIMULATOR -eq 0 ]; then
 | |
|               CARGO_TARGET=aarch64-apple-ios
 | |
|             else
 | |
|               CARGO_TARGET=aarch64-apple-ios-sim
 | |
|             fi
 | |
|             ;;
 | |
|         x86_64)
 | |
|             export CFLAGS_x86_64_apple_ios="-target x86_64-apple-ios"
 | |
|             CARGO_TARGET=x86_64-apple-ios
 | |
|             ;;
 | |
|     esac
 | |
| 
 | |
|     cargo build $MAYBE_RELEASE --target $CARGO_TARGET --bin $1
 | |
| 
 | |
|     executables+=("$DERIVED_FILE_DIR/cargo/$CARGO_TARGET/$CARGO_PROFILE/$1")
 | |
| done
 | |
| 
 | |
| # Combine executables, and place them at the output path excepted by Xcode
 | |
| lipo -create -output "$TARGET_BUILD_DIR/$EXECUTABLE_PATH" "${executables[@]}"
 | |
| 
 | |
| # Force code signing every run for device builds (non-simulator)
 | |
| if [ $IS_SIMULATOR -eq 0 ]; then
 | |
|     codesign --force --sign "${EXPANDED_CODE_SIGN_IDENTITY}" \
 | |
|              --entitlements "${TARGET_TEMP_DIR}/${PRODUCT_NAME}.app.xcent" \
 | |
|              "${TARGET_BUILD_DIR}/${EXECUTABLE_PATH}"
 | |
| fi
 | 
