145 lines
7.7 KiB
Plaintext
145 lines
7.7 KiB
Plaintext
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||
|
<!--*********************************************
|
||
|
** Import build tasks
|
||
|
**********************************************-->
|
||
|
<UsingTask TaskName="DeployModTask" AssemblyFile="StardewModdingAPI.ModBuildConfig.dll" />
|
||
|
|
||
|
<!--*********************************************
|
||
|
** Find the basic mod metadata
|
||
|
**********************************************-->
|
||
|
<!-- import developer's custom settings (if any) -->
|
||
|
<Import Condition="$(OS) != 'Windows_NT' AND Exists('$(HOME)\stardewvalley.targets')" Project="$(HOME)\stardewvalley.targets" />
|
||
|
<Import Condition="$(OS) == 'Windows_NT' AND Exists('$(USERPROFILE)\stardewvalley.targets')" Project="$(USERPROFILE)\stardewvalley.targets" />
|
||
|
|
||
|
<!-- set setting defaults -->
|
||
|
<PropertyGroup>
|
||
|
<!-- map legacy settings -->
|
||
|
<ModFolderName Condition="'$(ModFolderName)' == '' AND '$(DeployModFolderName)' != ''">$(DeployModFolderName)</ModFolderName>
|
||
|
<ModZipPath Condition="'$(ModZipPath)' == '' AND '$(DeployModZipTo)' != ''">$(DeployModZipTo)</ModZipPath>
|
||
|
|
||
|
<!-- set default settings -->
|
||
|
<ModFolderName Condition="'$(ModFolderName)' == ''">$(MSBuildProjectName)</ModFolderName>
|
||
|
<ModZipPath Condition="'$(ModZipPath)' == ''">$(TargetDir)</ModZipPath>
|
||
|
<EnableModDeploy Condition="'$(EnableModDeploy)' == ''">True</EnableModDeploy>
|
||
|
<EnableModZip Condition="'$(EnableModZip)' == ''">True</EnableModZip>
|
||
|
</PropertyGroup>
|
||
|
|
||
|
<!-- find platform + game path -->
|
||
|
<Choose>
|
||
|
<When Condition="$(OS) == 'Unix' OR $(OS) == 'OSX'">
|
||
|
<PropertyGroup>
|
||
|
<!-- Linux -->
|
||
|
<GamePath Condition="!Exists('$(GamePath)')">$(HOME)/GOG Games/Stardew Valley/game</GamePath>
|
||
|
<GamePath Condition="!Exists('$(GamePath)')">$(HOME)/.local/share/Steam/steamapps/common/Stardew Valley</GamePath>
|
||
|
|
||
|
<!-- Mac (may be 'Unix' or 'OSX') -->
|
||
|
<GamePath Condition="!Exists('$(GamePath)')">/Applications/Stardew Valley.app/Contents/MacOS</GamePath>
|
||
|
<GamePath Condition="!Exists('$(GamePath)')">$(HOME)/Library/Application Support/Steam/steamapps/common/Stardew Valley/Contents/MacOS</GamePath>
|
||
|
</PropertyGroup>
|
||
|
</When>
|
||
|
<When Condition="$(OS) == 'Windows_NT'">
|
||
|
<PropertyGroup>
|
||
|
<GamePath Condition="!Exists('$(GamePath)')">C:\Program Files (x86)\GalaxyClient\Games\Stardew Valley</GamePath>
|
||
|
<GamePath Condition="!Exists('$(GamePath)')">C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley</GamePath>
|
||
|
<GamePath Condition="!Exists('$(GamePath)')">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\GOG.com\Games\1453375253', 'PATH', null, RegistryView.Registry32))</GamePath>
|
||
|
<GamePath Condition="!Exists('$(GamePath)')">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 413150', 'InstallLocation', null, RegistryView.Registry64, RegistryView.Registry32))</GamePath>
|
||
|
</PropertyGroup>
|
||
|
</When>
|
||
|
</Choose>
|
||
|
|
||
|
|
||
|
<!--*********************************************
|
||
|
** Inject the assembly references and debugging configuration
|
||
|
**********************************************-->
|
||
|
<Choose>
|
||
|
<When Condition="$(OS) == 'Windows_NT'">
|
||
|
<!-- references -->
|
||
|
<ItemGroup>
|
||
|
<Reference Include="Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
|
||
|
<Private>false</Private>
|
||
|
</Reference>
|
||
|
<Reference Include="Microsoft.Xna.Framework.Game, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
|
||
|
<Private>false</Private>
|
||
|
</Reference>
|
||
|
<Reference Include="Microsoft.Xna.Framework.Graphics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
|
||
|
<Private>false</Private>
|
||
|
</Reference>
|
||
|
<Reference Include="Microsoft.Xna.Framework.Xact, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
|
||
|
<Private>false</Private>
|
||
|
</Reference>
|
||
|
<Reference Include="Stardew Valley">
|
||
|
<HintPath>$(GamePath)\Stardew Valley.exe</HintPath>
|
||
|
<Private>false</Private>
|
||
|
</Reference>
|
||
|
<Reference Include="StardewModdingAPI">
|
||
|
<HintPath>$(GamePath)\StardewModdingAPI.exe</HintPath>
|
||
|
<Private>false</Private>
|
||
|
</Reference>
|
||
|
<Reference Include="xTile, Version=2.0.4.0, Culture=neutral, processorArchitecture=x86">
|
||
|
<HintPath>$(GamePath)\xTile.dll</HintPath>
|
||
|
<Private>false</Private>
|
||
|
<SpecificVersion>False</SpecificVersion>
|
||
|
</Reference>
|
||
|
</ItemGroup>
|
||
|
|
||
|
<!-- launch game for debugging -->
|
||
|
<PropertyGroup>
|
||
|
<StartAction>Program</StartAction>
|
||
|
<StartProgram>$(GamePath)\StardewModdingAPI.exe</StartProgram>
|
||
|
<StartWorkingDirectory>$(GamePath)</StartWorkingDirectory>
|
||
|
</PropertyGroup>
|
||
|
</When>
|
||
|
<Otherwise>
|
||
|
<!-- references -->
|
||
|
<ItemGroup>
|
||
|
<Reference Include="MonoGame.Framework">
|
||
|
<HintPath>$(GamePath)\MonoGame.Framework.dll</HintPath>
|
||
|
<Private>false</Private>
|
||
|
<SpecificVersion>False</SpecificVersion>
|
||
|
</Reference>
|
||
|
<Reference Include="StardewValley">
|
||
|
<HintPath>$(GamePath)\StardewValley.exe</HintPath>
|
||
|
<Private>false</Private>
|
||
|
</Reference>
|
||
|
<Reference Include="StardewModdingAPI">
|
||
|
<HintPath>$(GamePath)\StardewModdingAPI.exe</HintPath>
|
||
|
<Private>false</Private>
|
||
|
</Reference>
|
||
|
<Reference Include="xTile">
|
||
|
<HintPath>$(GamePath)\xTile.dll</HintPath>
|
||
|
<Private>false</Private>
|
||
|
</Reference>
|
||
|
</ItemGroup>
|
||
|
</Otherwise>
|
||
|
</Choose>
|
||
|
|
||
|
|
||
|
<!--*********************************************
|
||
|
** Deploy mod files & create release zip after build
|
||
|
**********************************************-->
|
||
|
<!-- if game path or OS is invalid, show one user-friendly error instead of a slew of reference errors -->
|
||
|
<Target Name="BeforeBuild">
|
||
|
<Error Condition="'$(OS)' != 'OSX' AND '$(OS)' != 'Unix' AND '$(OS)' != 'Windows_NT'" Text="The mod build package doesn't recognise OS type '$(OS)'." />
|
||
|
|
||
|
<Error Condition="!Exists('$(GamePath)')" Text="The mod build package can't find your game folder. You can specify where to find it; see details at https://github.com/Pathoschild/SMAPI/blob/develop/docs/mod-build-config.md#game-path." />
|
||
|
<Error Condition="'$(OS)' == 'Windows_NT' AND !Exists('$(GamePath)\Stardew Valley.exe')" Text="The mod build package found a a game folder at $(GamePath), but it doesn't contain the Stardew Valley.exe file. If this folder is invalid, delete it and the package will autodetect another game install path." />
|
||
|
<Error Condition="'$(OS)' != 'Windows_NT' AND !Exists('$(GamePath)\StardewValley.exe')" Text="The mod build package found a a game folder at $(GamePath), but it doesn't contain the StardewValley.exe file. If this folder is invalid, delete it and the package will autodetect another game install path." />
|
||
|
<Error Condition="!Exists('$(GamePath)\StardewModdingAPI.exe')" Text="The mod build package found a game folder at $(GamePath), but it doesn't contain SMAPI. You need to install SMAPI before building the mod." />
|
||
|
</Target>
|
||
|
|
||
|
<!-- deploy mod files & create release zip -->
|
||
|
<Target Name="AfterBuild">
|
||
|
<DeployModTask
|
||
|
ModFolderName="$(ModFolderName)"
|
||
|
ModZipPath="$(ModZipPath)"
|
||
|
|
||
|
EnableModDeploy="$(EnableModDeploy)"
|
||
|
EnableModZip="$(EnableModZip)"
|
||
|
|
||
|
ProjectDir="$(ProjectDir)"
|
||
|
TargetDir="$(TargetDir)"
|
||
|
GameDir="$(GamePath)"
|
||
|
/>
|
||
|
</Target>
|
||
|
</Project>
|