Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Directory.Build.targets - github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 532b24c473a622a65898cf268eb410ebb10d89f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<Project InitialTargets="ErrorForMissingPackageDescription;_OverridePackDependsOn">
  <PropertyGroup>
    <!--
    For non-SDK projects that import this file and then import Microsoft.Common.targets,
    tell Microsoft.Common.targets not to import Directory.Build.targets again
    -->
    <ImportDirectoryBuildTargets>false</ImportDirectoryBuildTargets>
  </PropertyGroup>

  <Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />
  <Import Project="$(RepositoryEngineeringDir)liveBuilds.targets" />
  <Import Project="$(RepositoryEngineeringDir)python.targets" />

  <PropertyGroup>
    <!--
      Define this here (not just in Versions.props) because the SDK resets it
      unconditionally in Microsoft.NETCoreSdk.BundledVersions.props.
    -->
    <NETCoreAppMaximumVersion>$(MajorVersion).$(MinorVersion)</NETCoreAppMaximumVersion>
    <EnableNETAnalyzers Condition="'$(EnableAnalyzers)' != 'true'">false</EnableNETAnalyzers>
    <!-- SDK sets product to assembly but we want it to be our product name -->
    <Product>Microsoft%AE .NET</Product>
    <!-- Use the .NET product branding version for informational version description -->
    <InformationalVersion Condition="'$(InformationalVersion)' == '' and '$(VersionSuffix)' == ''">$(ProductVersion)</InformationalVersion>
    <InformationalVersion Condition="'$(InformationalVersion)' == '' and '$(VersionSuffix)' != ''">$(ProductVersion)-$(VersionSuffix)</InformationalVersion>
  </PropertyGroup>
  
  <!-- The Default behavior in VS is to show files for the first target framework in TargetFrameworks property.
       This is required to show all the files corresponding to all target frameworks in VS. -->
  <ItemGroup Condition="'$(DefaultLanguageSourceExtension)' != '' and
                        ('$(BuildingInsideVisualStudio)' == 'true' or '$(DesignTimeBuild)' == 'true')">
    <None Include="$(MSBuildProjectDirectory)\**\*$(DefaultLanguageSourceExtension)"
          Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);@(Compile)" />
  </ItemGroup>

  <!-- Packaging -->
  <ItemGroup Condition="'$(IsPackable)' == 'true'">
    <!-- The sfxproj files add the license themselves. -->
    <None Include="$(LicenseFile)"
          PackagePath="$([System.IO.Path]::GetFileName('$(LicenseFile)'))"
          Pack="true"
          Condition="'$(MSBuildProjectExtension)' != '.sfxproj' and '$(MSBuildProjectFile)' != 'msi.csproj'" />
    <None Include="$(PackageThirdPartyNoticesFile)"
          PackagePath="$([System.IO.Path]::GetFileName('$(PackageThirdPartyNoticesFile)'))"
          Pack="true" />
  </ItemGroup>

  <PropertyGroup>
    <PackageDescription Condition="'$(PackageDescription)' == '' and '$(Description)' != ''">$(Description)</PackageDescription>
    <RuntimePackageDisclaimer>Internal implementation package not meant for direct consumption. Please do not reference directly.</RuntimePackageDisclaimer>
    <UseRuntimePackageDisclaimer Condition="'$(UseRuntimePackageDisclaimer)' == '' and
                                            ($(MSBuildProjectName.StartsWith('runtime.native')) or '$(PackageTargetRuntime)' != '')">true</UseRuntimePackageDisclaimer>
    <PackageDescription Condition="'$(PackageDescription)' != '' and '$(UseRuntimePackageDisclaimer)' == 'true'">$(RuntimePackageDisclaimer) %0A$(PackageDescription)</PackageDescription>
    <PackageDescription Condition="'$(PackageDescription)' == '' and '$(UseRuntimePackageDisclaimer)' == 'true'">$(RuntimePackageDisclaimer)</PackageDescription>
    <!-- Keep in sync as required by the Packaging SDK in Arcade. -->
    <Description>$(PackageDescription)</Description>
    <GenerateNuspecDependsOn>AddNETStandardCompatErrorFileForPackaging;$(GenerateNuspecDependsOn)</GenerateNuspecDependsOn>
  </PropertyGroup>

  <!-- Remove when https://github.com/NuGet/Home/issues/10405 is implemented and consumed. -->
  <Target Name="ErrorForMissingPackageDescription"
          Condition="'$(IsPackable)' == 'true' and '$(PackageDescription)' == ''">
    <Error Text="Required property 'PackageDescription' is missing for $(MSBuildProjectName)." />
  </Target>

  <!-- <GeneratePackage /> controls if a package should be created by clearing out <PackDependsOn />. -->
  <Target Name="_OverridePackDependsOn"
          Condition="'$(IsPackable)' == 'true' and
                     '$(GeneratePackage)' != 'true'">
    <PropertyGroup>
      <PackDependsOn />
    </PropertyGroup>
  </Target>

  <!-- Add targets file that marks a .NETStandard applicable tfm as unsupported. -->
  <Target Name="AddNETStandardCompatErrorFileForPackaging"
          Condition="'@(NETStandardCompatError)' != ''"
          Inputs="%(NETStandardCompatError.Identity)"
          Outputs="unused">
    <PropertyGroup>
      <_NETStandardCompatErrorFilePath>$(BaseIntermediateOutputPath)netstandardcompaterrors\%(NETStandardCompatError.Identity)\$(PackageId).targets</_NETStandardCompatErrorFilePath>
      <_NETStandardCompatErrorFileTarget>NETStandardCompatError_$(PackageId.Replace('.', '_'))_$([System.String]::new('%(NETStandardCompatError.Supported)').Replace('.', '_'))</_NETStandardCompatErrorFileTarget>
      <_NETStandardCompatErrorFileContent>
<![CDATA[<Project InitialTargets="$(_NETStandardCompatErrorFileTarget)">
  <Target Name="$(_NETStandardCompatErrorFileTarget)"
          Condition="'%24(SuppressTfmSupportBuildWarnings)' == ''">
    <Error Text="$(PackageId) doesn't support %24(TargetFramework). Consider updating your TargetFramework to %(NETStandardCompatError.Supported) or later." />
  </Target>
</Project>]]>
      </_NETStandardCompatErrorFileContent>
    </PropertyGroup>

    <WriteLinesToFile File="$(_NETStandardCompatErrorFilePath)"
                      Lines="$(_NETStandardCompatErrorFileContent)"
                      Overwrite="true"
                      WriteOnlyWhenDifferent="true" />

    <ItemGroup>
      <None Include="$(_NETStandardCompatErrorFilePath)"
            PackagePath="buildTransitive\%(NETStandardCompatError.Identity)"
            Pack="true" />
      <None Include="$(PlaceholderFile)"
            PackagePath="buildTransitive\%(NETStandardCompatError.Supported)"
            Pack="true" />
      <FileWrites Include="$(_NETStandardCompatErrorFilePath)" />
    </ItemGroup>
  </Target>

  <!--
    Arcade SDK versioning is defined by static properties in a targets file: work around this by
    moving properties based on versioning into a target.
  -->
  <Target Name="GetProductVersions">
    <PropertyGroup>
      <IncludePreReleaseLabelInPackageVersion Condition="'$(DotNetFinalVersionKind)' != 'release'">true</IncludePreReleaseLabelInPackageVersion>
      <IncludePreReleaseLabelInPackageVersion Condition="'$(SuppressFinalPackageVersion)' == 'true'">true</IncludePreReleaseLabelInPackageVersion>
      <IncludePreReleaseLabelInPackageVersion Condition="'$(IsShipping)' != 'true'">true</IncludePreReleaseLabelInPackageVersion>

      <IncludeBuildNumberInPackageVersion Condition="'$(StabilizePackageVersion)' != 'true'">true</IncludeBuildNumberInPackageVersion>
      <IncludeBuildNumberInPackageVersion Condition="'$(SuppressFinalPackageVersion)' == 'true'">true</IncludeBuildNumberInPackageVersion>
      <IncludeBuildNumberInPackageVersion Condition="'$(IsShipping)' != 'true'">true</IncludeBuildNumberInPackageVersion>

      <ProductVersionSuffix Condition="'$(IncludePreReleaseLabelInPackageVersion)' == 'true'">-$(VersionSuffix)</ProductVersionSuffix>
      <ProductBandVersion Condition="'$(ProductBandVersion)' == ''">$(MajorVersion).$(MinorVersion)</ProductBandVersion>
      <ProductionVersion Condition="'$(ProductionVersion)' == ''">$(ProductBandVersion).$(PatchVersion)</ProductionVersion>
      <ProductVersion>$(ProductionVersion)$(ProductVersionSuffix)</ProductVersion>

      <SharedFrameworkNugetVersion>$(ProductVersion)</SharedFrameworkNugetVersion>
      <NuGetVersion>$(SharedFrameworkNugetVersion)</NuGetVersion>
      <InstallersRelativePath>Runtime/$(SharedFrameworkNugetVersion)/</InstallersRelativePath>

      <!--
        By default, we are always building the nuget packages for HostPolicy, HostFXR and
        Dotnet/AppHost. Thus, the properties (below) are always set to $(ProductVersion).
        However, there are scenarios when only some of these components will change (e.g. during
        servicing, we may only change HostPolicy but not HostFXR and Dotnet/AppHost). In such cases,
        pass the appropriate version value(s) as argument to the build command in order to override;
        e.g. 'build -p:HostPolicyVersion=x.y.z ...'
      -->
      <HostVersion Condition="'$(HostVersion)' == ''">$(ProductVersion)</HostVersion>
      <AppHostVersion Condition="'$(AppHostVersion)' == ''">$(ProductVersion)</AppHostVersion>
      <HostResolverVersion Condition="'$(HostResolverVersion)' == ''">$(ProductVersion)</HostResolverVersion>
      <HostPolicyVersion Condition="'$(HostPolicyVersion)' == ''">$(ProductVersion)</HostPolicyVersion>
    </PropertyGroup>
  </Target>
</Project>