From 3e2ccda94d8c5ba80b328176db2d7650f918000f Mon Sep 17 00:00:00 2001 From: Henry Asbridge Date: Wed, 17 Jan 2024 23:30:53 +0000 Subject: [PATCH] Created a script for building on mac, as creating a universal binary is somewhat involved --- UnionPatcher.Gui.MacOS/Info.plist | 34 +++++++++++++++++++ .../UnionPatcher.Gui.MacOS.csproj | 2 ++ build-all.sh | 26 +++++++------- build-mac.sh | 21 ++++++++++++ 4 files changed, 70 insertions(+), 13 deletions(-) create mode 100755 UnionPatcher.Gui.MacOS/Info.plist create mode 100755 build-mac.sh diff --git a/UnionPatcher.Gui.MacOS/Info.plist b/UnionPatcher.Gui.MacOS/Info.plist new file mode 100755 index 0000000..883a4ac --- /dev/null +++ b/UnionPatcher.Gui.MacOS/Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleIdentifier + com.lbpunion.unionpatcher + NSHumanReadableCopyright + Copyright LBP Union 2024© + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + CFBundleDevelopmentRegion + en + CFBundleIconFile + Icon.icns + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + NSPrincipalClass + NSApplication + CFBundleName + UnionPatcher + CFBundleExecutable + LBPUnion.UnionPatcher.Gui.MacOS + LSMinimumSystemVersion + 10.14 + NSRequiresAquaSystemAppearance + False + + diff --git a/UnionPatcher.Gui.MacOS/UnionPatcher.Gui.MacOS.csproj b/UnionPatcher.Gui.MacOS/UnionPatcher.Gui.MacOS.csproj index ca56ad9..e4eb4d3 100644 --- a/UnionPatcher.Gui.MacOS/UnionPatcher.Gui.MacOS.csproj +++ b/UnionPatcher.Gui.MacOS/UnionPatcher.Gui.MacOS.csproj @@ -7,6 +7,8 @@ LBPUnion.UnionPatcher.Gui.MacOS LBPUnion.UnionPatcher.Gui.MacOS Icon64.ico + true + true diff --git a/build-all.sh b/build-all.sh index daf126a..d9a116c 100755 --- a/build-all.sh +++ b/build-all.sh @@ -1,4 +1,4 @@ -mkdir -p builds; +mkdir -p builds #dotnet clean; dotnet publish -c Windows -r win-x64 --self-contained @@ -13,19 +13,19 @@ dotnet publish -c MacOS -r osx-arm64 --self-contained # $1: Name.zip # $2: Path to zip function createBuild() { - currentDirectory=$(pwd) - cd $2 || return 1; - - zip -r "$1" *; - cd $currentDirectory || return 1; - mv "$2/$1" builds/ + currentDirectory=$(pwd) + cd $2 || return 1 + + zip -r "$1" * + cd $currentDirectory || return 1 + mv "$2/$1" builds/ } -createBuild "UnionPatcher-Windows-x64.zip" "UnionPatcher.Gui.Windows/bin/Release/net6.0-windows/win-x64/publish/" +createBuild "UnionPatcher-Windows-x64.zip" "UnionPatcher.Gui.Windows/bin/Release/net8.0-windows/win-x64/publish/" -createBuild "UnionPatcher-Linux-x64.zip" "UnionPatcher.Gui.Linux/bin/Release/net6.0/linux-x64/publish/" -createBuild "UnionPatcher-Linux-arm.zip" "UnionPatcher.Gui.Linux/bin/Release/net6.0/linux-arm/publish/" -createBuild "UnionPatcher-Linux-arm64.zip" "UnionPatcher.Gui.Linux/bin/Release/net6.0/linux-arm64/publish/" +createBuild "UnionPatcher-Linux-x64.zip" "UnionPatcher.Gui.Linux/bin/Release/net8.0/linux-x64/publish/" +createBuild "UnionPatcher-Linux-arm.zip" "UnionPatcher.Gui.Linux/bin/Release/net8.0/linux-arm/publish/" +createBuild "UnionPatcher-Linux-arm64.zip" "UnionPatcher.Gui.Linux/bin/Release/net8.0/linux-arm64/publish/" -createBuild "UnionPatcher-macOS-x64.zip" "UnionPatcher.Gui.MacOS/bin/Release/net6.0/osx-x64/publish/" -createBuild "UnionPatcher-macOS-arm64.zip" "UnionPatcher.Gui.MacOS/bin/Release/net6.0/osx-arm64/publish/" \ No newline at end of file +# CODESIGN_IDENTITY is the certificate that you want to use for codesigning for mac, if not present then will not be signed +./build-mac.sh $CODESIGN_IDENTITY diff --git a/build-mac.sh b/build-mac.sh new file mode 100755 index 0000000..4e22f6e --- /dev/null +++ b/build-mac.sh @@ -0,0 +1,21 @@ +# Script to build UnionPatcher for mac, builds a universal binary, and zips it up. also codesigns if $1 is specified + +dotnet clean +dotnet publish UnionPatcher.Gui.MacOS --configuration Release /p:Platform="Any CPU" --self-contained -o macbuild +dotnet publish UnionPatcher.Gui.MacOS --configuration Release /p:Platform="Any CPU" --arch x64 --self-contained -o macbuildx86 + +rm -rf macbuilduniversal +mkdir macbuilduniversal +cp -r macbuild/UnionPatcher.Gui.MacOS.app macbuilduniversal/UnionPatcher.app +cp UnionPatcher.Gui.MacOS/Info.plist macbuilduniversal/UnionPatcher.app/Contents/Info.plist +rm -rf macbuilduniversal/UnionPatcher.app/Contents/MacOS/scetool/linux* +rm -rf macbuilduniversal/UnionPatcher.app/Contents/MacOS/scetool/win* + +lipo -create -output macbuilduniversal/UnionPatcher.app/Contents/MacOS/LBPUnion.UnionPatcher.Gui.MacOS macbuildx86/LBPUnion.UnionPatcher.Gui.MacOS macbuild/LBPUnion.UnionPatcher.Gui.MacOS +touch macbuilduniversal/UnionPatcher.app + +if [ -z ${1+x} ]; then + codesign -f --deep -s "$1" macbuilduniversal/UnionPatcher.app +fi +cd macbuilduniversal +zip -r UnionPatcher-macOS-universal.zip UnionPatcher.app