aboutsummaryrefslogtreecommitdiff
path: root/src/internal/SetBuildNumber/SetBuildNumber.proj
blob: 9ff4e7c33129e3ea866da024d353f68b09b2a468 (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
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->

<Project Sdk="Microsoft.Build.NoTargets/3.5.6">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <!-- Disable central package version management since this project will write the central package version management file -->
    <ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>

    <!-- Explicitly set the restore sources because this project may run before the build\artifacts folder has been created -->
    <RestoreSources>https://api.nuget.org/v3/index.json</RestoreSources>
    <RestoreIgnoreFailedSources>true</RestoreIgnoreFailedSources>

    <Language>C#</Language>
    <DefaultLanguageSourceExtension>.cs</DefaultLanguageSourceExtension>
    <GitThisAssembly>true</GitThisAssembly>
  </PropertyGroup>

  <PropertyGroup>
    <SetBuildNumbersDependsOn>
      __SetPropertiesFromGit;
      GitThisAssembly;
      SetGlobalJson;
      SetDirectoryPackagesProps;
      SetOverallWixVersions
    </SetBuildNumbersDependsOn>

    <GlobalJsonPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\..\..\global.json))</GlobalJsonPath>
    <CentralPackageVersionsPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\..\..\Directory.Packages.props))</CentralPackageVersionsPath>
    <OverallWixVersionsPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\..\..\build\wixver.props))</OverallWixVersionsPath>
    <GitInfoThisAssemblyFile>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\..\..\build\ThisAssembly.WixVer.cs))</GitInfoThisAssemblyFile>
  </PropertyGroup>

  <Target Name="SetGlobalJson"
          Inputs="global.json.pp"
          Outputs="$(GlobalJsonPath)">
    <PropertyGroup>
      <!-- https://github.com/NuGet/Home/issues/11784
      <GlobaJsonTextHeader>/* DO NOT MODIFY! Auto-generated from internal\SetBuildNumber\global.json.pp */</GlobaJsonTextHeader>
      -->
      <GlobalJsonText>$([System.IO.File]::ReadAllText(global.json.pp))</GlobalJsonText>
      <GlobalJsonText>$(GlobalJsonText.Replace('{apiversion}', $(ApiVersion)))</GlobalJsonText>
      <GlobalJsonText>$(GlobalJsonText.Replace('{fileversion}', $(FileVersion)))</GlobalJsonText>
      <GlobalJsonText>$(GlobalJsonText.Replace('{fullversion}', $(InformationalVersion)))</GlobalJsonText>
      <GlobalJsonText>$(GlobalJsonText.Replace('{informationalversion}', $(InformationalVersion)))</GlobalJsonText>
      <GlobalJsonText>$(GlobalJsonText.Replace('{height}', $(GitCommits)))</GlobalJsonText>
      <GlobalJsonText>$(GlobalJsonText.Replace('{packageversion}', $(PackageVersion)))</GlobalJsonText>
      <GlobalJsonText>$(GlobalJsonText.Replace('{version}', $(Version)))</GlobalJsonText>
    </PropertyGroup>

    <WriteLinesToFile File="$(GlobalJsonPath)"
                      Lines="$(GlobaJsonTextHeader);$(GlobalJsonText)"
                      Overwrite="true" 
                      WriteOnlyWhenDifferent="true" />

    <Message Importance="high" Text="$(MSBuildProjectName) -&gt; $(GlobalJsonPath)" />
  </Target>


  <Target Name="SetDirectoryPackagesProps"
          Inputs="Directory.Packages.props.pp"
          Outputs="$(CentralPackageVersionsPath)">
    <PropertyGroup>
      <CentralPackageVersionsTextHeader>&lt;!-- DO NOT MODIFY! Auto-generated from internal\SetBuildNumber\Directory.Packages.props.pp --&gt;</CentralPackageVersionsTextHeader>
      <CentralPackageVersionsText>$([System.IO.File]::ReadAllText(Directory.Packages.props.pp))</CentralPackageVersionsText>
      <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{apiversion}', $(ApiVersion)))</CentralPackageVersionsText>
      <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{fileversion}', $(FileVersion)))</CentralPackageVersionsText>
      <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{fullversion}', $(InformationalVersion)))</CentralPackageVersionsText>
      <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{informationalversion}', $(InformationalVersion)))</CentralPackageVersionsText>
      <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{height}', $(GitCommits)))</CentralPackageVersionsText>
      <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{packageversion}', $(PackageVersion)))</CentralPackageVersionsText>
      <CentralPackageVersionsText>$(CentralPackageVersionsText.Replace('{version}', $(Version)))</CentralPackageVersionsText>
    </PropertyGroup>

    <WriteLinesToFile File="$(CentralPackageVersionsPath)"
                      Lines="$(CentralPackageVersionsTextHeader);$(CentralPackageVersionsText)"
                      Overwrite="true" 
                      WriteOnlyWhenDifferent="true" />

    <Message Importance="high" Text="$(MSBuildProjectName) -&gt; $(CentralPackageVersionsPath)" />
  </Target>


  <Target Name="SetOverallWixVersions"
          Inputs="wixver.props.pp"
          Outputs="$(OverallWixVersionsPath)">
    <PropertyGroup>
      <OverallWixVersionsTextHeader>&lt;!-- DO NOT MODIFY! Auto-generated from internal\SetBuildNumber\wixver.props.pp --&gt;</OverallWixVersionsTextHeader>
      <OverallWixVersionsText>$([System.IO.File]::ReadAllText(wixver.props.pp))</OverallWixVersionsText>
      <OverallWixVersionsText>$(OverallWixVersionsText.Replace('{GitBaseVersionMajor}', $(GitBaseVersionMajor)))</OverallWixVersionsText>
      <OverallWixVersionsText>$(OverallWixVersionsText.Replace('{GitBaseVersionMinor}', $(GitBaseVersionMinor)))</OverallWixVersionsText>
      <OverallWixVersionsText>$(OverallWixVersionsText.Replace('{GitBaseVersionPatch}', $(GitBaseVersionPatch)))</OverallWixVersionsText>
      <OverallWixVersionsText>$(OverallWixVersionsText.Replace('{GitCommits}', $(GitCommits)))</OverallWixVersionsText>
      <OverallWixVersionsText>$(OverallWixVersionsText.Replace('{GitSemVerDashLabel}', $(GitSemVerDashLabel)))</OverallWixVersionsText>
      <OverallWixVersionsText>$(OverallWixVersionsText.Replace('{GitSha}', $(GitSha)))</OverallWixVersionsText>
      <OverallWixVersionsText>$(OverallWixVersionsText.Replace('{GitRepositoryUrl}', $(GitRepositoryUrl.Replace('.git',''))))</OverallWixVersionsText>
    </PropertyGroup>

    <WriteLinesToFile File="$(OverallWixVersionsPath)"
                      Lines="$(OverallWixVersionsTextHeader);$(OverallWixVersionsText)"
                      Overwrite="true" 
                      WriteOnlyWhenDifferent="true" />

    <Message Importance="high" Text="$(MSBuildProjectName) -&gt; $(OverallWixVersionsPath)" />
  </Target>


  <Target Name="SetBuildNumbers"
          DependsOnTargets="$(SetBuildNumbersDependsOn)"
          BeforeTargets="AfterBuild" />

  <ItemGroup>
    <PackageReference Include="GitInfo" Version="2.3.0" />
  </ItemGroup>
</Project>