Files
UnrealEngine/Engine/Source/Programs/UnrealBuildTool/UnrealBuildTool.csproj
2025-05-18 13:04:45 +08:00

138 lines
9.2 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\Shared\UnrealEngine.csproj.props" />
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Configuration Condition=" '$(Configuration)' == '' ">Development</Configuration>
<OutputType>Exe</OutputType>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
<Configurations>Debug;Release;Development;Analyze</Configurations>
<ApplicationManifest>app.manifest</ApplicationManifest>
<AssemblyName>UnrealBuildTool</AssemblyName>
<RootNamespace>UnrealBuildTool</RootNamespace>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages> <!-- remove non english resource languages -->
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<DebugType>pdbonly</DebugType>
<DebugType Condition="'$(IsWindows)' == 'true' And '$(IsArm64)' == 'true'">portable</DebugType>
<Nullable>enable</Nullable>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Development|AnyCPU' ">
<Optimize>True</Optimize>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>True</Optimize>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DebugType Condition="'$(IsWindows)' == 'true' And '$(IsArm64)' == 'true'">portable</DebugType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Analyze|AnyCPU' ">
<RunAnalyzersDuringBuild>True</RunAnalyzersDuringBuild>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<Reference Include="Ionic.Zip.Reduced">
<HintPath>..\..\..\Binaries\DotNET\Ionic.Zip.Reduced.dll</HintPath>
</Reference>
</ItemGroup>
<Choose>
<When Condition="Exists('..\..\..\Restricted\NotForLicensees\Source\Programs\UnrealBuildTool\ProjectFiles\VProject\VProjectFileGenerator.cs')">
<PropertyGroup>
<DefineConstants>$(DefineConstants);__VPROJECT_AVAILABLE__</DefineConstants>
</PropertyGroup>
</When>
</Choose>
<ItemGroup>
<Compile Include="..\Shared\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>
<!-- SDK config files -->
<None Include="../../../Platforms/*/Config/*_SDK.json">
<!-- 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>
</None>
<None Include="../../../Config/*/*_SDK.json">
<!-- 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), '^(.*[\\/]Config[\\/])(.+?)[\\/](.*)$', '$2'))/%(Filename)%(Extension)</Link>
</None>
</ItemGroup>
<ItemGroup>
<!-- If you add a project reference, BuildUAT.bat/.sh and BuildUBT.bat/.sh need to be updated to also test for those projects.-->
<ProjectReference Include="..\Shared\EpicGames.Build\EpicGames.Build.csproj" />
<ProjectReference Include="..\Shared\EpicGames.Core\EpicGames.Core.csproj" />
<ProjectReference Include="..\Shared\EpicGames.Horde\EpicGames.Horde.csproj" />
<ProjectReference Include="..\Shared\EpicGames.IoHash\EpicGames.IoHash.csproj" />
<ProjectReference Include="..\Shared\EpicGames.OIDC\EpicGames.OIDC.csproj" />
<ProjectReference Include="..\Shared\EpicGames.Serialization\EpicGames.Serialization.csproj" />
<ProjectReference Include="..\Shared\EpicGames.UBA\EpicGames.UBA.csproj" />
<ProjectReference Include="..\Shared\EpicGames.UHT\EpicGames.UHT.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.11.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.1" />
<PackageReference Include="Microsoft.VisualStudio.Setup.Configuration.Interop" Version="3.11.2177" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="OpenTracing" Version="0.12.1" />
<PackageReference Include="System.CodeDom" Version="8.0.0" />
<PackageReference Include="System.Management" Version="8.0.0" />
<PackageReference Include="System.Security.Cryptography.Csp" Version="4.3.0" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="8.0.1" />
<!-- Required by Ionic -->
<PackageReference Include="System.Security.Permissions" Version="8.0.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="8.0.0" />
<!-- Added as a temporary workaround to running from visual studio where the system version of dotnet is run.
Adding a loader context resolves many of the issues, but it still fails when MSBuild tries to write the json -->
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>
<!-- Various batch files and shell scripts that build or run UnrealBuildTool -->
<ItemGroup>
<None Include="../../../Build/BatchFiles/**/*">
<Link>$([System.Text.RegularExpressions.Regex]::Replace(%(FullPath), '^.+?[\\/]BatchFiles[\\/]', 'BatchFiles/'))</Link>
</None>
</ItemGroup>
<!-- Various BuildConfiguration files -->
<ItemGroup>
<None Condition="Exists('..\..\..\Restricted\NotForLicensees\Programs\UnrealBuildTool\BuildConfiguration.xml')" Include="..\..\..\Restricted\NotForLicensees\Programs\UnrealBuildTool\BuildConfiguration.xml"><Link>BuildConfiguration\BuildConfiguration.xml (Engine NotForLicensees)</Link></None>
<None Condition="Exists('..\..\..\Saved\UnrealBuildTool\BuildConfiguration.xml')" Include="..\..\..\Saved\UnrealBuildTool\BuildConfiguration.xml"><Link>BuildConfiguration\BuildConfiguration.xml (Engine Saved)</Link></None>
<None Condition="Exists('$(ProgramData)\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml')" Include="$(ProgramData)\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml"><Link>BuildConfiguration\BuildConfiguration.xml (Global ProgramData)</Link></None>
<None Condition="Exists('$(AppData)\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml')" Include="$(AppData)\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml"><Link>BuildConfiguration\BuildConfiguration.xml (Global AppData)</Link></None>
<None Condition="Exists('$(LocalAppData)\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml')" Include="$(LocalAppData)\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml"><Link>BuildConfiguration\BuildConfiguration.xml (Global LocalAppData)</Link></None>
<None Condition="Exists('$(UserProfile)\Documents\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml')" Include="$(UserProfile)\Documents\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml"><Link>BuildConfiguration\BuildConfiguration.xml (Global Documents)</Link></None>
<None Condition="Exists('..\..\..\Intermediate\Build\UnrealBuildTool.Env.BuildConfiguration.xml')" Include="..\..\..\Intermediate\Build\UnrealBuildTool.Env.BuildConfiguration.xml"><Link>BuildConfiguration\BuildConfiguration.xml (Environment)</Link></None>
</ItemGroup>
</Project>