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

slngen.proj « libraries « src - github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 3defd9663be0aad4c6ebaea9edf8e5c594d3cdc3 (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 Sdk="Microsoft.Build.NoTargets">
  <PropertyGroup>
    <ScriptExt Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">.cmd</ScriptExt>
    <ScriptExt Condition="!$([MSBuild]::IsOSPlatform('WINDOWS'))">.sh</ScriptExt>
    <ProjTemplatePath>$(RepositoryEngineeringDir)slngen.template.proj</ProjTemplatePath>
    <SolutionNameOverride Condition="'$(SolutionNameOverride)' == ''">*</SolutionNameOverride>
  </PropertyGroup>

  <ItemGroup>
    <!-- Unless a "/p:SolutionNameOverride" property is passed in, glob all solutions under src/libraries. -->
    <SolutionFile Include="$(MSBuildThisFileDirectory)$(SolutionNameOverride)\*.sln" />
  </ItemGroup>

  <Target Name="UpdateSolutionFile"
          AfterTargets="Build"
          DependsOnTargets="GetSolutionFiles"
          Inputs="@(SolutionFile)"
          Outputs="%(ProjFilePath)">
    <!-- Copy template files, required by slngen -->
    <Copy SourceFiles="$(ProjTemplatePath)"
          DestinationFiles="%(SolutionFile.ProjFilePath)" />
    
    <!-- Invoke slngen -->
    <Exec Command="&quot;$(RepoRoot)dotnet$(ScriptExt)&quot; slngen -p SlnGenMainProject=%(SolutionFile.Filename) --launch false --nologo &quot;%(SolutionFile.ProjFilePath)&quot;" />

    <!-- Delete temporary template file -->
    <Delete Files="%(SolutionFile.ProjFilePath)" />
  </Target>

  <Target Name="GetSolutionFiles">
    <ItemGroup>
      <!-- Add attributes that require a separate item mutation. -->
      <SolutionFile ProjFilePath="%(RelativeDir)%(Filename).proj" />
    </ItemGroup>
  </Target>
</Project>