Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
BB9z committed Mar 3, 2024
1 parent 84820c2 commit 96374cf
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 26 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ jobs:
run: |
cd macosx
./make-xcframework.sh
env:
B9_BUILD_VISION_OS: false
2 changes: 1 addition & 1 deletion macosx/Lame-Framework.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ PRODUCT_BUNDLE_IDENTIFIER = net.sourceforge.LAMEframework;
PRODUCT_MODULE_NAME = LAME;
PRODUCT_NAME = LAME;
SKIP_INSTALL = YES;
WARNING_CFLAGS = -Wno-shift-negative-value -Wno-shorten-64-to-32 -Wno-absolute-value;
WARNING_CFLAGS = -Wno-shift-negative-value -Wno-shorten-64-to-32 -Wno-absolute-value -Wno-comma -Wno-tautological-pointer-compare;
WRAPPER_EXTENSION = framework;
96 changes: 71 additions & 25 deletions macosx/make-xcframework.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,32 @@
# https://opensource.org/licenses/MIT

set -euo pipefail
echo "$PWD"

if [ -d "LAME.xcframework" ]; then
echo "Remove previous result."
rm -r "LAME.xcframework"
else
echo "No previous build, go on."
fi
# Check if a variable is empty or 0 or false
#
# Return: 0 if variable is not empty or 0 or false
#
# Usage:
# if [[ $(check_var "$test_var") == 0 ]]; then
# echo "Variable is not 0, false, or empty"
# else
# echo "Variable is 0, false, or empty"
# fi
checkVar() {
local var_value="$1"
if [[ -z "$var_value" || "$var_value" == "0" || "${var_value:l}" == "false" ]]; then
echo "1"
else
echo "0"
fi
}

function _xcbuild() {
scheme=$1
destination=$2
archivePath=$3

echo "Building $scheme for $destination..."
echo "\nBuilding $scheme for $destination..." >&2

xcodebuild archive \
-scheme $scheme \
Expand All @@ -33,12 +44,33 @@ function _xcbuild() {

function xcbuild() {
if ! command -v xcbeautify &> /dev/null; then
_xcbuild $1 $2 $3
_xcbuild "$@"
else
_xcbuild $1 $2 $3 | xcbeautify
_xcbuild "$@" | xcbeautify
fi
}

## Check environment

echo "$PWD"

readonly B9_BUILD_VISION_OS=${B9_BUILD_VISION_OS:=1}

if [[ $(checkVar "$B9_BUILD_VISION_OS") != 0 ]]; then
echo "Skip building for visionOS."
fi

## Clean

if [ -d "LAME.xcframework" ]; then
echo "Remove previous result."
rm -r "LAME.xcframework"
else
echo "No previous build, go on."
fi

## Build

xcbuild LAME-macOS "generic/platform=macOS" "build/macOS"
xcbuild LAME-iOS "generic/platform=iOS" "build/iOS"
xcbuild LAME-iOS "generic/platform=iOS Simulator" "build/iOS-Simulator"
Expand All @@ -47,18 +79,32 @@ xcbuild LAME-tvOS "generic/platform=tvOS" "build/tvOS"
xcbuild LAME-tvOS "generic/platform=tvOS Simulator" "build/tvOS-Simulator"
xcbuild LAME-watchOS "generic/platform=watchOS" "build/watchOS"
xcbuild LAME-watchOS "generic/platform=watchOS Simulator" "build/watchOS-Simulator"
xcbuild LAME-visionOS "generic/platform=visionOS" "build/visonOS"
xcbuild LAME-visionOS "generic/platform=visionOS Simulator" "build/visonOS-Simulator"

xcodebuild -create-xcframework \
-framework "build/macOS.xcarchive/Products/Library/Frameworks/LAME.framework" \
-framework "build/iOS.xcarchive/Products/Library/Frameworks/LAME.framework" \
-framework "build/iOS-Simulator.xcarchive/Products/Library/Frameworks/LAME.framework" \
-framework "build/Catalyst.xcarchive/Products/Library/Frameworks/LAME.framework" \
-framework "build/tvOS.xcarchive/Products/Library/Frameworks/LAME.framework" \
-framework "build/tvOS-Simulator.xcarchive/Products/Library/Frameworks/LAME.framework" \
-framework "build/watchOS.xcarchive/Products/Library/Frameworks/LAME.framework" \
-framework "build/watchOS-Simulator.xcarchive/Products/Library/Frameworks/LAME.framework" \
-framework "build/visonOS.xcarchive/Products/Library/Frameworks/LAME.framework" \
-framework "build/visonOS-Simulator.xcarchive/Products/Library/Frameworks/LAME.framework" \
-output "LAME.xcframework"
if [[ $(checkVar "$B9_BUILD_VISION_OS") == 0 ]]; then
xcbuild LAME-visionOS "generic/platform=visionOS" "build/visonOS"
xcbuild LAME-visionOS "generic/platform=visionOS Simulator" "build/visonOS-Simulator"
fi

## Package

archivePaths=(
"build/macOS.xcarchive"
"build/iOS.xcarchive"
"build/iOS-Simulator.xcarchive"
"build/Catalyst.xcarchive"
"build/tvOS.xcarchive"
"build/tvOS-Simulator.xcarchive"
"build/watchOS.xcarchive"
"build/watchOS-Simulator.xcarchive"
)
if [[ $(checkVar "$B9_BUILD_VISION_OS") != 0 ]]; then
archivePaths+=("build/visonOS.xcarchive" "build/visonOS-Simulator.xcarchive")
fi

packageCmds=("xcodebuild" "-create-xcframework")
for part in $archivePaths; do
packageCmds+=("-framework" "$part/Products/Library/Frameworks/LAME.framework")
done
packageCmds+=("-output" "LAME.xcframework")

echo "${packageCmds[*]}"
"${packageCmds[@]}"

0 comments on commit 96374cf

Please sign in to comment.