mirror of
https://github.com/prime31/FNA-VSCode-Template.git
synced 2025-10-31 21:50:44 +07:00
Still need to fix up a few lingering things. Need to figure out how the original sln file was functioning with Release configuration without having a Release config set up. Would also be nice to have some way to install and run the powershell script from code, so it would be as simple as creating the folder for the new project > right click > open with Code > (run command from pallette for new Nez project from template)
93 lines
6.1 KiB
Plaintext
93 lines
6.1 KiB
Plaintext
<!--
|
|
The main project needs a reference to this project. We use our own instead of the default MonoGame version so we can control
|
|
where our content gets built since we don't use "Content" but instead use "CompiledContent"
|
|
<Import Project="../MonoGameContent.targets" />
|
|
-->
|
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup>
|
|
<MonoGameInstallDirectory
|
|
Condition=" '$(MonoGameInstallDirectory)' == '' And Exists('/Library/Frameworks/Mono.framework/External/xbuild/MonoGame/v3.0/MonoGame.Common.props') ">/Library/Frameworks/Mono.framework/External/xbuild</MonoGameInstallDirectory>
|
|
<MonoGameInstallDirectory
|
|
Condition=" '$(MonoGameInstallDirectory)' == '' ">$(MSBuildProgramFiles32)</MonoGameInstallDirectory>
|
|
<ContentOutputDir>bin/DesktopGL</ContentOutputDir>
|
|
<ContentIntermediateDir>obj/DesktopGL</ContentIntermediateDir>
|
|
</PropertyGroup>
|
|
|
|
<UsingTask TaskName="MonoGame.Build.Tasks.CollectContentReferences"
|
|
AssemblyFile="\Library\Frameworks\MonoGame.framework\v3.0\MonoGame.Build.Tasks.dll" />
|
|
|
|
<!-- Add MonoGameContentReference to item type selection in Visual Studio -->
|
|
<ItemGroup>
|
|
<AvailableItemName Include="MonoGameContentReference" />
|
|
</ItemGroup>
|
|
|
|
<!-- This disables the IDE feature that skips executing msbuild in some build situations. -->
|
|
<PropertyGroup>
|
|
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="Prepare">
|
|
<PropertyGroup>
|
|
<MonoGameInstallDir>$(MonoGameInstallDirectory)\MonoGame\v3.0\</MonoGameInstallDir>
|
|
<!-- El Capitan Support -->
|
|
<MonoExe Condition=" '$(OS)' != 'Windows_NT' And Exists ('/Library/Frameworks/Mono.framework/Versions/Current/bin/mono') ">/Library/Frameworks/Mono.framework/Versions/Current/bin/mono</MonoExe>
|
|
<MonoExe Condition=" '$(OS)' != 'Windows_NT' And Exists ('/usr/local/bin/mono') ">/usr/local/bin/mono</MonoExe>
|
|
<MonoExe Condition=" '$(OS)' != 'Windows_NT' And Exists ('/usr/bin/mono') ">/usr/bin/mono</MonoExe>
|
|
<MonoExe Condition=" '$(OS)' != 'Windows_NT' And '$(MonoExe)' == '' ">mono</MonoExe>
|
|
<MonoGameContentBuilderExe Condition="'$(MonoGameContentBuilderExe)' == ''">$(MonoGameInstallDir)Tools\MGCB.exe</MonoGameContentBuilderExe>
|
|
<MonoGameContentBuilderCmd>"$(MonoGameContentBuilderExe)"</MonoGameContentBuilderCmd>
|
|
<MonoGameContentBuilderCmd Condition=" '$(OS)' != 'Windows_NT' ">$(MonoExe) $(MonoGameContentBuilderCmd)</MonoGameContentBuilderCmd>
|
|
<PlatformResourcePrefix Condition="'$(MonoGamePlatform)' == 'MacOSX'">$(MonoMacResourcePrefix)</PlatformResourcePrefix>
|
|
<PlatformResourcePrefix Condition="'$(MonoGamePlatform)' == 'iOS'">$(IPhoneResourcePrefix)</PlatformResourcePrefix>
|
|
<PlatformResourcePrefix Condition="'$(MonoGamePlatform)' == 'Android'">$(MonoAndroidAssetsPrefix)</PlatformResourcePrefix>
|
|
<PlatformResourcePrefix Condition="'$(PlatformResourcePrefix)' != '' And !HasTrailingSlash('$(PlatformResourcePrefix)')">$(PlatformResourcePrefix)\</PlatformResourcePrefix>
|
|
<PlatformResourcePrefix Condition="'$(PlatformResourcePrefix)' == ''"></PlatformResourcePrefix>
|
|
<MonoGameMGCBAdditionalArguments Condition="'$(MonoGameMGCBAdditionalArguments)' ==''">/quiet</MonoGameMGCBAdditionalArguments>
|
|
<Header>/platform:$(MonoGamePlatform)</Header>
|
|
</PropertyGroup>
|
|
|
|
<!-- Get all Mono Game Content References and store them in a list -->
|
|
<!-- We do this here so we are compatible with xbuild -->
|
|
<CollectContentReferences ContentReferences="@(MonoGameContentReference)" MonoGamePlatform="$(MonoGamePlatform)">
|
|
<Output TaskParameter="Output" ItemName="ContentReferences" />
|
|
</CollectContentReferences>
|
|
|
|
<Error
|
|
Text="The MonoGame content builder executable could not be located at '$(MonoGameContentBuilderExe)'!"
|
|
Condition="!Exists('$(MonoGameContentBuilderExe)')"
|
|
/>
|
|
|
|
<Warning
|
|
Text="No Content References Found. Please make sure your .mgcb file has a build action of MonoGameContentReference"
|
|
Condition=" '%(ContentReferences.FullPath)' == '' "
|
|
/>
|
|
</Target>
|
|
|
|
|
|
<PropertyGroup>
|
|
<BuildDependsOn>
|
|
BuildContent;
|
|
$(BuildDependsOn);
|
|
</BuildDependsOn>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="RunContentBuilder">
|
|
<Exec Condition=" '%(ContentReferences.FullPath)' != '' "
|
|
Command="$(MonoGameContentBuilderCmd) $(MonoGameMGCBAdditionalArguments) $(Header) /@:"%(ContentReferences.FullPath)" /outputDir:"$(ContentOutputDir)" /intermediateDir:"$(ContentIntermediateDir)""
|
|
WorkingDirectory="%(ContentReferences.RootDir)%(ContentReferences.Directory)" />
|
|
<CreateItem Include="%(ContentReferences.RelativeFullPath)%(ContentReferences.ContentOutputDir)\**\*.*"
|
|
AdditionalMetadata="ContentOutputDir=%(ContentReferences.ContentDirectory)">
|
|
<Output TaskParameter="Include" ItemName="ExtraContent" />
|
|
</CreateItem>
|
|
</Target>
|
|
|
|
<Target Name="BuildContent" DependsOnTargets="Prepare;RunContentBuilder" AfterTargets="Build" Condition=" '@(MonoGameContentReference)' != '' "
|
|
Outputs="%(ExtraContent.RecursiveDir)%(ExtraContent.Filename)%(ExtraContent.Extension)">
|
|
<CreateItem Include="%(ExtraContent.FullPath)" AdditionalMetadata="Link=$(PlatformResourcePrefix)%(ExtraContent.ContentOutputDir)%(ExtraContent.RecursiveDir)%(ExtraContent.Filename)%(ExtraContent.Extension);CopyToOutputDirectory=PreserveNewest"
|
|
Condition="'%(ExtraContent.Filename)' != ''">
|
|
<Output TaskParameter="Include" ItemName="Content" Condition="'$(MonoGamePlatform)' != 'Android' And '$(MonoGamePlatform)' != 'iOS' And '$(MonoGamePlatform)' != 'MacOSX'" />
|
|
<Output TaskParameter="Include" ItemName="BundleResource" Condition="'$(MonoGamePlatform)' == 'MacOSX' Or '$(MonoGamePlatform)' == 'iOS'" />
|
|
<Output TaskParameter="Include" ItemName="AndroidAsset" Condition="'$(MonoGamePlatform)' == 'Android'" />
|
|
</CreateItem>
|
|
</Target>
|
|
</Project> |