summaryrefslogtreecommitdiff
path: root/modules/mono/editor/GodotTools/GodotTools.Shared/GenerateGodotNupkgsVersions.targets
blob: 1d382dcb4375a85cd0ae36862298322e8e6d4381 (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
<Project>
  <!-- Generate C# file with the version of all the nupkgs bundled with Godot -->

  <Target Name="SetPropertiesForGenerateGodotNupkgsVersions">
    <PropertyGroup>
      <GodotNETSdkPackageVersionFile>$(SolutionDir)..\Godot.NET.Sdk\Godot.NET.Sdk\Godot.NET.Sdk_PackageVersion.txt</GodotNETSdkPackageVersionFile>
      <GeneratedGodotNupkgsVersionsFile>$(IntermediateOutputPath)GodotNupkgsVersions.g.cs</GeneratedGodotNupkgsVersionsFile>
    </PropertyGroup>
  </Target>

  <Target Name="GenerateGodotNupkgsVersionsFile"
          DependsOnTargets="PrepareForBuild;_GenerateGodotNupkgsVersionsFile"
          BeforeTargets="BeforeCompile;CoreCompile">
    <ItemGroup>
      <Compile Include="$(GeneratedGodotNupkgsVersionsFile)" />
      <FileWrites Include="$(GeneratedGodotNupkgsVersionsFile)" />
    </ItemGroup>
  </Target>
  <Target Name="_GenerateGodotNupkgsVersionsFile"
          DependsOnTargets="SetPropertiesForGenerateGodotNupkgsVersions"
          Inputs="$(MSBuildProjectFile);@(GodotNETSdkPackageVersionFile)"
          Outputs="$(GeneratedGodotNupkgsVersionsFile)">
    <PropertyGroup>
      <GenerateGodotNupkgsVersionsCode><![CDATA[
namespace $(RootNamespace) {
    public class GeneratedGodotNupkgsVersions {
        public const string GodotNETSdk = "$([System.IO.File]::ReadAllText('$(GodotNETSdkPackageVersionFile)').Trim())"%3b
    }
}
]]></GenerateGodotNupkgsVersionsCode>
    </PropertyGroup>
    <WriteLinesToFile Lines="$(GenerateGodotNupkgsVersionsCode)"
                      File="$(GeneratedGodotNupkgsVersionsFile)"
                      Overwrite="True" WriteOnlyWhenDifferent="True" />
  </Target>
</Project>