504 строки
27 KiB
XML
504 строки
27 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<Import Condition="Exists('..\dir.props')" Project="..\dir.props" />
|
|
|
|
<PropertyGroup>
|
|
<!-- Directory.Build.props imports this .props file, so ensure it isn't imported again -->
|
|
<ImportDirectoryBuildProps>false</ImportDirectoryBuildProps>
|
|
</PropertyGroup>
|
|
|
|
<!-- Define vNext UAP Moniker -->
|
|
<PropertyGroup>
|
|
<UAPvNextVersion>10.0.16300</UAPvNextVersion>
|
|
<UAPvNextTFMFull>UAP,Version=v$(UAPvNextVersion)</UAPvNextTFMFull>
|
|
<UAPvNextTFM>uap$(UAPvNextVersion)</UAPvNextTFM>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="$(MSBuildThisFileDirectory)RepoDirectories.props" />
|
|
|
|
<PropertyGroup>
|
|
<!--
|
|
This name is used to create a GIT repository URL https://github.com/dotnet/$(GitHubRepositoryName) used to find source code for debugging
|
|
It is also used to name the build output manifest for orchestrated builds.
|
|
-->
|
|
<GitHubRepositoryName Condition="'$(GitHubRepositoryName)' == ''">core-setup</GitHubRepositoryName>
|
|
</PropertyGroup>
|
|
|
|
<!-- Build as portable by default -->
|
|
<PropertyGroup>
|
|
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="$(MSBuildThisFileDirectory)BranchInfo.props" />
|
|
|
|
<PropertyGroup>
|
|
<SharedFrameworkName>Microsoft.NETCore.App</SharedFrameworkName>
|
|
<NETCoreAppFrameworkMoniker>.NETCoreApp,Version=v$(MajorVersion).$(MinorVersion)</NETCoreAppFrameworkMoniker>
|
|
<NETCoreAppFramework>netcoreapp$(MajorVersion).$(MinorVersion)</NETCoreAppFramework>
|
|
</PropertyGroup>
|
|
|
|
<!--
|
|
$(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix.
|
|
-->
|
|
<PropertyGroup>
|
|
<!-- Temp change to make OS X build behave as a Linux build -->
|
|
<OsEnvironment Condition="'$(OsEnvironment)'=='' AND '$(OS)'=='OSX'">Unix</OsEnvironment>
|
|
<OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment>
|
|
</PropertyGroup>
|
|
|
|
<!-- Import Build tools common props file where repo-independent properties are found -->
|
|
<Import Condition="Exists('$(ToolsDir)Build.Common.props')" Project="$(ToolsDir)Build.Common.props" />
|
|
|
|
<Import Project="dependencies.props" />
|
|
<Import Project="$(MSBuildThisFileDirectory)eng\Versions.props" />
|
|
|
|
<PropertyGroup Condition="'$(DotNetBuildOffline)' != 'true'">
|
|
<!-- list of nuget package sources passed to NuGet -->
|
|
<RestoreSources>
|
|
$(OverridePackageSource);
|
|
https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
|
|
https://dotnetfeed.blob.core.windows.net/dotnet-coreclr/index.json;
|
|
https://dotnet.myget.org/F/dotnet-core/api/v3/index.json;
|
|
https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json;
|
|
https://www.myget.org/F/nugetbuild/api/v3/index.json;
|
|
https://api.nuget.org/v3/index.json;
|
|
https://dotnet.myget.org/F/dotnet-corefxlab/api/v3/index.json;
|
|
$(RestoreSources);
|
|
</RestoreSources>
|
|
</PropertyGroup>
|
|
|
|
<!-- Versioning -->
|
|
<PropertyGroup>
|
|
<VersionSuffix></VersionSuffix>
|
|
<VersionSuffix Condition="'$(IncludePreReleaseLabelInPackageVersion)' == 'true'">$(PreReleaseLabel)</VersionSuffix>
|
|
<VersionSuffix Condition="'$(IncludeBuildNumberInPackageVersion)' == 'true'">$(VersionSuffix)-$(BuildNumberMajor)-$(BuildNumberMinor)</VersionSuffix>
|
|
|
|
<ProductVersionSuffix Condition="'$(IncludePreReleaseLabelInPackageVersion)' == 'true'">-$(VersionSuffix)</ProductVersionSuffix>
|
|
<ProductVersion>$(MajorVersion).$(MinorVersion).$(PatchVersion)$(ProductVersionSuffix)</ProductVersion>
|
|
<ProductionVersion>$(MajorVersion).$(MinorVersion).$(PatchVersion)</ProductionVersion>
|
|
|
|
<SharedFrameworkNugetVersion>$(ProductVersion)</SharedFrameworkNugetVersion>
|
|
|
|
<RuntimeDepsRpmVersion Condition="'$(RuntimeDepsRpmVersion)'==''">$(ProductVersion)</RuntimeDepsRpmVersion>
|
|
<RuntimeDepsDebVersion Condition="'$(RuntimeDepsDebVersion)'==''">$(ProductVersion)</RuntimeDepsDebVersion>
|
|
|
|
<NuGetVersion>$(SharedFrameworkNugetVersion)</NuGetVersion>
|
|
|
|
<!--
|
|
By default, we are always building the nuget packages for HostPolicy, HostFXR and
|
|
Dotnet/AppHost. Thus, the "UseShipped*" properties (below) are always set to false.
|
|
|
|
However, there are scenarios when some of these components will not change (e.g. during
|
|
servicing, we may only change HostPolicy but not HostFXR and Dotnet/AppHost). In such cases,
|
|
set the appropriate "UseShipped*" property below to true so that we will use the last shipped
|
|
version of the package.
|
|
-->
|
|
|
|
<!-- The host/apphost package versions are only updated whenever there is a change in the components -->
|
|
<UseShippedHostPackage>false</UseShippedHostPackage>
|
|
<HostVersion Condition="'$(UseShippedHostPackage)' != 'true'">$(ProductVersion)</HostVersion>
|
|
<HostVersion Condition="'$(UseShippedHostPackage)' == 'true'">2.0.0</HostVersion>
|
|
|
|
<UseShippedAppHostPackage>false</UseShippedAppHostPackage>
|
|
<AppHostVersion Condition="'$(UseShippedAppHostPackage)' != 'true'">$(ProductVersion)</AppHostVersion>
|
|
<AppHostVersion Condition="'$(UseShippedAppHostPackage)' == 'true'">2.0.0</AppHostVersion>
|
|
|
|
<!--
|
|
The FXR Resolver package version is only updated whenever there is a change in it.
|
|
If there is ever a need to use a shipped version of the package, then set the property
|
|
below to true.
|
|
-->
|
|
<UseShippedHostResolverPackage>false</UseShippedHostResolverPackage>
|
|
<HostResolverVersion Condition="'$(UseShippedHostResolverPackage)' != 'true'">$(ProductVersion)</HostResolverVersion>
|
|
<HostResolverVersion Condition="'$(UseShippedHostResolverPackage)' == 'true'">2.0.0</HostResolverVersion>
|
|
|
|
<!--
|
|
Host Policy package version is only updated whenever there is a change in it.
|
|
If there is ever a need to use a shipped version of the package, then set the property
|
|
below to true.
|
|
-->
|
|
<UseShippedHostPolicyPackage>false</UseShippedHostPolicyPackage>
|
|
<HostPolicyVersion Condition="'$(UseShippedHostPolicyPackage)' != 'true'">$(ProductVersion)</HostPolicyVersion>
|
|
<HostPolicyVersion Condition="'$(UseShippedHostPolicyPackage)' == 'true'">2.0.0</HostPolicyVersion>
|
|
|
|
<BinariesRelativePath>Runtime/$(SharedFrameworkNugetVersion)/</BinariesRelativePath>
|
|
<InstallersRelativePath>Runtime/$(SharedFrameworkNugetVersion)/</InstallersRelativePath>
|
|
</PropertyGroup>
|
|
|
|
<!-- temporary workaround until https://github.com/dotnet/buildtools/pull/1707 is merged to master -->
|
|
<ItemGroup>
|
|
<DotnetSourceList Include="$(RestoreSources)" />
|
|
</ItemGroup>
|
|
|
|
<!-- list of projects to perform batch restore -->
|
|
<ItemGroup>
|
|
<SdkRestoreProjects Include="$(MSBuildThisFileDirectory)tools-local/tasks/core-setup.tasks.csproj" />
|
|
<SdkRestoreProjects Include="$(MSBuildThisFileDirectory)src\pkg\deps\deps.csproj" />
|
|
<SdkRestoreProjects Include="$(MSBuildThisFileDirectory)src\managed\Microsoft.DotNet.PlatformAbstractions\Microsoft.DotNet.PlatformAbstractions.csproj" />
|
|
<SdkRestoreProjects Include="$(MSBuildThisFileDirectory)src\managed\Microsoft.Extensions.DependencyModel\Microsoft.Extensions.DependencyModel.csproj" />
|
|
</ItemGroup>
|
|
<PropertyGroup>
|
|
<DotnetRestorePrefix Condition="'$(RunningOnUnix)' == 'true'">DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 </DotnetRestorePrefix>
|
|
<DotnetRestoreCommand>$(DotnetRestorePrefix)$(DotnetRestoreCommand)</DotnetRestoreCommand>
|
|
<!-- Same as $(DotnetRestoreCommand), only doesn't specify `packages` arg -->
|
|
<DotnetRestoreCommandNoPackages>$(DotnetRestorePrefix)"$(DotnetToolCommand)" restore $(DotnetRestoreSource)</DotnetRestoreCommandNoPackages>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(BuildAllProjects)'=='true'">
|
|
<!-- When we do a traversal build we get all packages up front, don't restore them again -->
|
|
<RestorePackages>false</RestorePackages>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>
|
|
<Platform Condition="'$(Platform)'==''">$(TargetArchitecture)</Platform>
|
|
</PropertyGroup>
|
|
<!--
|
|
Projects that have no OS-specific implementations just use Debug and Release for $(Configuration).
|
|
Projects that do have OS-specific implementations use OS_Debug and OS_Release, for all OS's we support even
|
|
if the code is the same between some OS's (so if you have some project that just calls POSIX APIs, we still have
|
|
OSX_[Debug|Release] and Linux_[Debug|Release] configurations. We do this so that we place all the output under
|
|
a single binary folder and can have a similar experience between the command line and Visual Studio.
|
|
-->
|
|
|
|
<!--
|
|
If Configuration is empty that means we are not being built in VS and so folks need to explicitly pass the different
|
|
values for $(ConfigurationGroup) or $(OSGroup) or accept the defaults for them.
|
|
-->
|
|
<PropertyGroup>
|
|
<OSGroup Condition="'$(OSGroup)' == ''">$(OsEnvironment)</OSGroup>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(Configuration)'==''">
|
|
<ConfigurationGroup Condition="'$(ConfigurationGroup)'==''">Debug</ConfigurationGroup>
|
|
<Configuration>$(ConfigurationGroup)</Configuration>
|
|
<Configuration>$(OSGroup)_$(Configuration)</Configuration>
|
|
</PropertyGroup>
|
|
|
|
<!--
|
|
If Configuration is set then someone explicitly passed it in or we building from VS. In either case
|
|
default $(ConfigurationGroup) or $(OSGroup) from the Configuration if they aren't
|
|
already explicitly set.
|
|
-->
|
|
<PropertyGroup Condition="'$(Configuration)'!=''">
|
|
<ConfigurationGroup Condition="'$(ConfigurationGroup)'=='' and $(Configuration.EndsWith('Debug'))">Debug</ConfigurationGroup>
|
|
<ConfigurationGroup Condition="'$(ConfigurationGroup)'=='' and $(Configuration.EndsWith('Release'))">Release</ConfigurationGroup>
|
|
<ConfigurationGroup Condition="'$(ConfigurationGroup)'==''">Debug</ConfigurationGroup>
|
|
|
|
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('Windows'))">Windows_NT</OSGroup>
|
|
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('Unix'))">Unix</OSGroup>
|
|
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('Linux'))">Linux</OSGroup>
|
|
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('OSX'))">OSX</OSGroup>
|
|
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('FreeBSD'))">FreeBSD</OSGroup>
|
|
<OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('NetBSD'))">NetBSD</OSGroup>
|
|
<OSGroup Condition="'$(OSGroup)'==''">AnyOS</OSGroup>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<DebugType Condition="'$(DebugType)' == ''">Portable</DebugType>
|
|
<UseSourceLink>true</UseSourceLink>
|
|
</PropertyGroup>
|
|
|
|
<!-- Set up Default symbol and optimization for Configuration -->
|
|
<Choose>
|
|
<When Condition="'$(ConfigurationGroup)'=='Debug'">
|
|
<PropertyGroup>
|
|
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
|
|
<Optimize Condition="'$(Optimize)' == ''">false</Optimize>
|
|
<DefineConstants>$(DefineConstants),DEBUG,TRACE</DefineConstants>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="'$(ConfigurationGroup)' == 'Release'">
|
|
<PropertyGroup>
|
|
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
|
|
<Optimize Condition="'$(Optimize)' == ''">true</Optimize>
|
|
<DefineConstants>$(DefineConstants),TRACE</DefineConstants>
|
|
</PropertyGroup>
|
|
</When>
|
|
<Otherwise>
|
|
<PropertyGroup>
|
|
<ConfigurationErrorMsg>$(ConfigurationErrorMsg);Unknown ConfigurationGroup [$(ConfigurationGroup)] specificed in your project.</ConfigurationErrorMsg>
|
|
</PropertyGroup>
|
|
</Otherwise>
|
|
</Choose>
|
|
|
|
<PropertyGroup>
|
|
<ExeSuffix Condition="'$(OSGroup)'=='Windows_NT'">.exe</ExeSuffix>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="$(HostMachineInfoProps)"
|
|
Condition="Exists('$(HostMachineInfoProps)')" />
|
|
|
|
<PropertyGroup Condition="'$(OutputRid)' == '' and '$(HostMachineRid)' != ''">
|
|
<OutputRid>$(HostMachineRid.Remove($(HostMachineRid.LastIndexOf('-'))))-$(TargetArchitecture)</OutputRid>
|
|
</PropertyGroup>
|
|
|
|
<!-- Portable -->
|
|
<PropertyGroup Condition="'$(PortableBuild)' == 'true'">
|
|
<OutputRid Condition="'$(OSGroup)' == 'Windows_NT'">win-$(TargetArchitecture)</OutputRid>
|
|
<OutputRid Condition="'$(OSGroup)' == 'OSX'">osx-$(TargetArchitecture)</OutputRid>
|
|
<OutputRid Condition="'$(OSGroup)' == 'Linux'">linux-$(TargetArchitecture)</OutputRid>
|
|
<OutputRid Condition="'$(OSGroup)' == 'FreeBSD'">freebsd-$(TargetArchitecture)</OutputRid>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<TestTargetRid Condition="'$(TestTargetRid)' == ''">$(OutputRid)</TestTargetRid>
|
|
</PropertyGroup>
|
|
|
|
<!-- Produce assets into the specified blob feed. -->
|
|
<PropertyGroup Condition="'$(DotNetOutputBlobFeedDir)' != ''">
|
|
<AssetOutputPath>$(DotNetOutputBlobFeedDir)assets/</AssetOutputPath>
|
|
</PropertyGroup>
|
|
|
|
<!-- Set up the default output and intermediate paths -->
|
|
<PropertyGroup>
|
|
<OSPlatformConfig>$(OutputRid).$(ConfigurationGroup)</OSPlatformConfig>
|
|
|
|
<BaseOutputPath Condition="'$(BaseOutputPath)'==''">$(BinDir)</BaseOutputPath>
|
|
<BaseOutputRootPath>$(BaseOutputPath)$(OSPlatformConfig)\</BaseOutputRootPath>
|
|
<CrossGenRootPath>$(BaseOutputRootPath)\crossgen</CrossGenRootPath>
|
|
<OutputPath Condition="'$(OutputPath)'==''">$(BaseOutputPath)$(OSPlatformConfig)\$(MSBuildProjectName)\</OutputPath>
|
|
|
|
<IntermediateOutputRootPath Condition="'$(IntermediateOutputRootPath)' == ''">$(BaseIntermediateOutputPath)$(OSPlatformConfig)\</IntermediateOutputRootPath>
|
|
<IntermediateOutputPath Condition="'$(IntermediateOutputPath)' == ''">$(IntermediateOutputRootPath)$(MSBuildProjectName)\</IntermediateOutputPath>
|
|
|
|
<CoreHostOutputDir>$(BaseOutputRootPath)corehost\</CoreHostOutputDir>
|
|
|
|
<PackagesBasePath Condition="'$(PackagesBasePath)'==''">$(BinDir)$(OSPlatformConfig)/</PackagesBasePath>
|
|
<PackageOutputPath Condition="'$(PackageOutputPath)'==''">$(PackagesBasePath)packages/</PackageOutputPath>
|
|
<AssetOutputPath Condition="'$(AssetOutputPath)'==''">$(PackageOutputPath)</AssetOutputPath>
|
|
<SymbolPackageOutputPath Condition="'$(SymbolPackageOutputPath)'==''">$(PackageOutputPath)</SymbolPackageOutputPath>
|
|
<PackageSymbolsBinDir Condition="'$(PackageSymbolsBinDir)' == ''">$(PackagesBasePath)symbols/</PackageSymbolsBinDir>
|
|
|
|
<SharedFrameworkPublishDir>$(IntermediateOutputRootPath)sharedFrameworkPublish\</SharedFrameworkPublishDir>
|
|
<SharedFrameworkPublishSymbolsDir>$(IntermediateOutputRootPath)sharedFrameworkPublish.symbols\</SharedFrameworkPublishSymbolsDir>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<DisableCrossgen>false</DisableCrossgen>
|
|
<!-- Disable cross-gen on FreeBSD for now. This can be revisited when we have full support. -->
|
|
<DisableCrossgen Condition="'$(OSGroup)'=='FreeBSD'">true</DisableCrossgen>
|
|
<OutputVersionBadge>$(BaseOutputRootPath)sharedfx_$(OutputRid)_$(ConfigurationGroup)_version_badge.svg</OutputVersionBadge>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<DotnetHostString>dotnet-host-</DotnetHostString>
|
|
<DotnetHostFxrString>dotnet-hostfxr-</DotnetHostFxrString>
|
|
<DotnetRuntimeString>dotnet-runtime-</DotnetRuntimeString>
|
|
<DotnetRuntimeDependenciesPackageString>dotnet-runtime-deps-</DotnetRuntimeDependenciesPackageString>
|
|
<CombinedInstallerStart>$(AssetOutputPath)$(DotnetRuntimeString)</CombinedInstallerStart>
|
|
<SharedHostInstallerStart>$(AssetOutputPath)$(DotnetHostString)</SharedHostInstallerStart>
|
|
<HostFxrInstallerStart>$(AssetOutputPath)$(DotnetHostFxrString)</HostFxrInstallerStart>
|
|
<SharedFrameworkInstallerStart>$(AssetOutputPath)$(DotnetRuntimeString)</SharedFrameworkInstallerStart>
|
|
<DotnetRuntimeDependenciesPackageInstallerStart>$(AssetOutputPath)$(DotnetRuntimeDependenciesPackageString)</DotnetRuntimeDependenciesPackageInstallerStart>
|
|
|
|
<!-- OSX specific intermediate package suffix . OSX specific intermediate packages are suffixed with -internal to avoid name collision for bundle package (dotnet-runtime-*)
|
|
and runtime ( earlier as dotnet-sharedframework-*) -->
|
|
<InstallerStartSuffix Condition="'$(OSGroup)' == 'OSX'">internal</InstallerStartSuffix>
|
|
<SharedHostInstallerStart Condition="'$(OSGroup)' == 'OSX'">$(SharedHostInstallerStart)$(InstallerStartSuffix)-</SharedHostInstallerStart>
|
|
<HostFxrInstallerStart Condition="'$(OSGroup)' == 'OSX'">$(HostFxrInstallerStart)$(InstallerStartSuffix)-</HostFxrInstallerStart>
|
|
<SharedFrameworkInstallerStart Condition="'$(OSGroup)' == 'OSX'">$(SharedFrameworkInstallerStart)$(InstallerStartSuffix)-</SharedFrameworkInstallerStart>
|
|
|
|
</PropertyGroup>
|
|
|
|
<!-- Set up handling of build warnings -->
|
|
<PropertyGroup>
|
|
<WarningLevel>4</WarningLevel>
|
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<TargetsWindows>false</TargetsWindows>
|
|
<TargetsOSX>false</TargetsOSX>
|
|
<TargetsLinux>false</TargetsLinux>
|
|
<TargetsUnix>false</TargetsUnix>
|
|
<TargetsUbuntu>false</TargetsUbuntu>
|
|
<TargetsLinuxMint>false</TargetsLinuxMint>
|
|
<TargetsDebian>false</TargetsDebian>
|
|
<TargetsRhel>false</TargetsRhel>
|
|
<TargetsOpensuse>false</TargetsOpensuse>
|
|
<TargetsFedora>false</TargetsFedora>
|
|
<TargetsCentos>false</TargetsCentos>
|
|
<TargetsOracle>false</TargetsOracle>
|
|
<TargetsSles>false</TargetsSles>
|
|
</PropertyGroup>
|
|
<Choose>
|
|
<When Condition="$(OutputRid.StartsWith('win'))">
|
|
<PropertyGroup>
|
|
<TargetsWindows>true</TargetsWindows>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="$(OutputRid.StartsWith('osx'))">
|
|
<PropertyGroup>
|
|
<TargetsOSX>true</TargetsOSX>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="$(OutputRid.StartsWith('debian'))">
|
|
<PropertyGroup>
|
|
<TargetsDebian>true</TargetsDebian>
|
|
<TargetsLinux>true</TargetsLinux>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="$(OutputRid.StartsWith('ubuntu'))">
|
|
<PropertyGroup>
|
|
<TargetsUbuntu>true</TargetsUbuntu>
|
|
<TargetsLinux>true</TargetsLinux>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="$(OutputRid.StartsWith('linuxmint'))">
|
|
<PropertyGroup>
|
|
<TargetsLinuxMint>true</TargetsLinuxMint>
|
|
<TargetsLinux>true</TargetsLinux>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="$(OutputRid.StartsWith('rhel'))">
|
|
<PropertyGroup>
|
|
<TargetsRhel>true</TargetsRhel>
|
|
<TargetsLinux>true</TargetsLinux>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="$(OutputRid.StartsWith('centos'))">
|
|
<PropertyGroup>
|
|
<TargetsCentos>true</TargetsCentos>
|
|
<TargetsLinux>true</TargetsLinux>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="$(OutputRid.StartsWith('opensuse'))">
|
|
<PropertyGroup>
|
|
<TargetsOpensuse>true</TargetsOpensuse>
|
|
<TargetsLinux>true</TargetsLinux>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="$(OutputRid.StartsWith('fedora'))">
|
|
<PropertyGroup>
|
|
<TargetsFedora>true</TargetsFedora>
|
|
<TargetsLinux>true</TargetsLinux>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="$(OutputRid.StartsWith('oracle'))">
|
|
<PropertyGroup>
|
|
<TargetsOracle>true</TargetsOracle>
|
|
<TargetsLinux>true</TargetsLinux>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</When>
|
|
<When Condition="$(OutputRid.StartsWith('sles'))">
|
|
<PropertyGroup>
|
|
<TargetsSles>true</TargetsSles>
|
|
<TargetsLinux>true</TargetsLinux>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</When>
|
|
<Otherwise>
|
|
<PropertyGroup>
|
|
<TargetsLinux>true</TargetsLinux>
|
|
<TargetsUnix>true</TargetsUnix>
|
|
</PropertyGroup>
|
|
</Otherwise>
|
|
</Choose>
|
|
|
|
<PropertyGroup>
|
|
<CompressedFileExtension Condition="'$(OSGroup)' == 'Windows_NT'">.zip</CompressedFileExtension>
|
|
<CompressedFileExtension Condition="'$(OSGroup)' != 'Windows_NT'">.tar.gz</CompressedFileExtension>
|
|
<InstallerExtension Condition="'$(OSGroup)' == 'Windows_NT'">.msi</InstallerExtension>
|
|
<InstallerExtension Condition="'$(OSGroup)' == 'OSX'">.pkg</InstallerExtension>
|
|
<InstallerExtension Condition="'$(TargetsDebian)' == 'true' or '$(TargetsUbuntu)' == 'true' or '$(TargetsLinuxMint)' == 'true'">.deb</InstallerExtension>
|
|
<InstallerExtension Condition="'$(TargetsRhel)' == 'true' or '$(TargetsCentos)' == 'true' or '$(TargetsOpensuse)' == 'true' or '$(TargetsFedora)' == 'true' or '$(TargetsOracle)' == 'true' or '$(TargetsSles)' == 'true'">.rpm</InstallerExtension>
|
|
<CombinedInstallerExtension Condition="'$(OSGroup)' == 'Windows_NT'">.exe</CombinedInstallerExtension>
|
|
<CombinedInstallerExtension Condition="'$(OSGroup)' != 'Windows_NT'">$(InstallerExtension)</CombinedInstallerExtension>
|
|
</PropertyGroup>
|
|
|
|
<!-- Use actual publishable (non-dummy) package name produced by the build system for this RID -->
|
|
<PropertyGroup Condition="'$(OutputRid)' != ''">
|
|
<PackageTargetRid>$(OutputRid)</PackageTargetRid>
|
|
<PackageTargetRid Condition="'$(OutputRid)' == 'osx.10.11-x64'">osx.10.10-x64</PackageTargetRid>
|
|
<PackageTargetRid Condition="$(OutputRid.StartsWith('rhel.7.')) and $(OutputRid.EndsWith('-x64'))">rhel.7-x64</PackageTargetRid>
|
|
<ProductMoniker>$(SharedFrameworkNugetVersion)-$(PackageTargetRid)</ProductMoniker>
|
|
<HostResolverVersionMoniker>$(HostResolverVersion)-$(PackageTargetRid)</HostResolverVersionMoniker>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<CombinedInstallerFile>$(CombinedInstallerStart)$(ProductMoniker)$(CombinedInstallerExtension)</CombinedInstallerFile>
|
|
<CombinedInstallerEngine>$(CombinedInstallerStart)$(ProductMoniker)-engine.exe</CombinedInstallerEngine>
|
|
<SharedHostInstallerFile>$(SharedHostInstallerStart)$(ProductMoniker)$(InstallerExtension)</SharedHostInstallerFile>
|
|
<HostFxrInstallerFile>$(HostFxrInstallerStart)$(HostResolverVersionMoniker)$(InstallerExtension)</HostFxrInstallerFile>
|
|
<SharedFrameworkInstallerFile>$(SharedFrameworkInstallerStart)$(ProductMoniker)$(InstallerExtension)</SharedFrameworkInstallerFile>
|
|
<!-- Runtime Deb and Rpm packages are distro version agnostic -->
|
|
<SharedHostInstallerFile Condition="'$(InstallerExtension)' == '.deb' or '$(InstallerExtension)' == '.rpm' ">$(SharedHostInstallerStart)$(SharedFrameworkNugetVersion)-$(TargetArchitecture)$(InstallerExtension)</SharedHostInstallerFile>
|
|
<HostFxrInstallerFile Condition="'$(InstallerExtension)' == '.deb' or '$(InstallerExtension)' == '.rpm'">$(HostFxrInstallerStart)$(HostResolverVersion)-$(TargetArchitecture)$(InstallerExtension)</HostFxrInstallerFile>
|
|
<SharedFrameworkInstallerFile Condition="'$(InstallerExtension)' == '.deb' or '$(InstallerExtension)' == '.rpm'">$(SharedFrameworkInstallerStart)$(SharedFrameworkNugetVersion)-$(TargetArchitecture)$(InstallerExtension)</SharedFrameworkInstallerFile>
|
|
|
|
<DotnetRuntimeDependenciesPackageInstallerFile>$(DotnetRuntimeDependenciesPackageInstallerStart)$(ProductMoniker)$(InstallerExtension)</DotnetRuntimeDependenciesPackageInstallerFile>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<HostPackageVersion>$(HostVersion)</HostPackageVersion>
|
|
<HostPackageRelease>1</HostPackageRelease>
|
|
<HostResolverPackageVersion>$(HostResolverVersion)</HostResolverPackageVersion>
|
|
<HostResolverPackageRelease>1</HostResolverPackageRelease>
|
|
<RuntimePackageVersion>$(SharedFrameworkNugetVersion)</RuntimePackageVersion>
|
|
<RuntimePackageRelease>1</RuntimePackageRelease>
|
|
<RuntimeDepsDebPackageVersion>$(RuntimeDepsDebVersion)</RuntimeDepsDebPackageVersion>
|
|
<RuntimeDepsDebPackageRelease>1</RuntimeDepsDebPackageRelease>
|
|
<RuntimeDepsRpmPackageVersion>$(RuntimeDepsRpmVersion)</RuntimeDepsRpmPackageVersion>
|
|
<RuntimeDepsRpmPackageRelease>1</RuntimeDepsRpmPackageRelease>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(InstallerExtension)' == '.deb' or '$(InstallerExtension)' == '.rpm' ">
|
|
|
|
<PackageNameSuffix>$(MajorVersion).$(MinorVersion)</PackageNameSuffix>
|
|
|
|
<SharedHostInstallerFile Condition="'$(InstallerExtension)' == '.deb' or '$(InstallerExtension)' == '.rpm' ">$(SharedHostInstallerStart)$(SharedFrameworkNugetVersion)-$(TargetArchitecture)$(InstallerExtension)</SharedHostInstallerFile>
|
|
<HostFxrInstallerFile Condition="'$(InstallerExtension)' == '.deb' or '$(InstallerExtension)' == '.rpm'">$(HostFxrInstallerStart)$(HostResolverVersion)-$(TargetArchitecture)$(InstallerExtension)</HostFxrInstallerFile>
|
|
<SharedFrameworkInstallerFile Condition="'$(InstallerExtension)' == '.deb' or '$(InstallerExtension)' == '.rpm'">$(SharedFrameworkInstallerStart)$(SharedFrameworkNugetVersion)-$(TargetArchitecture)$(InstallerExtension)</SharedFrameworkInstallerFile>
|
|
<DotnetRuntimeDependenciesPackageInstallerFile>$(DotnetRuntimeDependenciesPackageInstallerStart)$(ProductMoniker)$(InstallerExtension)</DotnetRuntimeDependenciesPackageInstallerFile>
|
|
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(UsingNETSdkCompiler)' != 'true'">
|
|
<!-- Disable some standard properties for building our projects -->
|
|
<NoStdLib>true</NoStdLib>
|
|
<NoExplicitReferenceToStdLib>true</NoExplicitReferenceToStdLib>
|
|
<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
|
|
<GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
|
|
|
|
<!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two properties to any folder that exists to skip
|
|
the GenerateReferenceAssemblyPaths task (not target) and to prevent it from outputting a warning (MSB3644). -->
|
|
<_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)documentation</_TargetFrameworkDirectories>
|
|
<_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)documentation</_FullFrameworkReferenceAssemblyPaths>
|
|
<!-- We do not want to target a portable profile.
|
|
TODO: Make this the default in buildtools so this is not necessary. -->
|
|
<TargetFrameworkProfile></TargetFrameworkProfile>
|
|
<!-- We set this property to avoid MSBuild errors regarding not setting TargetFrameworkProfile (see above line) -->
|
|
<PortableNuGetMode>true</PortableNuGetMode>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- Never use the NuGet fallback folder that comes with the SDK we use to build.
|
|
The NuGet fallback folder can/will contain packages we are building in this repo, and we
|
|
want to ensure we use the correct packages.
|
|
-->
|
|
<DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- These properties should be passed through to new msbuild instances (like 'dotnet build')
|
|
in order to get the correct output directories in the child project.
|
|
-->
|
|
<MSBuildPassThroughPropertyList>/p:OSGroup=$(OSGroup) /p:PortableBuild=$(PortableBuild) /p:TargetArchitecture=$(TargetArchitecture) /p:ConfigurationGroup=$(ConfigurationGroup) /p:VersionSuffix=$(VersionSuffix)</MSBuildPassThroughPropertyList>
|
|
<MSBuildPassThroughPropertyList Condition="'$(OutputRid)' != ''">$(MSBuildPassThroughPropertyList) /p:OutputRid=$(OutputRid)</MSBuildPassThroughPropertyList>
|
|
</PropertyGroup>
|
|
|
|
<!-- Use Roslyn Compilers to build -->
|
|
<Import Project="$(RoslynPropsFile)" Condition="'$(RunningOnUnix)'!='true' and Exists('$(RoslynPropsFile)') and '$(UseRoslynCompilers)'!='false' and '$(RoslynIncompatibleMsbuildVersion)' != 'true'" />
|
|
<Import Project="$(RoslynPropsFile)" Condition="'$(RunningOnUnix)'=='true' and Exists('$(RoslynPropsFile)') and '$(RoslynIncompatibleMsbuildVersion)' != 'true'" />
|
|
</Project>
|