|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# Variables |
| 4 | +CONFIGURATION="BZ.STABLE" |
| 5 | +VERSION="4.0.2.3" |
| 6 | +echo "[$CONFIGURATION]" |
| 7 | + |
| 8 | +# Clean up build and dist folder |
| 9 | +DEPS="./Dependencies" |
| 10 | +BUILD="./Build/$CONFIGURATION" |
| 11 | +DIST="./Build/MacOSX/$CONFIGURATION" |
| 12 | +rm -rf ./Build |
| 13 | +rm -rf $DIST |
| 14 | +mkdir -p $DIST |
| 15 | +mkdir -p "./$DIST/BepInEx/patchers/QModManager/" |
| 16 | +mkdir -p "./$DIST/BepInEx/plugins/QModManager/" |
| 17 | +mkdir -p "./$DIST/doorstop_libs" |
| 18 | + |
| 19 | +# Download QModManager.exe |
| 20 | +echo "~> downloading QModManager.exe" |
| 21 | +wget -q -O "$DIST/QModManager.zip" "https://github.com/SubnauticaModding/QModManager/archive/refs/tags/v$VERSION.zip" |
| 22 | +unzip -qq "$DIST/QModManager.zip" -d "$DIST/QModManager" |
| 23 | +cp "$DIST/QModManager/QModManager-$VERSION/Build/QModManager.exe" "./$DIST/BepInEx/patchers/QModManager/QModManager.exe" |
| 24 | +cp "$DIST/QModManager/QModManager-$VERSION/Build/QModManager.exe.config" "./$DIST/BepInEx/patchers/QModManager/QModManager.exe.config" |
| 25 | +rm "$DIST/QModManager.zip" |
| 26 | +rm -rf "$DIST/QModManager" |
| 27 | + |
| 28 | +# Download doorstop libs |
| 29 | +echo "~> downloading doorstop libs" |
| 30 | +wget -q -O "./$DIST/doorstop_libs/libdoorstop_x64.dylib" https://github.com/SphereII/DMTBridgeLoaderPlugin/raw/main/doorstop_libs/libdoorstop_x64.dylib |
| 31 | +wget -q -O "./$DIST/doorstop_libs/libdoorstop_x86.dylib" https://github.com/SphereII/DMTBridgeLoaderPlugin/raw/main/doorstop_libs/libdoorstop_x86.dylib |
| 32 | + |
| 33 | +# Build projects |
| 34 | +echo "~> building OculusNewtonsoftRedirect" |
| 35 | +msbuild ./OculusNewtonsoftRedirect/QModManager.OculusNewtonsoftRedirect.csproj -property:Configuration=$CONFIGURATION -verbosity:quiet 2>&1 > /dev/null |
| 36 | +echo "~> building QModManager" |
| 37 | +msbuild ./QModManager/QModManager.csproj -property:Configuration=$CONFIGURATION -verbosity:quiet 2>&1 > /dev/null |
| 38 | +echo "~> building UnityAudioFixer" |
| 39 | +msbuild ./UnityAudioFixer/QModManager.UnityAudioFixer.csproj -property:Configuration=$CONFIGURATION -verbosity:quiet 2>&1 > /dev/null |
| 40 | +echo "~> building QModPluginGenerator" |
| 41 | +msbuild ./QModPluginEmulator/QModManager.QModPluginGenerator.csproj -property:Configuration=$CONFIGURATION -property:PostBuildEvent= -verbosity:quiet 2>&1 > /dev/null |
| 42 | + |
| 43 | +# Copy Build Files |
| 44 | +echo "~> creating distribution package" |
| 45 | +cp -r "$DEPS/BepInEx/BepInEx" "./$DIST" |
| 46 | +cp "$DEPS/BepInEx/doorstop_config.ini" "./$DIST" |
| 47 | +cp "$DEPS/BepInEx/winhttp.dll" "./$DIST" |
| 48 | +cp "$DEPS/cldb.dat" "./$DIST/BepInEx/patchers/QModManager/" |
| 49 | +cp "./packages/AssetsTools.NET.2.0.3/lib/net35/AssetsTools.NET.dll" "./$DIST/BepInEx/patchers/QModManager/" |
| 50 | +cp "$BUILD/QModManager.QModPluginGenerator.dll" "./$DIST/BepInEx/patchers/QModManager/" |
| 51 | +cp "$BUILD/QModManager.UnityAudioFixer.dll" "./$DIST/BepInEx/patchers/QModManager/" |
| 52 | +cp "$BUILD/QModManager.UnityAudioFixer.xml" "./$DIST/BepInEx/patchers/QModManager/" |
| 53 | +cp "$BUILD/QModInstaller.dll" "./$DIST/BepInEx/plugins/QModManager/" |
| 54 | +cp "$BUILD/QModInstaller.xml" "./$DIST/BepInEx/plugins/QModManager/" |
| 55 | + |
| 56 | +# Copy Build Files for SN.SABLE |
| 57 | +if [ "$CONFIGURATION" != "SN.STABLE" ]; then |
| 58 | + cp "$DEPS/Oculus.Newtonsoft.Json.dll" "./$DIST/BepInEx/patchers/QModManager/" |
| 59 | + cp "$BUILD/QModManager.OculusNewtonsoftRedirect.dll" "./$DIST/BepInEx/patchers/QModManager/" |
| 60 | +fi |
| 61 | + |
| 62 | +# Copy Launcher |
| 63 | +cp "./MacOSX/dist/QModManager.sh" "./$DIST/QModManager.sh" |
| 64 | +chmod +x "./$DIST/QModManager.sh" |
| 65 | +echo "~> distribution package created at $DIST" |
| 66 | + |
| 67 | +# Build Installer Package |
| 68 | +chmod -R 755 $DIST |
| 69 | +PKG_BUILD="./MacOSX/PKG.$CONFIGURATION" |
| 70 | +mkdir -p $PKG_BUILD |
| 71 | +pkgbuild --identifier org.QModManager.$VERSION --version $VERSION --install-location "/Library/Application Support/Steam/steamapps/common/SubnauticaZero" --root "$DIST" $PKG_BUILD/QModManager.pkg > /dev/null 2>&1 |
| 72 | +productbuild --distribution ./MacOSX/dist/Distribution --resources ./MacOSX/dist/Resources --package-path $PKG_BUILD "./Build/MacOSX/QModManager-$VERSION.$CONFIGURATION.pkg" > /dev/null 2>&1 |
| 73 | +rm -rf $PKG_BUILD |
| 74 | +echo "~> installer package created at Build/MacOSX/QModManager-$VERSION.$CONFIGURATION.pkg" |
0 commit comments