mirror of
https://github.com/azahar-emu/azahar
synced 2026-04-23 09:23:56 +00:00
45 lines
1.4 KiB
Bash
Executable file
45 lines
1.4 KiB
Bash
Executable file
#!/bin/bash -ex
|
|
|
|
ARTIFACTS_LIST=($ARTIFACTS)
|
|
|
|
BUILD_DIR=build
|
|
UNIVERSAL_DIR=$BUILD_DIR/universal
|
|
BUNDLE_DIR=$UNIVERSAL_DIR/bundle
|
|
OTHER_BUNDLE_DIR=$BUILD_DIR/x86_64/bundle
|
|
|
|
# Set up the base bundle to combine into.
|
|
mkdir $UNIVERSAL_DIR
|
|
cp -a $BUILD_DIR/arm64/bundle $UNIVERSAL_DIR
|
|
|
|
# Executable binary paths that need to be combined.
|
|
BIN_PATHS=(Azahar.app/Contents/MacOS/azahar)
|
|
|
|
# Dylib paths that need to be combined.
|
|
IFS=$'\n'
|
|
DYLIB_PATHS=($(cd $BUNDLE_DIR && find . -name '*.dylib'))
|
|
unset IFS
|
|
|
|
# Combine all of the executable binaries and dylibs.
|
|
for BIN_PATH in "${BIN_PATHS[@]}"; do
|
|
lipo -create -output $BUNDLE_DIR/$BIN_PATH $BUNDLE_DIR/$BIN_PATH $OTHER_BUNDLE_DIR/$BIN_PATH
|
|
done
|
|
|
|
for DYLIB_PATH in "${DYLIB_PATHS[@]}"; do
|
|
# Only merge if the libraries do not have conflicting arches, otherwise it will fail.
|
|
DYLIB_INFO=`file $BUNDLE_DIR/$DYLIB_PATH`
|
|
|
|
OTHER_DYLIB_INFO=`file $OTHER_BUNDLE_DIR/$DYLIB_PATH`
|
|
if ! [[ "$DYLIB_INFO" =~ "x86_64" ]] && ! [[ "$OTHER_DYLIB_INFO" =~ "arm64" ]]; then
|
|
lipo -create -output $BUNDLE_DIR/$DYLIB_PATH $BUNDLE_DIR/$DYLIB_PATH $OTHER_BUNDLE_DIR/$DYLIB_PATH
|
|
fi
|
|
done
|
|
|
|
# Remove leftover libs so that they aren't distributed
|
|
rm -rf "${BUNDLE_DIR}/libs"
|
|
|
|
# Re-sign executables and bundles after combining.
|
|
APP_PATHS=(Azahar.app)
|
|
for APP_PATH in "${APP_PATHS[@]}"; do
|
|
codesign --deep -fs - $BUNDLE_DIR/$APP_PATH
|
|
done
|