mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-08 03:27:04 +09:00
471 lines
36 KiB
XML
471 lines
36 KiB
XML
<Project>
|
|
<PropertyGroup>
|
|
<!-- For non-SDK projects that import this file and then import Microsoft.Common.props,
|
|
tell Microsoft.Common.props not to import Directory.Build.props again. -->
|
|
<ImportDirectoryBuildProps>false</ImportDirectoryBuildProps>
|
|
<!-- Used to determine if we should build some packages only once across multiple official build legs.
|
|
For offline builds we still set OfficialBuildId but we need to build all the packages for a single
|
|
leg only, so we also take DotNetBuildFromSource into account. -->
|
|
<BuildingAnOfficialBuildLeg Condition="'$(BuildingAnOfficialBuildLeg)' == '' and '$(OfficialBuildId)' != '' and '$(DotNetBuildFromSource)' != 'true'">true</BuildingAnOfficialBuildLeg>
|
|
<!-- When doing a source build, we want to build the various text-only manifests in
|
|
all cases, rather than ordinarily where we build them during mobile or wasm
|
|
build legs. This makes the manifests available on source-only builds. -->
|
|
<ForceBuildMobileManifests Condition="'$(DotNetBuildFromSource)' == 'true'">true</ForceBuildMobileManifests>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Label="CalculateTargetOS">
|
|
<_hostOS>linux</_hostOS>
|
|
<_hostOS Condition="$([MSBuild]::IsOSPlatform('OSX'))">osx</_hostOS>
|
|
<_hostOS Condition="$([MSBuild]::IsOSPlatform('FREEBSD'))">freebsd</_hostOS>
|
|
<_hostOS Condition="$([MSBuild]::IsOSPlatform('NETBSD'))">netbsd</_hostOS>
|
|
<_hostOS Condition="$([MSBuild]::IsOSPlatform('ILLUMOS'))">illumos</_hostOS>
|
|
<_hostOS Condition="$([MSBuild]::IsOSPlatform('SOLARIS'))">solaris</_hostOS>
|
|
<_hostOS Condition="$([MSBuild]::IsOSPlatform('HAIKU'))">haiku</_hostOS>
|
|
<_hostOS Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">windows</_hostOS>
|
|
<HostOS>$(_hostOS)</HostOS>
|
|
<TargetOS Condition="'$(TargetOS)' == '' and '$(RuntimeIdentifier)' == 'browser-wasm'">browser</TargetOS>
|
|
<TargetOS Condition="'$(TargetOS)' == ''">$(_hostOS)</TargetOS>
|
|
<TargetsMobile Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator' or '$(TargetOS)' == 'android' or '$(TargetOS)' == 'browser' or '$(TargetOS)' == 'wasi'">true</TargetsMobile>
|
|
<TargetsAppleMobile Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator'">true</TargetsAppleMobile>
|
|
</PropertyGroup>
|
|
|
|
<!-- Platform property is required by RepoLayout.props in Arcade SDK. -->
|
|
<PropertyGroup Label="CalculateArch">
|
|
<_hostArch>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant)</_hostArch>
|
|
<BuildArchitecture Condition="'$(BuildArchitecture)' == ''">$(_hostArch)</BuildArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and ('$(TargetOS)' == 'browser' or '$(RuntimeIdentifier)' == 'browser-wasm')">wasm</TargetArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and ('$(TargetOS)' == 'wasi' or '$(RuntimeIdentifier)' == 'wasi-wasm')">wasm</TargetArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm'">arm</TargetArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armv6'">armv6</TargetArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armel'">armel</TargetArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm64'">arm64</TargetArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'loongarch64'">loongarch64</TargetArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 's390x'">s390x</TargetArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'ppc64le'">ppc64le</TargetArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(TargetsMobile)' == 'true'">x64</TargetArchitecture>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>
|
|
<Platform Condition="'$(Platform)' == '' and '$(InferPlatformFromTargetArchitecture)' == 'true'">$(TargetArchitecture)</Platform>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Label="SetOSTargetMinVersions">
|
|
<!--
|
|
Minimum target OS versions, keep in sync with:
|
|
- eng/native/configurecompiler.cmake
|
|
- eng/native/build-commons.sh
|
|
- src/native/libs/build-native.sh
|
|
- src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/ObjectWriter.cs
|
|
- src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets
|
|
- src/installer/pkg/sfx/bundle/shared-framework-distribution-template-x64.xml
|
|
- src/installer/pkg/sfx/bundle/shared-framework-distribution-template-arm64.xml
|
|
- src/tasks/MobileBuildTasks/Apple/AppleProject.cs
|
|
-->
|
|
<AndroidApiLevelMin>21</AndroidApiLevelMin>
|
|
<iOSVersionMin>11.0</iOSVersionMin>
|
|
<tvOSVersionMin>11.0</tvOSVersionMin>
|
|
<watchOSVersionMin>2.0</watchOSVersionMin>
|
|
<watchOS64_32VersionMin>5.1</watchOS64_32VersionMin>
|
|
<macOSVersionMin>10.15</macOSVersionMin>
|
|
<macOSVersionMin Condition="('$(TargetOS)' == 'osx' or '$(TargetOS)' == 'maccatalyst') and '$(TargetArchitecture)' == 'arm64'">11.0</macOSVersionMin>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- Set OutDirName (Arcade specific property that must be set before the Arcade SDK is imported) to change the BaseOutputPath and
|
|
BaseIntermediateOutputPath properties to include the ref subfolder. -->
|
|
<IsReferenceAssemblyProject Condition="$([System.IO.Path]::GetFileName('$(MSBuildProjectDirectory)')) == 'ref'">true</IsReferenceAssemblyProject>
|
|
<OutDirName Condition="'$(IsReferenceAssemblyProject)' == 'true'">$(MSBuildProjectName)$([System.IO.Path]::DirectorySeparatorChar)ref</OutDirName>
|
|
</PropertyGroup>
|
|
|
|
<!-- Import the Arcade SDK -->
|
|
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />
|
|
|
|
<!-- The TFMs to build and test against. -->
|
|
<PropertyGroup>
|
|
<NetCoreAppCurrentVersion>8.0</NetCoreAppCurrentVersion>
|
|
<NetCoreAppCurrentIdentifier>.NETCoreApp</NetCoreAppCurrentIdentifier>
|
|
<NetCoreAppCurrentTargetFrameworkMoniker>$(NetCoreAppCurrentIdentifier),Version=v$(NetCoreAppCurrentVersion)</NetCoreAppCurrentTargetFrameworkMoniker>
|
|
<MicrosoftNetCoreAppFrameworkName>Microsoft.NETCore.App</MicrosoftNetCoreAppFrameworkName>
|
|
<NetCoreAppCurrentBrandName>.NET $(NetCoreAppCurrentVersion)</NetCoreAppCurrentBrandName>
|
|
<NetCoreAppCurrent>net$(NetCoreAppCurrentVersion)</NetCoreAppCurrent>
|
|
|
|
<!-- The previous supported .NET version. -->
|
|
<NetCoreAppPreviousVersion>7.0</NetCoreAppPreviousVersion>
|
|
<NetCoreAppPrevious>net$(NetCoreAppPreviousVersion)</NetCoreAppPrevious>
|
|
<NetCoreAppPrevious Condition="'$(DotNetBuildFromSource)' == 'true'">$(NetCoreAppCurrent)</NetCoreAppPrevious>
|
|
|
|
<!-- The minimum supported .NET version. -->
|
|
<NetCoreAppMinimum>net6.0</NetCoreAppMinimum>
|
|
<NetCoreAppMinimum Condition="'$(DotNetBuildFromSource)' == 'true'">$(NetCoreAppCurrent)</NetCoreAppMinimum>
|
|
|
|
<!-- when this is updated, make sure to keep $(_TargetFrameworkForNETCoreTasks)
|
|
in src/mono/wasm/build/WasmApp.LocalBuild.props in sync -->
|
|
<NetCoreAppToolCurrentVersion>8.0</NetCoreAppToolCurrentVersion>
|
|
<NetCoreAppToolCurrent>net$(NetCoreAppToolCurrentVersion)</NetCoreAppToolCurrent>
|
|
<NetCoreAppCurrentToolTargetFrameworkMoniker>$(NetCoreAppCurrentIdentifier),Version=v$(NetCoreAppToolCurrentVersion)</NetCoreAppCurrentToolTargetFrameworkMoniker>
|
|
|
|
<AspNetCoreAppCurrentVersion>8.0</AspNetCoreAppCurrentVersion>
|
|
<AspNetCoreAppCurrent>net$(AspNetCoreAppCurrentVersion)</AspNetCoreAppCurrent>
|
|
|
|
<NetFrameworkMinimum>net462</NetFrameworkMinimum>
|
|
<NetFrameworkCurrent>net48</NetFrameworkCurrent>
|
|
<NetFrameworkToolCurrent>net472</NetFrameworkToolCurrent>
|
|
<!-- Don't build for NETFramework during source-build. -->
|
|
<NetFrameworkMinimum Condition="'$(DotNetBuildFromSource)' == 'true'" />
|
|
<NetFrameworkToolCurrent Condition="'$(DotNetBuildFromSource)' == 'true'" />
|
|
<NetFrameworkCurrent Condition="'$(DotNetBuildFromSource)' == 'true'" />
|
|
|
|
<!-- Important: Set this to the GA version (or a close approximation) during servicing and adjust the TFM property below. -->
|
|
<ApiCompatNetCoreAppBaselineVersion>8.0.0</ApiCompatNetCoreAppBaselineVersion>
|
|
<ApiCompatNetCoreAppBaselineTFM>net8.0</ApiCompatNetCoreAppBaselineTFM>
|
|
|
|
<TargetFrameworkForNETFrameworkTasks>$(NetFrameworkToolCurrent)</TargetFrameworkForNETFrameworkTasks>
|
|
<!-- Don't build for NETFramework during source-build. -->
|
|
<TargetFrameworkForNETFrameworkTasks Condition="'$(DotNetBuildFromSource)' == 'true'" />
|
|
|
|
<TargetFrameworkForNETCoreTasks>$(NetCoreAppToolCurrent)</TargetFrameworkForNETCoreTasks>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Label="CalculateConfiguration">
|
|
<!-- The RuntimeConfiguration property allows to pass in/specify a configuration that applies to both CoreCLR and Mono. -->
|
|
<RuntimeConfiguration Condition="'$(RuntimeConfiguration)' == ''">$(Configuration)</RuntimeConfiguration>
|
|
<RuntimeConfiguration Condition="'$(RuntimeConfiguration)' == '' and ('$(Configuration)' == 'Debug' or '$(Configuration)' == 'Release')">$(Configuration)</RuntimeConfiguration>
|
|
<RuntimeConfiguration Condition="'$(RuntimeConfiguration)' == ''">Debug</RuntimeConfiguration>
|
|
<CoreCLRConfiguration Condition="'$(CoreCLRConfiguration)' == ''">$(RuntimeConfiguration)</CoreCLRConfiguration>
|
|
<MonoConfiguration Condition="'$(MonoConfiguration)' == '' and '$(RuntimeConfiguration.ToLower())' != 'checked'">$(RuntimeConfiguration)</MonoConfiguration>
|
|
<!-- There's no checked configuration on Mono. -->
|
|
<MonoConfiguration Condition="'$(MonoConfiguration)' == '' and '$(RuntimeConfiguration.ToLower())' == 'checked'">Debug</MonoConfiguration>
|
|
<LibrariesConfiguration Condition="'$(LibrariesConfiguration)' == ''">$(Configuration)</LibrariesConfiguration>
|
|
<HostConfiguration Condition="'$(HostConfiguration)' == ''">$(Configuration)</HostConfiguration>
|
|
<TasksConfiguration Condition="'$(TasksConfiguration)' == ''">$(Configuration)</TasksConfiguration>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<LibrariesProjectRoot>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'src', 'libraries'))</LibrariesProjectRoot>
|
|
<CoreClrProjectRoot>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'src', 'coreclr'))</CoreClrProjectRoot>
|
|
<MonoProjectRoot>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'src', 'mono'))</MonoProjectRoot>
|
|
<InstallerProjectRoot>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'src', 'installer'))</InstallerProjectRoot>
|
|
<WorkloadsProjectRoot>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'src', 'workloads'))</WorkloadsProjectRoot>
|
|
<ToolsProjectRoot>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'src', 'tools'))</ToolsProjectRoot>
|
|
<SharedNativeRoot>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'native'))</SharedNativeRoot>
|
|
<RepoTasksDir>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'src', 'tasks'))</RepoTasksDir>
|
|
<IbcOptimizationDataDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'ibc'))</IbcOptimizationDataDir>
|
|
<MibcOptimizationDataDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'mibc'))</MibcOptimizationDataDir>
|
|
<DocsDir>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'docs'))</DocsDir>
|
|
|
|
<AppleAppBuilderDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AppleAppBuilder', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)'))</AppleAppBuilderDir>
|
|
<AndroidAppBuilderDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AndroidAppBuilder', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)', 'publish'))</AndroidAppBuilderDir>
|
|
<MobileBuildTasksDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'MobileBuildTasks', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)'))</MobileBuildTasksDir>
|
|
<WasmAppBuilderDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmAppBuilder', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)'))</WasmAppBuilderDir>
|
|
<WasmBuildTasksDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmBuildTasks', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)', 'publish'))</WasmBuildTasksDir>
|
|
<WorkloadBuildTasksDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WorkloadBuildTasks', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)'))</WorkloadBuildTasksDir>
|
|
<LibraryBuilderDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'LibraryBuilder', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)'))</LibraryBuilderDir>
|
|
<MonoAOTCompilerDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'MonoAOTCompiler', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)'))</MonoAOTCompilerDir>
|
|
<MonoTargetsTasksDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'MonoTargetsTasks', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)'))</MonoTargetsTasksDir>
|
|
<TestExclusionListTasksDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'TestExclusionListTasks', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)'))</TestExclusionListTasksDir>
|
|
<InstallerTasksAssemblyPath Condition="'$(MSBuildRuntimeType)' == 'Core'">$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'installer.tasks', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)', 'installer.tasks.dll'))</InstallerTasksAssemblyPath>
|
|
<InstallerTasksAssemblyPath Condition="'$(MSBuildRuntimeType)' != 'Core'">$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'installer.tasks', '$(TasksConfiguration)', '$(NetFrameworkToolCurrent)', 'installer.tasks.dll'))</InstallerTasksAssemblyPath>
|
|
<Crossgen2SdkOverridePropsPath Condition="'$(MSBuildRuntimeType)' == 'Core'">$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Crossgen2Tasks', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)', 'Microsoft.NET.CrossGen.props'))</Crossgen2SdkOverridePropsPath>
|
|
<Crossgen2SdkOverrideTargetsPath Condition="'$(MSBuildRuntimeType)' == 'Core'">$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Crossgen2Tasks', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)', 'Microsoft.NET.CrossGen.targets'))</Crossgen2SdkOverrideTargetsPath>
|
|
<AppleAppBuilderTasksAssemblyPath>$([MSBuild]::NormalizePath('$(AppleAppBuilderDir)', 'AppleAppBuilder.dll'))</AppleAppBuilderTasksAssemblyPath>
|
|
<AndroidAppBuilderTasksAssemblyPath>$([MSBuild]::NormalizePath('$(AndroidAppBuilderDir)', 'AndroidAppBuilder.dll'))</AndroidAppBuilderTasksAssemblyPath>
|
|
<MobileBuildTasksAssemblyPath>$([MSBuild]::NormalizePath('$(MobileBuildTasksDir)', 'MobileBuildTasks.dll'))</MobileBuildTasksAssemblyPath>
|
|
<WasmAppBuilderTasksAssemblyPath>$([MSBuild]::NormalizePath('$(WasmAppBuilderDir)', 'WasmAppBuilder.dll'))</WasmAppBuilderTasksAssemblyPath>
|
|
<WasmBuildTasksAssemblyPath>$([MSBuild]::NormalizePath('$(WasmBuildTasksDir)', 'WasmBuildTasks.dll'))</WasmBuildTasksAssemblyPath>
|
|
<WasmAppHostDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmAppHost', 'wasm', '$(Configuration)'))</WasmAppHostDir>
|
|
<WorkloadBuildTasksAssemblyPath>$([MSBuild]::NormalizePath('$(WorkloadBuildTasksDir)', 'WorkloadBuildTasks.dll'))</WorkloadBuildTasksAssemblyPath>
|
|
<LibraryBuilderTasksAssemblyPath>$([MSBuild]::NormalizePath('$(LibraryBuilderDir)', 'LibraryBuilder.dll'))</LibraryBuilderTasksAssemblyPath>
|
|
<MonoAOTCompilerTasksAssemblyPath>$([MSBuild]::NormalizePath('$(MonoAOTCompilerDir)', 'MonoAOTCompiler.dll'))</MonoAOTCompilerTasksAssemblyPath>
|
|
<MonoTargetsTasksAssemblyPath>$([MSBuild]::NormalizePath('$(MonoTargetsTasksDir)', 'MonoTargetsTasks.dll'))</MonoTargetsTasksAssemblyPath>
|
|
<TestExclusionListTasksAssemblyPath>$([MSBuild]::NormalizePath('$(TestExclusionListTasksDir)', 'TestExclusionListTasks.dll'))</TestExclusionListTasksAssemblyPath>
|
|
<CoreCLRToolPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(RuntimeConfiguration)'))</CoreCLRToolPath>
|
|
<ILAsmToolPath Condition="'$(DotNetBuildFromSource)' == 'true' or '$(BuildArchitecture)' == 's390x' or '$(BuildArchitecture)' == 'ppc64le'">$(CoreCLRToolPath)</ILAsmToolPath>
|
|
|
|
<WasmtimeDir Condition="'$(WasmtimeDir)' == '' and '$(WASMTIME_PATH)' != '' and Exists($(WASMTIME_PATH))">$(WASMTIME_PATH)</WasmtimeDir>
|
|
<WasmtimeDir Condition="'$(WasmtimeDir)' == ''">$([MSBuild]::NormalizeDirectory($(ArtifactsObjDir), 'wasmtime'))</WasmtimeDir>
|
|
<InstallWasmtimeForTests Condition="'$(InstallWasmtimeForTests)' == '' and !Exists($(WasmtimeDir))">true</InstallWasmtimeForTests>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Label="CalculatePortableBuild">
|
|
<PortableBuild Condition="'$(PortableBuild)' == '' and '$(DotNetBuildFromSource)' == 'true'">false</PortableBuild>
|
|
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
|
|
</PropertyGroup>
|
|
|
|
<!-- _portableOS is the portable rid-OS corresponding to the target platform. -->
|
|
<PropertyGroup Label="CalculatePortableOS">
|
|
<!-- To determine _portableOS we use TargetOS.
|
|
TargetOS is not a rid-OS. For example: for Windows it is 'windows' instead of 'win'.
|
|
And, for flavors of Linux, like 'linux-musl' and 'linux-bionic', TargetOS is 'linux'. -->
|
|
|
|
<_portableOS>$(TargetOS.ToLowerInvariant())</_portableOS>
|
|
<_portableOS Condition="'$(_portableOS)' == 'windows'">win</_portableOS>
|
|
|
|
<!-- TargetOS=AnyOS is a sentinel value used by tests, ignore it. -->
|
|
<_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableTargetOS)</_portableOS>
|
|
|
|
<!-- Detect linux flavors using __PortableTargetOS from the native script. -->
|
|
<_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-musl'">linux-musl</_portableOS>
|
|
<_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-bionic'">linux-bionic</_portableOS>
|
|
|
|
<!-- On Windows, we can build for Windows and Mobile.
|
|
For other TargetOSes, create a "win" build, built from TargetOS sources and "win" pre-built packages. -->
|
|
<_portableOS Condition="'$(HostOS)' == 'win' and '$(TargetsMobile)' != 'true'">win</_portableOS>
|
|
</PropertyGroup>
|
|
|
|
<!-- PackageRID is used for packages needed for the target. -->
|
|
<PropertyGroup Label="CalculatePackageRID">
|
|
<_packageOS>$(_portableOS)</_packageOS>
|
|
|
|
<_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' != 'linux-musl' and '$(_portableOS)' != 'linux-bionic'">$(_hostOS)</_packageOS>
|
|
|
|
<!-- source-build sets PackageOS to build with non-portable rid packages that were source-built previously. -->
|
|
<PackageRID Condition="'$(PackageOS)' != ''">$(PackageOS)-$(TargetArchitecture)</PackageRID>
|
|
<PackageRID Condition="'$(PackageRID)' == ''">$(_packageOS)-$(TargetArchitecture)</PackageRID>
|
|
</PropertyGroup>
|
|
|
|
<!-- ToolsRID is used for packages needed on the build host. -->
|
|
<PropertyGroup Label="CalculateToolsRID">
|
|
<!-- _portableHostOS is the portable rid-OS corresponding to the build host platform.
|
|
|
|
To determine _portableHostOS we use _hostOS, similar to how _portableOS is calculated from TargetOS.
|
|
|
|
When we're not cross-building we can detect linux flavors by looking at _portableOS
|
|
because the target platform and the build host platform are the same.
|
|
For cross-builds, we're currently unable to detect the flavors. -->
|
|
<_portableHostOS>$(_hostOS)</_portableHostOS>
|
|
<_portableHostOS Condition="'$(_portableHostOS)' == 'windows'">win</_portableHostOS>
|
|
<_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl</_portableHostOS>
|
|
|
|
<!-- source-build sets ToolsOS to build with non-portable rid packages that were source-built previously. -->
|
|
<ToolsRID Condition="'$(ToolsOS)' != ''">$(ToolsOS)-$(_hostArch)</ToolsRID>
|
|
<ToolsRID Condition="'$(ToolsRID)' == ''">$(_portableHostOS)-$(_hostArch)</ToolsRID>
|
|
|
|
<!-- Microsoft.NET.Sdk.IL SDK defaults to the portable host rid. Match it to ToolsRID (for source-build). -->
|
|
<MicrosoftNetCoreIlasmPackageRuntimeId>$(ToolsRID)</MicrosoftNetCoreIlasmPackageRuntimeId>
|
|
</PropertyGroup>
|
|
|
|
<!-- OutputRID is used to name the target platform.
|
|
For portable builds, OutputRID matches _portableOS.
|
|
For non-portable builds, it uses __DistroRid (from the native build script), or falls back to RuntimeInformation.RuntimeIdentifier.
|
|
Source-build sets OutputRID directly. -->
|
|
<PropertyGroup Label="CalculateOutputRID">
|
|
<_hostRid Condition="'$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</_hostRid>
|
|
<_hostRid Condition="'$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant)</_hostRid>
|
|
|
|
<_parseDistroRid>$(__DistroRid)</_parseDistroRid>
|
|
<_parseDistroRid Condition="'$(_parseDistroRid)' == ''">$(_hostRid)</_parseDistroRid>
|
|
<_distroRidIndex>$(_parseDistroRid.LastIndexOf('-'))</_distroRidIndex>
|
|
|
|
<_outputOS>$(_parseDistroRid.SubString(0, $(_distroRidIndex)))</_outputOS>
|
|
<_outputOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS)</_outputOS>
|
|
|
|
<OutputRID Condition="'$(OutputRID)' == ''">$(_outputOS)-$(TargetArchitecture)</OutputRID>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Label="CalculateTargetOSName">
|
|
<TargetsFreeBSD Condition="'$(TargetOS)' == 'freebsd'">true</TargetsFreeBSD>
|
|
<Targetsillumos Condition="'$(TargetOS)' == 'illumos'">true</Targetsillumos>
|
|
<TargetsSolaris Condition="'$(TargetOS)' == 'solaris'">true</TargetsSolaris>
|
|
<TargetsHaiku Condition="'$(TargetOS)' == 'haiku'">true</TargetsHaiku>
|
|
<TargetsLinux Condition="'$(TargetOS)' == 'linux' or '$(TargetOS)' == 'android'">true</TargetsLinux>
|
|
<TargetsLinuxBionic Condition="'$(_portableOS)' == 'linux-bionic'">true</TargetsLinuxBionic>
|
|
<TargetsLinuxMusl Condition="'$(_portableOS)' == 'linux-musl'">true</TargetsLinuxMusl>
|
|
<TargetsNetBSD Condition="'$(TargetOS)' == 'netbsd'">true</TargetsNetBSD>
|
|
<TargetsOSX Condition="'$(TargetOS)' == 'osx'">true</TargetsOSX>
|
|
<TargetsMacCatalyst Condition="'$(TargetOS)' == 'maccatalyst'">true</TargetsMacCatalyst>
|
|
<TargetsiOS Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator'">true</TargetsiOS>
|
|
<TargetstvOS Condition="'$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator'">true</TargetstvOS>
|
|
<TargetsiOSSimulator Condition="'$(TargetOS)' == 'iossimulator'">true</TargetsiOSSimulator>
|
|
<TargetstvOSSimulator Condition="'$(TargetOS)' == 'tvossimulator'">true</TargetstvOSSimulator>
|
|
<TargetsAndroid Condition="'$(TargetOS)' == 'android'">true</TargetsAndroid>
|
|
<TargetsBrowser Condition="'$(TargetOS)' == 'browser'">true</TargetsBrowser>
|
|
<TargetsWasi Condition="'$(TargetOS)' == 'wasi'">true</TargetsWasi>
|
|
<TargetsWindows Condition="'$(TargetOS)' == 'windows'">true</TargetsWindows>
|
|
<TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(Targetsillumos)' == 'true' or '$(TargetsSolaris)' == 'true' or '$(TargetsHaiku)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsNetBSD)' == 'true' or '$(TargetsOSX)' == 'true' or '$(TargetsMacCatalyst)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetsAndroid)' == 'true'">true</TargetsUnix>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<MicrosoftNetCoreAppRefPackDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'microsoft.netcore.app.ref'))</MicrosoftNetCoreAppRefPackDir>
|
|
<MicrosoftNetCoreAppRefPackRefDir>$([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRefPackDir)', 'ref', '$(NetCoreAppCurrent)'))</MicrosoftNetCoreAppRefPackRefDir>
|
|
<MicrosoftNetCoreAppRefPackDataDir>$([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRefPackDir)', 'data'))</MicrosoftNetCoreAppRefPackDataDir>
|
|
|
|
<MicrosoftNetCoreAppRuntimePackDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'microsoft.netcore.app.runtime.$(OutputRID)', '$(LibrariesConfiguration)'))</MicrosoftNetCoreAppRuntimePackDir>
|
|
<MicrosoftNetCoreAppRuntimePackRidDir>$([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRuntimePackDir)', 'runtimes', '$(OutputRID)'))</MicrosoftNetCoreAppRuntimePackRidDir>
|
|
<MicrosoftNetCoreAppRuntimePackRidLibTfmDir>$([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRuntimePackRidDir)', 'lib', '$(NetCoreAppCurrent)'))</MicrosoftNetCoreAppRuntimePackRidLibTfmDir>
|
|
<MicrosoftNetCoreAppRuntimePackNativeDir>$([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRuntimePackRidDir)', 'native'))</MicrosoftNetCoreAppRuntimePackNativeDir>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<DotNetHostBinDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', '$(OutputRID).$(HostConfiguration)', 'corehost'))</DotNetHostBinDir>
|
|
</PropertyGroup>
|
|
|
|
<!--Feature switches -->
|
|
<PropertyGroup>
|
|
<NoPgoOptimize Condition="'$(NoPgoOptimize)' == '' and '$(DotNetBuildFromSource)' == 'true'">true</NoPgoOptimize>
|
|
<EnableNgenOptimization Condition="'$(EnableNgenOptimization)' == '' and '$(DotNetBuildFromSource)' == 'true'">false</EnableNgenOptimization>
|
|
<EnableNgenOptimization Condition="'$(EnableNgenOptimization)' == '' and ('$(Configuration)' == 'Release' or '$(Configuration)' == 'Checked')">true</EnableNgenOptimization>
|
|
<!-- Enable NuGet static graph evaluation to optimize incremental restore -->
|
|
<RestoreUseStaticGraphEvaluation>true</RestoreUseStaticGraphEvaluation>
|
|
<!-- Turn off end of life target framework checks as we intentionally build older .NETCoreApp configurations. -->
|
|
<CheckEolTargetFramework>false</CheckEolTargetFramework>
|
|
<!-- Turn off workload support until we support them. -->
|
|
<MSBuildEnableWorkloadResolver>false</MSBuildEnableWorkloadResolver>
|
|
<!-- Disable source link when building locally. -->
|
|
<DisableSourceLink Condition="'$(DisableSourceLink)' == '' and
|
|
'$(ContinuousIntegrationBuild)' != 'true' and
|
|
'$(OfficialBuildId)' == ''">true</DisableSourceLink>
|
|
<!-- Runtime doesn't support Arcade-driven target framework filtering. -->
|
|
<NoTargetFrameworkFiltering>true</NoTargetFrameworkFiltering>
|
|
</PropertyGroup>
|
|
|
|
<!-- RepositoryEngineeringDir isn't set when Installer tests import this file. -->
|
|
<Import Project="$(RepositoryEngineeringDir)native\naming.props" />
|
|
<Import Project="$(RepositoryEngineeringDir)Subsets.props" />
|
|
|
|
<PropertyGroup>
|
|
<CoreLibSharedDir>$([MSBuild]::NormalizeDirectory('$(LibrariesProjectRoot)', 'System.Private.CoreLib', 'src'))</CoreLibSharedDir>
|
|
<CoreLibRefDir>$([MSBuild]::NormalizeDirectory('$(LibrariesProjectRoot)', 'System.Private.CoreLib', 'ref'))</CoreLibRefDir>
|
|
<CoreLibProject Condition="'$(RuntimeFlavor)' == 'CoreCLR'">$([MSBuild]::NormalizePath('$(CoreClrProjectRoot)', 'System.Private.CoreLib', 'System.Private.CoreLib.csproj'))</CoreLibProject>
|
|
<CoreLibProject Condition="'$(RuntimeFlavor)' == 'Mono'">$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'System.Private.CoreLib', 'System.Private.CoreLib.csproj'))</CoreLibProject>
|
|
<CoreLibProject Condition="'$(UseNativeAotCoreLib)' == 'true'">$([MSBuild]::NormalizePath('$(CoreClrProjectRoot)', 'nativeaot', 'System.Private.CoreLib', 'src', 'System.Private.CoreLib.csproj'))</CoreLibProject>
|
|
<UriProject>$([MSBuild]::NormalizePath('$(LibrariesProjectRoot)', 'System.Private.Uri', 'src', 'System.Private.Uri.csproj'))</UriProject>
|
|
|
|
<!-- this property is used by the SDK to pull in mono-based runtime packs -->
|
|
<UseMonoRuntime Condition="'$(UseMonoRuntime)' == '' and '$(RuntimeFlavor)' == 'Mono'">true</UseMonoRuntime>
|
|
</PropertyGroup>
|
|
|
|
<!-- Packaging -->
|
|
<PropertyGroup>
|
|
<GitHubRepositoryName>runtime</GitHubRepositoryName>
|
|
<RepositoryUrl>https://github.com/dotnet/$(GitHubRepositoryName)</RepositoryUrl>
|
|
<PackageProjectUrl>https://dot.net</PackageProjectUrl>
|
|
<Owners>microsoft,dotnetframework</Owners>
|
|
<IncludeSymbols>true</IncludeSymbols>
|
|
<LicenseFile>$(MSBuildThisFileDirectory)LICENSE.TXT</LicenseFile>
|
|
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
|
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
|
<Copyright>$(CopyrightNetFoundation)</Copyright>
|
|
<PackageThirdPartyNoticesFile>$(MSBuildThisFileDirectory)THIRD-PARTY-NOTICES.TXT</PackageThirdPartyNoticesFile>
|
|
<PackageReleaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</PackageReleaseNotes>
|
|
<IsPrivateAssembly>$(MSBuildProjectName.Contains('Private'))</IsPrivateAssembly>
|
|
<!-- Private packages should not be stable -->
|
|
<SuppressFinalPackageVersion Condition="'$(SuppressFinalPackageVersion)' == '' and $(IsPrivateAssembly)">true</SuppressFinalPackageVersion>
|
|
<!-- We don't want Private packages to be shipped to NuGet.org -->
|
|
<IsShippingPackage Condition="$(IsPrivateAssembly)">false</IsShippingPackage>
|
|
<PlaceholderFile>$(RepositoryEngineeringDir)_._</PlaceholderFile>
|
|
</PropertyGroup>
|
|
|
|
<!-- Flow these properties to consuming projects. -->
|
|
<ItemDefinitionGroup>
|
|
<TargetPathWithTargetPlatformMoniker>
|
|
<IsPrivateAssembly>$(IsPrivateAssembly.ToLowerInvariant())</IsPrivateAssembly>
|
|
</TargetPathWithTargetPlatformMoniker>
|
|
</ItemDefinitionGroup>
|
|
|
|
<!-- Language configuration -->
|
|
<PropertyGroup>
|
|
<!-- default to allowing all language features -->
|
|
<LangVersion>preview</LangVersion>
|
|
<!-- default to max warnlevel -->
|
|
<AnalysisLevel Condition="'$(MSBuildProjectExtension)' == '.csproj'">preview</AnalysisLevel>
|
|
<LangVersion Condition="'$(MSBuildProjectExtension)' == '.vbproj'">latest</LangVersion>
|
|
<!-- Enables Strict mode for Roslyn compiler -->
|
|
<Features>strict;nullablePublicOnly</Features>
|
|
<TreatWarningsAsErrors Condition="'$(TreatWarningsAsErrors)' == ''">true</TreatWarningsAsErrors>
|
|
<!-- Warnings to always disable -->
|
|
<NoWarn>$(NoWarn),CS8969</NoWarn>
|
|
<!-- Always pass portable to override arcade sdk which uses embedded for local builds -->
|
|
<DebugType>portable</DebugType>
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<KeepNativeSymbols Condition="'$(KeepNativeSymbols)' == '' and '$(DotNetBuildFromSource)' == 'true'">true</KeepNativeSymbols>
|
|
<KeepNativeSymbols Condition="'$(KeepNativeSymbols)' == ''">false</KeepNativeSymbols>
|
|
<!-- Used for launchSettings.json and runtime config files. -->
|
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
<!-- By default the SDK produces ref assembly for 5.0 or later -->
|
|
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
|
|
</PropertyGroup>
|
|
|
|
<!-- Define test projects and companions -->
|
|
<PropertyGroup Condition="$(MSBuildProjectFullPath.Contains('$([System.IO.Path]::DirectorySeparatorChar)tests$([System.IO.Path]::DirectorySeparatorChar)'))">
|
|
<IsTestProject Condition="$(MSBuildProjectName.EndsWith('.UnitTests')) or $(MSBuildProjectName.EndsWith('.Tests'))">true</IsTestProject>
|
|
<IsTrimmingTestProject Condition="$(MSBuildProjectName.EndsWith('.TrimmingTests'))">true</IsTrimmingTestProject>
|
|
<IsNativeAotTestProject Condition="$(MSBuildProjectName.EndsWith('.NativeAotTests'))">true</IsNativeAotTestProject>
|
|
<IsPublishedAppTestProject Condition="'$(IsTrimmingTestProject)' == 'true' or '$(IsNativeAotTestProject)' == 'true'">true</IsPublishedAppTestProject>
|
|
<IsTestSupportProject Condition="'$(IsTestProject)' != 'true' and '$(IsPublishedAppTestProject)' != 'true'">true</IsTestSupportProject>
|
|
|
|
<!-- Treat test assemblies as non-shipping (do not publish or sign them). -->
|
|
<IsShipping Condition="'$(IsTestProject)' == 'true' or '$(IsTestSupportProject)' == 'true' or '$(IsPublishedAppTestProject)' == 'true'">false</IsShipping>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- Treat as a generator project if either the parent or the parent parent directory is named gen. -->
|
|
<IsGeneratorProject Condition="$([System.IO.Path]::GetFileName('$(MSBuildProjectDirectory)')) == 'gen' or
|
|
$([System.IO.Path]::GetFileName('$([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)\..'))')) == 'gen'">true</IsGeneratorProject>
|
|
<IsSourceProject Condition="'$(IsSourceProject)' == '' and
|
|
'$(IsReferenceAssemblyProject)' != 'true' and
|
|
'$(IsGeneratorProject)' != 'true' and
|
|
'$(IsTestProject)' != 'true' and
|
|
'$(IsPublishedAppTestProject)' != 'true' and
|
|
'$(IsTestSupportProject)' != 'true' and
|
|
'$(UsingMicrosoftDotNetSharedFrameworkSdk)' != 'true' and
|
|
'$(MSBuildProjectExtension)' != '.pkgproj' and
|
|
'$(UsingMicrosoftNoTargetsSdk)' != 'true' and
|
|
'$(UsingMicrosoftTraversalSdk)' != 'true'">true</IsSourceProject>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(IsReferenceAssemblyProject)' == 'true'">
|
|
<!-- Reference assemblies are special and don't initialize fields or have empty finalizers, etc. -->
|
|
<RunAnalyzers>false</RunAnalyzers>
|
|
<!-- disable warnings about unused fields -->
|
|
<NoWarn>$(NoWarn);CS0169;CS0649;CS8618</NoWarn>
|
|
<!-- disable CS8597 because we throw null on reference assemblies. -->
|
|
<NoWarn>$(NoWarn);CS8597</NoWarn>
|
|
<!-- We base calls from constructors with null literals. -->
|
|
<NoWarn>$(NoWarn);CS8625</NoWarn>
|
|
<!-- We dont need to add null annotation within the ref for explicit interface methods. -->
|
|
<NoWarn>$(NoWarn);CS8617</NoWarn>
|
|
<!-- No symbols are produced for ref assemblies, but some parts of the SDK still expect pdbs, so we explicitly tell it there are none. -->
|
|
<!-- Must be set after importing Arcade to override its defaults. -->
|
|
<DebugType>none</DebugType>
|
|
<!-- Don't try to publish PDBs for ref assemblies that have none. -->
|
|
<PublishWindowsPdb>false</PublishWindowsPdb>
|
|
</PropertyGroup>
|
|
|
|
<!-- All reference assemblies should have a ReferenceAssemblyAttribute and the 0x70 flag which prevents them from loading. -->
|
|
<ItemGroup Condition="'$(IsReferenceAssemblyProject)' == 'true'">
|
|
<AssemblyAttribute Include="System.Runtime.CompilerServices.ReferenceAssemblyAttribute" />
|
|
<AssemblyAttribute Include="System.Reflection.AssemblyFlags">
|
|
<_Parameter1>(System.Reflection.AssemblyNameFlags)0x70</_Parameter1>
|
|
<_Parameter1_IsLiteral>true</_Parameter1_IsLiteral>
|
|
</AssemblyAttribute>
|
|
</ItemGroup>
|
|
|
|
<PropertyGroup Condition="'$(IsSourceProject)' == 'true'">
|
|
<!-- Must be defined in a props file as imports in Microsoft.DotNet.ApiCompat.Task.targets depend on it. -->
|
|
<ApiCompatValidateAssemblies>true</ApiCompatValidateAssemblies>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(IsGeneratorProject)' == 'true'">
|
|
<!-- Unique assembly versions increases(3x) the compiler throughput during reference package updates. -->
|
|
<AutoGenerateAssemblyVersion>true</AutoGenerateAssemblyVersion>
|
|
<!-- To suppress warnings about resetting the assembly version.-->
|
|
<AssemblyVersion />
|
|
<!-- Enforce extended rules around API usages in analyzers and generators to ensure our generators follow best practices. -->
|
|
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
|
|
</PropertyGroup>
|
|
|
|
<!-- Warnings that should be disabled in our test projects. -->
|
|
<PropertyGroup Condition="'$(IsTestProject)' == 'true' or '$(IsTestSupportProject)' == 'true' or '$(IsPublishedAppTestProject)' == 'true'">
|
|
<!-- we need to re-enable BinaryFormatter within test projects since some tests exercise these code paths to ensure compat -->
|
|
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
|
|
<!-- don't warn on usage of BinaryFormatter or legacy serialization infrastructure from test projects -->
|
|
<NoWarn>$(NoWarn);SYSLIB0011;SYSLIB0050;SYSLIB0051</NoWarn>
|
|
<!-- don't warn about unnecessary trim warning suppressions. can be removed with preview 6. -->
|
|
<NoWarn>$(NoWarn);IL2121</NoWarn>
|
|
<!-- allow nullable annotated files to be incorporated into tests without warning -->
|
|
<Nullable Condition="'$(Nullable)' == '' and '$(Language)' == 'C#'">annotations</Nullable>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<CustomBeforeNoTargets>$(RepositoryEngineeringDir)NoTargetsSdk.BeforeTargets.targets</CustomBeforeNoTargets>
|
|
<CustomAfterTraversalTargets>$(RepositoryEngineeringDir)TraversalSdk.AfterTargets.targets</CustomAfterTraversalTargets>
|
|
</PropertyGroup>
|
|
</Project>
|