Skip to content

Commit 391bb86

Browse files
author
Rye
authored
Merge pull request secondlife#10 from RyeMutt/rye/universal
Update to 2.30.9 and add macOS universal library build support
2 parents db346e5 + 4649f79 commit 391bb86

File tree

4 files changed

+40
-39
lines changed

4 files changed

+40
-39
lines changed

.github/workflows/build.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
build:
99
strategy:
1010
matrix:
11-
os: [windows-2022, macos-14, ubuntu-22.04]
11+
os: [windows-2022, macos-15, ubuntu-22.04]
1212
addrsize: ["64"]
1313
runs-on: ${{ matrix.os }}
1414
steps:
@@ -24,13 +24,13 @@ jobs:
2424
libwayland-dev libdecor-0-dev libdbus-1-dev libibus-1.0-dev fcitx-libs-dev \
2525
libudev-dev libunwind-dev libdirectfb-dev libasound2-dev libpulse-dev \
2626
libpipewire-0.3-dev ninja-build
27-
27+
2828
- name: Setup macOS Build Dependencies
2929
if: ${{ runner.os == 'macOS' }}
3030
run: brew install ninja
31-
31+
3232
- name: Build with autobuild
33-
uses: secondlife/action-autobuild@v4
33+
uses: secondlife/action-autobuild@v5
3434
with:
3535
addrsize: ${{ matrix.addrsize }}
3636
release:

SDL2

Submodule SDL2 updated 43 files

autobuild.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@
112112
<string>windows64</string>
113113
</map>
114114
</map>
115-
<key>version_file</key>
116-
<string>VERSION.txt</string>
115+
<key>use_scm_version</key>
116+
<boolean>true</boolean>
117117
</map>
118118
<key>type</key>
119119
<string>autobuild</string>

build-cmd.sh

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -85,38 +85,42 @@ case "$AUTOBUILD_PLATFORM" in
8585
popd
8686
;;
8787
darwin*)
88-
# Setup osx sdk platform
8988
export MACOSX_DEPLOYMENT_TARGET="$LL_BUILD_DARWIN_DEPLOY_TARGET"
9089

91-
# Setup build flags
92-
opts="${TARGET_OPTS:--arch $AUTOBUILD_CONFIGURE_ARCH $LL_BUILD_RELEASE}"
93-
94-
mkdir -p "$stage/include/SDL2"
95-
mkdir -p "$stage/lib/release"
96-
97-
PREFIX_RELEASE="$stage/temp_release"
98-
mkdir -p $PREFIX_RELEASE
99-
100-
mkdir -p "build_release"
101-
pushd "build_release"
102-
cmake .. -GNinja -DCMAKE_BUILD_TYPE="Release" \
103-
-DCMAKE_C_FLAGS="$(remove_cxxstd $opts)" \
104-
-DCMAKE_CXX_FLAGS="$opts" \
105-
-DCMAKE_OSX_ARCHITECTURES:STRING=x86_64 \
106-
-DCMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} \
107-
-DCMAKE_MACOSX_RPATH=YES \
108-
-DCMAKE_INSTALL_PREFIX=$PREFIX_RELEASE
109-
110-
cmake --build . --config Release
111-
cmake --install . --config Release
112-
popd
113-
114-
cp -a $PREFIX_RELEASE/include/SDL2/*.* $stage/include/SDL2
115-
cp -a $PREFIX_RELEASE/lib/*.dylib* $stage/lib/release
116-
cp -a $PREFIX_RELEASE/lib/libSDL2main.a $stage/lib/release
90+
for arch in x86_64 arm64 ; do
91+
ARCH_ARGS="-arch $arch"
92+
opts="${TARGET_OPTS:-$ARCH_ARGS $LL_BUILD_RELEASE}"
93+
cc_opts="$(remove_cxxstd $opts)"
94+
ld_opts="$ARCH_ARGS"
95+
96+
mkdir -p "build_$arch"
97+
pushd "build_$arch"
98+
CFLAGS="$cc_opts" \
99+
CXXFLAGS="$opts" \
100+
LDFLAGS="$ld_opts" \
101+
cmake .. -GNinja -DCMAKE_BUILD_TYPE="Release" \
102+
-DCMAKE_C_FLAGS="$cc_opts" \
103+
-DCMAKE_CXX_FLAGS="$opts" \
104+
-DCMAKE_OSX_ARCHITECTURES:STRING="$arch" \
105+
-DCMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} \
106+
-DCMAKE_MACOSX_RPATH=YES \
107+
-DCMAKE_INSTALL_PREFIX="$stage" \
108+
-DCMAKE_INSTALL_LIBDIR="$stage/lib/release/$arch"
109+
110+
cmake --build . --config Release
111+
cmake --install . --config Release
112+
popd
113+
done
114+
115+
116+
# create universal libraries
117+
lipo -create -output ${stage}/lib/release/libSDL2.dylib ${stage}/lib/release/x86_64/libSDL2.dylib ${stage}/lib/release/arm64/libSDL2.dylib
118+
lipo -create -output ${stage}/lib/release/libSDL2_test.a ${stage}/lib/release/x86_64/libSDL2_test.a ${stage}/lib/release/arm64/libSDL2_test.a
119+
lipo -create -output ${stage}/lib/release/libSDL2main.a ${stage}/lib/release/x86_64/libSDL2main.a ${stage}/lib/release/arm64/libSDL2main.a
117120

118121
pushd "${stage}/lib/release"
119-
fix_dylib_id "libSDL2.dylib"
122+
install_name_tool -id "@rpath/libSDL2.dylib" "libSDL2.dylib"
123+
dsymutil libSDL2.dylib
120124
strip -x -S libSDL2.dylib
121125
popd
122126
;;
@@ -152,8 +156,5 @@ case "$AUTOBUILD_PLATFORM" in
152156
esac
153157
popd
154158

155-
SDL_VERSION=$(sed -n -e 's/^Version: //p' "$TOP/$SDL_SOURCE_DIR/build_release/SDL2.spec")
156-
157159
mkdir -p "$stage/LICENSES"
158-
cp "$TOP/$SDL_SOURCE_DIR/LICENSE.txt" "$stage/LICENSES/SDL2.txt"
159-
echo "$SDL_VERSION" > "$stage/VERSION.txt"
160+
cp "$TOP/$SDL_SOURCE_DIR/LICENSE.txt" "$stage/LICENSES/SDL2.txt"

0 commit comments

Comments
 (0)