Files
UnrealEngineUWP/Engine/Source/Programs/UnrealBuildTool/UnrealBuildToolCore.csproj
T
Joakim Lindqvist 4a4909d67d Simplified conditions for per platform checks in net core csprojs to make sure our condition parsing in UBT can handle it.
Should fix precompiled binary builds

#rb none

[CL 14648974 by Joakim Lindqvist in ue5-main branch]
2020-11-03 19:13:58 -04:00

117 lines
6.4 KiB
XML

<Project>
<PropertyGroup>
<!-- Set a custom temp directory so we can live side by side with the .net framework output -->
<BaseIntermediateOutputPath>$(MSBuildThisFileDirectory)obj-core\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<BaseOutputPath>$(MSBuildThisFileDirectory)bin-core\$(MSBuildProjectName)\</BaseOutputPath>
</PropertyGroup>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<Configuration Condition=" '$(Configuration)' == '' ">Development</Configuration>
<OutputType>Exe</OutputType>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
<DefineConstants>NET_CORE</DefineConstants>
<Configurations>Debug;Release;Development</Configurations>
<ApplicationManifest>app.manifest</ApplicationManifest>
<AssemblyName>UnrealBuildTool</AssemblyName>
<RootNamespace>UnrealBuildTool</RootNamespace>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<IsWindows Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))' == 'true'">true</IsWindows>
<IsOSX Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true'">true</IsOSX>
<IsLinux Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' == 'true'">true</IsLinux>
</PropertyGroup>
<Choose>
<When Condition="'$(IsOSX)'=='true'">
<PropertyGroup>
<!-- Set runtie identifier for osx so that it produces a app host executable (consistency with the other platforms) -->
<RuntimeIdentifier>osx-x64</RuntimeIdentifier>
</PropertyGroup>
</When>
</Choose>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Development|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>..\..\..\Binaries\DotNET\UnrealBuildTool</OutputPath>
<DocumentationFile>..\..\..\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>..\..\..\Binaries\DotNET\UnrealBuildTool</OutputPath>
<DocumentationFile>..\..\..\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>..\..\..\Binaries\DotNET\UnrealBuildTool</OutputPath>
<DocumentationFile>..\..\..\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.XML</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="Ionic.Zip.Reduced">
<HintPath>..\..\..\Binaries\DotNET\Ionic.Zip.Reduced.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.Setup.Configuration.Interop">
<HintPath>..\..\..\Binaries\ThirdParty\VisualStudio\Microsoft.VisualStudio.Setup.Configuration.Interop.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
</ItemGroup>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
<ItemGroup>
<Compile Remove="obj\**" />
<EmbeddedResource Remove="obj\**" />
<None Remove="obj\**" />
</ItemGroup>
<Choose>
<When Condition="Exists('..\..\..\Restricted\NotForLicensees\Source\Programs\UnrealBuildTool\Executors\FASTBuild.cs')">
<PropertyGroup>
<DefineConstants>$(DefineConstants);__FASTBUILD_AVAILABLE__</DefineConstants>
</PropertyGroup>
</When>
</Choose>
<ItemGroup>
<Compile Include="..\DotNETCommon\MetaData.cs">
<Link>Properties\MetaData.cs</Link>
</Compile>
</ItemGroup>
<!-- The following will glob all platform extensions' UnrealBuildTool source
files and include them in the build. They will also appear in VisualStudio.
RecursiveDir does not work in VS Mac (and maybe Linux?), so only use it in Windows.
See: https://developercommunity.visualstudio.com/content/problem/527478/recursivedir-causes-infinitely-nested-subdirectori.html -->
<ItemGroup>
<Compile Include="../../../Platforms/*/Source/Programs/UnrealBuildTool/**/*.cs">
<!-- Since RecursiveDir is bugged on VS Mac, we use the FullPath, and use Regex to pull out portions of the path to get Platform name -->
<Link>Platform/$([System.Text.RegularExpressions.Regex]::Replace(%(FullPath), '^(.*[\\/]Platforms[\\/])(.+?)[\\/](.*)$', '$2'))/%(Filename)%(Extension)</Link>
</Compile>
<Compile Include="../../../Restricted/*/Platforms/*/Source/Programs/UnrealBuildTool/**/*.cs">
<!-- Restricted may or may not be in a Platforms dir, so just use the subdir directly, even tho it makes for a
messier directory structure for these few files -->
<Link>Platform/$([System.Text.RegularExpressions.Regex]::Replace(%(FullPath), '^(.*[\\/]Platforms[\\/])(.+?)[\\/](.*)$', '$2'))/%(Filename)%(Extension)</Link>
</Compile>
<Compile Include="../../../Restricted/*/Source/Programs/UnrealBuildTool/**/*.cs">
<!-- Restricted may or may not be in a Platforms dir, so just use the subdir directly, even tho it makes for a
messier directory structure for these few files -->
<Link>$([System.Text.RegularExpressions.Regex]::Replace(%(FullPath), '^.+?[\\/]UnrealBuildTool[\\/]', ''))</Link>
</Compile>
</ItemGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<ItemGroup>
<ProjectReference Include="..\DotNETCommon\BuildUtilities\BuildUtilitiesCore.csproj" />
<ProjectReference Include="..\DotNETCommon\DotNETUtilities\DotNETUtilitiesCore.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.7.0" />
<PackageReference Include="Microsoft.Win32.Registry" Version="4.7.0" />
<PackageReference Include="System.Management" Version="4.7.0" />
<PackageReference Include="System.Security.Cryptography.Csp" Version="4.3.0" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="4.7.0" />
</ItemGroup>
</Project>