@@ -22,9 +22,9 @@ set -ex
2222
2323# Flags to pass to cmake when building a regular website build, Steam build is
2424# always without autoupdater and without update info. For nightlies and RCs use:
25- # UPDATE_FLAGS="-DAUTOUPDATE=OFF -DINFORM_UPDATE=OFF" UPDATE_FLAGS_MACOSX =-DINFORM_UPDATE=OFF
25+ # UPDATE_FLAGS="-DAUTOUPDATE=OFF -DINFORM_UPDATE=OFF" UPDATE_FLAGS_MACOS =-DINFORM_UPDATE=OFF
2626UPDATE_FLAGS=" ${UPDATE_FLAGS:- -DAUTOUPDATE=ON} "
27- UPDATE_FLAGS_MACOSX =" ${UPDATE_FLAGS_MACOSX :- } "
27+ UPDATE_FLAGS_MACOS =" ${UPDATE_FLAGS_MACOS :- } "
2828
2929MAIN_REPO_USER=" ${MAIN_REPO_USER:- ddnet} "
3030MAIN_REPO_NAME=" ${MAIN_REPO_NAME:- ddnet} "
@@ -47,41 +47,60 @@ build_source ()
4747
4848build_macos ()
4949{
50- ARCH=$1
51- SUFFIX=$2
52- FLAGS=$3
53- rm -rf macos$SUFFIX -$ARCH
54- mkdir macos$SUFFIX -$ARCH
55- cd macos$SUFFIX -$ARCH
50+ SUFFIX=$1
51+ FLAGS=$2
52+ rm -rf macos$SUFFIX
53+ mkdir macos$SUFFIX
54+ cd macos$SUFFIX
5655 PATH=${PATH: +$PATH : } /home/deen/git/osxcross/target/bin
5756 eval ` osxcross-conf`
5857 export OSXCROSS_OSX_VERSION_MIN=10.9
59- if [ " $ARCH " = " fat" ]; then
60- cmake -DVERSION=$VERSION -DCMAKE_OSX_ARCHITECTURES=" arm64;x86_64" -DCMAKE_BUILD_TYPE=Release -DVIDEORECORDER=ON -DDISCORD=OFF -DWEBSOCKETS=OFF -DPREFER_BUNDLED_LIBS=ON -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/darwin-arm64.toolchain -DCMAKE_OSX_SYSROOT=/home/deen/git/osxcross/target/SDK/MacOSX11.0.sdk/ $( echo $FLAGS ) ../ddnet-source
61- else
62- cmake -DVERSION=$VERSION -DCMAKE_BUILD_TYPE=Release -DVIDEORECORDER=ON -DDISCORD=OFF -DWEBSOCKETS=OFF -DPREFER_BUNDLED_LIBS=ON -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/darwin-$ARCH .toolchain -DCMAKE_OSX_SYSROOT=/home/deen/git/osxcross/target/SDK/MacOSX11.0.sdk/ $( echo $FLAGS ) ../ddnet-source
63- fi
58+ cmake -DVERSION=$VERSION -DCMAKE_OSX_ARCHITECTURES=" arm64;x86_64" -DCMAKE_BUILD_TYPE=Release -DVIDEORECORDER=ON -DDISCORD=ON -DWEBSOCKETS=OFF -DPREFER_BUNDLED_LIBS=ON -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/darwin-arm64.toolchain -DCMAKE_OSX_SYSROOT=/home/deen/git/osxcross/target/SDK/MacOSX11.0.sdk/ $( echo $FLAGS ) ../ddnet-source
6459 make -j1 package_default
6560}
6661
6762build_macos_website ()
6863{
69- ARCH=$1
70- build_macos $ARCH " " $UPDATE_FLAGS_MACOSX
71- mv DDNet-* .dmg $BUILDS /DDNet-$VERSION -macos-$ARCH .dmg
64+ build_macos " " $UPDATE_FLAGS_MACOS
65+ mv DDNet-* .dmg $BUILDS /DDNet-$VERSION -macos.dmg
7266 cd ..
7367 rm -rf macos
7468}
7569
7670build_macos_steam ()
7771{
78- ARCH=$1
79- build_macos $ARCH -steam " -DSTEAM=ON"
80- mv DDNet-* .dmg ../DDNet-$VERSION -steam-macos-$ARCH .dmg
72+ build_macos -steam " -DSTEAM=ON"
73+ mv DDNet-* .dmg ../DDNet-$VERSION -steam-macos.dmg
8174 cd ..
8275 rm -rf macos-steam
8376}
8477
78+ build_remote_macos ()
79+ {
80+ SUFFIX=$1
81+ FLAGS=$2
82+ ssh deen@si " rm -rf macos$SUFFIX && \
83+ mkdir macos$SUFFIX && \
84+ cd macos$SUFFIX && \
85+ /opt/homebrew/bin/cmake -DVERSION=$VERSION -DCMAKE_OSX_ARCHITECTURES=\" arm64;x86_64\" -DCMAKE_BUILD_TYPE=Release -DVIDEORECORDER=ON -DDISCORD=ON -DWEBSOCKETS=OFF -DPREFER_BUNDLED_LIBS=ON $( echo $FLAGS ) ../ddnet-source && \
86+ make -j10 package_default
87+ "
88+ }
89+
90+ build_remote_macos_website ()
91+ {
92+ build_remote_macos " " $UPDATE_FLAGS_MACOS
93+ scp deen@si:macos/DDNet-\* .dmg $BUILDS /DDNet-$VERSION -macos.dmg
94+ ssh deen@si " rm -rf macos"
95+ }
96+
97+ build_remote_macos_steam ()
98+ {
99+ build_remote_macos -steam " -DSTEAM=ON"
100+ scp deen@si:macos-steam/DDNet-\* .dmg $BUILDS /DDNet-$VERSION -steam-macos.dmg
101+ ssh deen@si " rm -rf macos-steam"
102+ }
103+
85104build_linux ()
86105{
87106 PLATFORM=$1
@@ -172,10 +191,13 @@ build_source &
172191unzip -q libs.zip
173192rm -rf ddnet-source/ddnet-libs
174193mv $LIBS_REPO_NAME -$LIBS_REPO_BRANCH ddnet-source/ddnet-libs
194+ ssh deen@si " rm -rf ddnet-source"
195+ rsync -avzP ddnet-source deen@si:
175196
176- (build_macos_website x86_64; build_macos_steam x86_64) & > builds/mac_x86_64.log &
177- (build_macos_website arm64; build_macos_steam arm64) & > builds/mac_arm64.log &
178- (build_macos_website fat; build_macos_steam fat) & > builds/mac_fat.log &
197+ # Can't cross-compiler currently since macOS with arm is stricter with unsigned
198+ # binaries and signing doesn't work. Temporarily use build from macOS:
199+ (build_remote_macos_website; build_remote_macos_steam) & > builds/mac.log &
200+ # (build_macos_website; build_macos_steam) &> builds/mac.log &
179201
180202build_linux x86_64 $BUILDDIR /debian6 & > builds/linux_x86_64.log &
181203CFLAGS=-m32 LDFLAGS=-m32 build_linux x86 $BUILDDIR /debian6_x86 & > builds/linux_x86.log &
@@ -236,7 +258,7 @@ cp $BUILDDIR/steamworks/sdk/redistributable_bin/linux32/libsteam_api.so ddnet
236258zip -9r DDNet-$VERSION -linux_x86.zip ddnet
237259rm -r ddnet
238260
239- 7z x ../DDNet-$VERSION -steam-macos-x86_64 .dmg
261+ 7z x ../DDNet-$VERSION -steam-macos.dmg
240262rm -r DDNet-* -macos/DDNet.app/Contents/Resources/data DDNet-* -macos/DDNet-Server.app/Contents/Resources/data
241263mkdir ddnet
242264mv DDNet-* -macos/DDNet.app/Contents/MacOS/DDNet DDNet-* -macos/DDNet-Server.app/Contents/MacOS/DDNet-Server* ddnet
@@ -247,6 +269,7 @@ zip -9r DDNet-$VERSION-macos.zip ddnet Frameworks
247269rm -r ddnet Frameworks DDNet-* -macos
248270
249271rm -rf ddnet-source
272+ ssh deen@si " rm -rf ddnet-source"
250273
251274NOW=$( date +' %F %R' )
252275echo " Finished build of $VERSION at $NOW "
0 commit comments