From c2086216fa0df15cb7e8035465996d6fcfdf6448 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 4 Mar 2022 20:27:17 -0500 Subject: add Pintail to install package (#830) --- build/unix/prepare-install-package.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'build/unix') diff --git a/build/unix/prepare-install-package.sh b/build/unix/prepare-install-package.sh index 9a89f8d4..9dd24b82 100644 --- a/build/unix/prepare-install-package.sh +++ b/build/unix/prepare-install-package.sh @@ -126,7 +126,7 @@ for folder in ${folders[@]}; do cp -r "$smapiBin/i18n" "$bundlePath/smapi-internal" # bundle smapi-internal - for name in "0Harmony.dll" "0Harmony.xml" "Mono.Cecil.dll" "Mono.Cecil.Mdb.dll" "Mono.Cecil.Pdb.dll" "MonoMod.Common.dll" "Newtonsoft.Json.dll" "TMXTile.dll" "SMAPI.Toolkit.dll" "SMAPI.Toolkit.pdb" "SMAPI.Toolkit.xml" "SMAPI.Toolkit.CoreInterfaces.dll" "SMAPI.Toolkit.CoreInterfaces.pdb" "SMAPI.Toolkit.CoreInterfaces.xml"; do + for name in "0Harmony.dll" "0Harmony.xml" "Mono.Cecil.dll" "Mono.Cecil.Mdb.dll" "Mono.Cecil.Pdb.dll" "MonoMod.Common.dll" "Newtonsoft.Json.dll" "Pintail.dll" "TMXTile.dll" "SMAPI.Toolkit.dll" "SMAPI.Toolkit.pdb" "SMAPI.Toolkit.xml" "SMAPI.Toolkit.CoreInterfaces.dll" "SMAPI.Toolkit.CoreInterfaces.pdb" "SMAPI.Toolkit.CoreInterfaces.xml"; do cp "$smapiBin/$name" "$bundlePath/smapi-internal" done -- cgit From e88666f5b2aa0bc8c222712835f081a243341a8f Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 25 Mar 2022 01:01:57 -0400 Subject: mark build scripts executable --- build/unix/prepare-install-package.sh | 0 build/unix/set-smapi-version.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 build/unix/prepare-install-package.sh mode change 100644 => 100755 build/unix/set-smapi-version.sh (limited to 'build/unix') diff --git a/build/unix/prepare-install-package.sh b/build/unix/prepare-install-package.sh old mode 100644 new mode 100755 diff --git a/build/unix/set-smapi-version.sh b/build/unix/set-smapi-version.sh old mode 100644 new mode 100755 -- cgit From f507bd0f9cebe68fa2adf176740a0d00b3e6f884 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 29 Apr 2022 22:55:12 -0400 Subject: set SMAPI version from main build script --- build/unix/prepare-install-package.sh | 21 ++++++++++++++------- build/windows/prepare-install-package.ps1 | 20 ++++++++++++++------ docs/technical/smapi.md | 22 ++++++++++------------ 3 files changed, 38 insertions(+), 25 deletions(-) (limited to 'build/unix') diff --git a/build/unix/prepare-install-package.sh b/build/unix/prepare-install-package.sh index 9dd24b82..e9b413b4 100755 --- a/build/unix/prepare-install-package.sh +++ b/build/unix/prepare-install-package.sh @@ -28,6 +28,20 @@ declare -A msBuildPlatformNames=(["linux"]="Unix" ["macOS"]="OSX" ["windows"]="W cd "`dirname "$0"`/../.." +########## +## Set version +########## +# get version number +version="$1" +if [ $# -eq 0 ]; then + echo "SMAPI release version (like '4.0.0'):" + read version +fi + +# set version +. ${0%/*}/set-smapi-version.sh "$version" + + ########## ## Clear old build files ########## @@ -190,13 +204,6 @@ done ########## ## Create release zips ########## -# get version number -version="$1" -if [ $# -eq 0 ]; then - echo "SMAPI release version (like '4.0.0'):" - read version -fi - # rename folders mv "$packagePath" "bin/SMAPI $version installer" mv "$packageDevPath" "bin/SMAPI $version installer for developers" diff --git a/build/windows/prepare-install-package.ps1 b/build/windows/prepare-install-package.ps1 index b6a23124..5a1e0bcc 100644 --- a/build/windows/prepare-install-package.ps1 +++ b/build/windows/prepare-install-package.ps1 @@ -12,6 +12,20 @@ . "$PSScriptRoot\lib\in-place-regex.ps1" + +########## +## Set version +########## +# get version number +$version = $args[0] +if (!$version) { + $version = Read-Host "SMAPI release version (like '4.0.0')" +} + +# set version +. "$PSScriptRoot/set-smapi-version.ps1" "$version" + + ########## ## Constants ########## @@ -197,12 +211,6 @@ foreach ($folder in $folders) { ########### ### Create release zips ########### -# get version number -$version = $args[0] -if (!$version) { - $version = Read-Host "SMAPI release version (like '4.0.0')" -} - # rename folders mv "$packagePath" "bin/SMAPI $version installer" mv "$packageDevPath" "bin/SMAPI $version installer for developers" diff --git a/docs/technical/smapi.md b/docs/technical/smapi.md index 789ea20b..4d75aef2 100644 --- a/docs/technical/smapi.md +++ b/docs/technical/smapi.md @@ -120,8 +120,10 @@ Windows](#on-windows)_ section below to create a build that retains the icon.** 2. Launch the game through the Steam UI. ### Prepare the release -1. Run `build/unix/set-smapi-version.sh` to set the SMAPI version. Make sure you use a [semantic - version](https://semver.org). Recommended format: +1. Run `build/unix/prepare-install-package.sh VERSION_HERE` to create the release package in the + root `bin` folder. + + Make sure you use a [semantic version](https://semver.org). Recommended format: build type | format | example :--------- | :----------------------- | :------ @@ -129,9 +131,6 @@ Windows](#on-windows)_ section below to create a build that retains the icon.** prerelease | `-beta.` | `4.0.0-beta.20251230` release | `` | `4.0.0` -2. Run `build/unix/prepare-install-package.sh` to create the release package in the root `bin` - folder. - ### On Windows #### First-time setup 1. Set up Windows Subsystem for Linux (WSL): @@ -147,8 +146,10 @@ Windows](#on-windows)_ section below to create a build that retains the icon.** ``` ### Prepare the release -1. Run `build/windows/set-smapi-version.ps1` in PowerShell to set the SMAPI version. Make sure you - use a [semantic version](https://semver.org). Recommended format: +1. Run `build/windows/prepare-install-package.ps1 VERSION_HERE` in PowerShell to create the release + package folders in the root `bin` folder. + + Make sure you use a [semantic version](https://semver.org). Recommended format: build type | format | example :--------- | :----------------------- | :------ @@ -156,12 +157,9 @@ Windows](#on-windows)_ section below to create a build that retains the icon.** prerelease | `-beta.` | `4.0.0-beta.20251230` release | `` | `4.0.0` -2. Run `build/windows/prepare-install-package.ps1` in PowerShell to create the release package - folders in the root `bin` folder. - -3. Launch WSL and run this script: +2. Launch WSL and run this script: ```bash - # edit to match the build created in steps 1-2 + # edit to match the build created in steps 1 # In WSL, `/mnt/c/example` accesses `C:\example` on the Windows filesystem. version="4.0.0" binFolder="/mnt/e/source/_Stardew/SMAPI/bin" -- cgit From 0e4aa65708df7ca4096b9019428d9fccabd37384 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 1 May 2022 17:33:41 -0400 Subject: fix crossplatform build scripts --- build/unix/prepare-install-package.sh | 22 ++++------- build/windows/prepare-install-package.ps1 | 66 +++++++++++++++++++------------ docs/technical/smapi.md | 3 ++ 3 files changed, 51 insertions(+), 40 deletions(-) (limited to 'build/unix') diff --git a/build/unix/prepare-install-package.sh b/build/unix/prepare-install-package.sh index e9b413b4..9b195f37 100755 --- a/build/unix/prepare-install-package.sh +++ b/build/unix/prepare-install-package.sh @@ -9,7 +9,7 @@ ########## -## Constants +## Fetch values ########## # paths gamePath="/home/pathoschild/Stardew Valley" @@ -21,25 +21,18 @@ folders=("linux" "macOS" "windows") declare -A runtimes=(["linux"]="linux-x64" ["macOS"]="osx-x64" ["windows"]="win-x64") declare -A msBuildPlatformNames=(["linux"]="Unix" ["macOS"]="OSX" ["windows"]="Windows_NT") - -########## -## Move to SMAPI root -########## -cd "`dirname "$0"`/../.." - - -########## -## Set version -########## -# get version number +# version number version="$1" if [ $# -eq 0 ]; then echo "SMAPI release version (like '4.0.0'):" read version fi -# set version -. ${0%/*}/set-smapi-version.sh "$version" + +########## +## Move to SMAPI root +########## +cd "`dirname "$0"`/../.." ########## @@ -56,6 +49,7 @@ echo "" ########## ## Compile files ########## +. ${0%/*}/set-smapi-version.sh "$version" for folder in ${folders[@]}; do runtime=${runtimes[$folder]} msbuildPlatformName=${msBuildPlatformNames[$folder]} diff --git a/build/windows/prepare-install-package.ps1 b/build/windows/prepare-install-package.ps1 index 5a1e0bcc..5e116019 100644 --- a/build/windows/prepare-install-package.ps1 +++ b/build/windows/prepare-install-package.ps1 @@ -1,33 +1,19 @@ # # # This is the PowerShell equivalent of ../unix/prepare-install-package.sh, *except* that it doesn't -# set Linux permissions, create the install.dat files, or create the final zip. Due to limitations -# in PowerShell, the final changes are handled by the windows/finalize-install-package.sh file in -# WSL. +# set Linux permissions, create the install.dat files, or create the final zip (unless you specify +# --windows-only). Due to limitations in PowerShell, the final changes are handled by the +# windows/finalize-install-package.sh file in WSL. # # When making changes, make sure to update ../unix/prepare-install-package.ps1 too. # # - -. "$PSScriptRoot\lib\in-place-regex.ps1" +. "$PSScriptRoot/lib/in-place-regex.ps1" ########## -## Set version -########## -# get version number -$version = $args[0] -if (!$version) { - $version = Read-Host "SMAPI release version (like '4.0.0')" -} - -# set version -. "$PSScriptRoot/set-smapi-version.ps1" "$version" - - -########## -## Constants +## Fetch values ########## # paths $gamePath = "C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley" @@ -39,6 +25,23 @@ $folders = "linux", "macOS", "windows" $runtimes = @{ linux = "linux-x64"; macOS = "osx-x64"; windows = "win-x64" } $msBuildPlatformNames = @{ linux = "Unix"; macOS = "OSX"; windows = "Windows_NT" } +# version number +$version = $args[0] +if (!$version) { + $version = Read-Host "SMAPI release version (like '4.0.0')" +} + +# Windows-only build +$windowsOnly = $false +foreach ($arg in $args) { + if ($arg -eq "--windows-only") { + $windowsOnly = $true + $folders = "windows" + $runtimes = @{ windows = "win-x64" } + $msBuildPlatformNames = @{ windows = "Windows_NT" } + } +} + ########## ## Move to SMAPI root @@ -62,7 +65,8 @@ echo "" ########## ## Compile files ########## -ForEach ($folder in $folders) { +. "$PSScriptRoot/set-smapi-version.ps1" "$version" +foreach ($folder in $folders) { $runtime = $runtimes[$folder] $msbuildPlatformName = $msBuildPlatformNames[$folder] @@ -106,6 +110,10 @@ foreach ($folder in $folders) { # copy base installer files foreach ($name in @("install on Linux.sh", "install on macOS.command", "install on Windows.bat", "README.txt")) { + if ($windowsOnly -and ($name -eq "install on Linux.sh" -or $name -eq "install on macOS.command")) { + continue; + } + cp "$installAssets/$name" "$packagePath" } @@ -199,11 +207,14 @@ foreach ($folder in $folders) { In-Place-Regex -Path "$packagePath/internal/$folder/bundle/smapi-internal/config.json" -Search "`"DeveloperMode`": true" -Replace "`"DeveloperMode`": false" # convert bundle folder into final 'install.dat' files - foreach ($path in @("$packagePath/internal/$folder", "$packageDevPath/internal/$folder")) + if ($windowsOnly) { - Compress-Archive -Path "$path/bundle/*" -CompressionLevel Optimal -DestinationPath "$path/install.zip" - mv "$path/install.zip" "$path/install.dat" - rm -Recurse -Force "$path/bundle" + foreach ($path in @("$packagePath/internal/$folder", "$packageDevPath/internal/$folder")) + { + Compress-Archive -Path "$path/bundle/*" -CompressionLevel Optimal -DestinationPath "$path/install.zip" + mv "$path/install.zip" "$path/install.dat" + rm -Recurse -Force "$path/bundle" + } } } @@ -216,8 +227,11 @@ mv "$packagePath" "bin/SMAPI $version installer" mv "$packageDevPath" "bin/SMAPI $version installer for developers" # package files -Compress-Archive -Path "bin/SMAPI $version installer" -DestinationPath "bin/SMAPI $version installer.zip" -CompressionLevel Optimal -Compress-Archive -Path "bin/SMAPI $version installer for developers" -DestinationPath "bin/SMAPI $version installer for developers.zip" -CompressionLevel Optimal +if ($windowsOnly) +{ + Compress-Archive -Path "bin/SMAPI $version installer" -DestinationPath "bin/SMAPI $version installer.zip" -CompressionLevel Optimal + Compress-Archive -Path "bin/SMAPI $version installer for developers" -DestinationPath "bin/SMAPI $version installer for developers.zip" -CompressionLevel Optimal +} echo "" echo "Done! See docs/technical/smapi.md to create the release zips." diff --git a/docs/technical/smapi.md b/docs/technical/smapi.md index 4d75aef2..44b6e49f 100644 --- a/docs/technical/smapi.md +++ b/docs/technical/smapi.md @@ -166,5 +166,8 @@ Windows](#on-windows)_ section below to create a build that retains the icon.** build/windows/finalize-install-package.sh "$version" "$binFolder" ``` +Note: to prepare a test Windows-only build, you can pass `--windows-only` in the first step and +skip the second one. + ## Release notes See [release notes](../release-notes.md). -- cgit