<Project>
<PropertyGroup>
<IsAmsProject Condition="'$(MSBuildProjectName)' == 'AutoMiningScript' Or '$(MSBuildProjectName)' == 'AutoMiningFleet' Or '$(MSBuildProjectName)' == 'AutoMiningMarker' Or '$(MSBuildProjectName)' == 'AutoMiningWatchdog' Or '$(MSBuildProjectName)' == 'AutoMiningScript.Tests'">true</IsAmsProject>
<!-- Keep generated source outside obj: MDK intentionally excludes obj files. -->
<AmsResourceSource>$(MSBuildThisFileDirectory).generated/$(MSBuildProjectName)/$(ScriptLanguage)/Strings.g.cs</AmsResourceSource>
</PropertyGroup>
<ItemGroup Condition="'$(IsAmsProject)' == 'true'">
<Compile Include="$(AmsResourceSource)" Link="Strings.g.cs" />
<Compile Include="$(MSBuildThisFileDirectory)AutoMiningScript/Localization.cs" Link="Localization.cs" Condition="'$(MSBuildProjectName)' != 'AutoMiningScript.Tests'" />
</ItemGroup>
<Target Name="GenerateAmsResources" BeforeTargets="BeforeBuild" Condition="'$(IsAmsProject)' == 'true'">
<Error Condition="'$(ScriptLanguage)' != 'zh-CN' And '$(ScriptLanguage)' != 'en-US'" Text="ScriptLanguage must be zh-CN or en-US." />
<Exec Command="pwsh -NoProfile -File "$(MSBuildThisFileDirectory)tools/Generate-Localization.ps1" -Language "$(ScriptLanguage)" -OutputPath "$(AmsResourceSource)"" />
</Target>
<!-- MDK 2.2.11 reopens the project in another process. Forward the culture via
that process's environment so its workspace sees the same Compile items
as dotnet build -p:ScriptLanguage=... (custom globals are otherwise lost). -->
<Target Name="MdkPack" AfterTargets="PostBuildEvent" Condition="'$(IsAmsProject)' == 'true' And '$(MSBuildProjectName)' != 'AutoMiningScript.Tests' And ('$(Configuration)' == '$(MdkBuildConfiguration)' Or '$(MdkBuildConfiguration)' == 'all')">
<PropertyGroup>
<MdkInteractiveFlag Condition="'$(MdkInteractive)' == '' Or '$(MdkInteractive)' == 'no'">-interactive DoNothing</MdkInteractiveFlag>
<MdkInteractiveFlag Condition="'$(MdkInteractive)' != '' And '$(MdkInteractive)' != 'no' And '$(MdkInteractive)' != 'auto'">-interactive $(MdkInteractive)</MdkInteractiveFlag>
</PropertyGroup>
<Exec Command=""$(MdkCliPath)" pack "$(MSBuildProjectFullPath)" $(MdkArguments) -configuration $(Configuration) $(MdkInteractiveFlag)" EnvironmentVariables="ScriptLanguage=$(ScriptLanguage)" ContinueOnError="true">
<Output TaskParameter="ExitCode" PropertyName="MdkExitCode" />
</Exec>
<Error Condition="'$(MdkExitCode)' != '0'" Text="MDK could not package the project. Please check the build output." />
</Target>
</Project>
<Project>
<PropertyGroup>
<IsAmsProject Condition="'$(MSBuildProjectName)' == 'AutoMiningScript' Or '$(MSBuildProjectName)' == 'AutoMiningFleet' Or '$(MSBuildProjectName)' == 'AutoMiningMarker' Or '$(MSBuildProjectName)' == 'AutoMiningWatchdog' Or '$(MSBuildProjectName)' == 'AutoMiningScript.Tests'">true</IsAmsProject>
<!-- Keep generated source outside obj: MDK intentionally excludes obj files. -->
<AmsResourceSource>$(MSBuildThisFileDirectory).generated/$(MSBuildProjectName)/$(ScriptLanguage)/Strings.g.cs</AmsResourceSource>
</PropertyGroup>
<ItemGroup Condition="'$(IsAmsProject)' == 'true'">
<Compile Include="$(AmsResourceSource)" Link="Strings.g.cs" />
<Compile Include="$(MSBuildThisFileDirectory)AutoMiningScript/Localization.cs" Link="Localization.cs" Condition="'$(MSBuildProjectName)' != 'AutoMiningScript.Tests'" />
</ItemGroup>
<Target Name="GenerateAmsResources" BeforeTargets="BeforeBuild" Condition="'$(IsAmsProject)' == 'true'">
<Error Condition="'$(ScriptLanguage)' != 'zh-CN' And '$(ScriptLanguage)' != 'en-US'" Text="ScriptLanguage must be zh-CN or en-US." />
<Exec Command="pwsh -NoProfile -File "$(MSBuildThisFileDirectory)tools/Generate-Localization.ps1" -Language "$(ScriptLanguage)" -OutputPath "$(AmsResourceSource)"" />
</Target>
<!-- MDK 2.2.11 reopens the project in another process. Forward the culture via
that process's environment so its workspace sees the same Compile items
as dotnet build -p:ScriptLanguage=... (custom globals are otherwise lost). -->
<Target Name="MdkPack" AfterTargets="PostBuildEvent" Condition="'$(IsAmsProject)' == 'true' And '$(MSBuildProjectName)' != 'AutoMiningScript.Tests' And ('$(Configuration)' == '$(MdkBuildConfiguration)' Or '$(MdkBuildConfiguration)' == 'all')">
<PropertyGroup>
<MdkInteractiveFlag Condition="'$(MdkInteractive)' == '' Or '$(MdkInteractive)' == 'no'">-interactive DoNothing</MdkInteractiveFlag>
<MdkInteractiveFlag Condition="'$(MdkInteractive)' != '' And '$(MdkInteractive)' != 'no' And '$(MdkInteractive)' != 'auto'">-interactive $(MdkInteractive)</MdkInteractiveFlag>
</PropertyGroup>
<Exec Command=""$(MdkCliPath)" pack "$(MSBuildProjectFullPath)" $(MdkArguments) -configuration $(Configuration) $(MdkInteractiveFlag)" EnvironmentVariables="ScriptLanguage=$(ScriptLanguage)" ContinueOnError="true">
<Output TaskParameter="ExitCode" PropertyName="MdkExitCode" />
</Exec>
<Error Condition="'$(MdkExitCode)' != '0'" Text="MDK could not package the project. Please check the build output." />
</Target>
</Project>