-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
68 lines (60 loc) · 3.71 KB
/
Copy pathDirectory.Build.props
File metadata and controls
68 lines (60 loc) · 3.71 KB
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
<Project>
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<NoWarn>NU1701,CS0436</NoWarn>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Unity3D.SDK" PrivateAssets="all" ExcludeAssets="runtime" />
<PackageReference Include="JetBrains.Annotations" />
<PackageReference Include="PolySharp">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" PrivateAssets="all" />
<PackageReference Include="Microsoft.Bcl.HashCode" PrivateAssets="all" />
</ItemGroup>
<ItemGroup Condition="'$(UseRoslynPackages)' == 'true'">
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime;build;native;contentfiles;analyzers;buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" ExcludeAssets="runtime" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" ExcludeAssets="runtime" PrivateAssets="all" />
</ItemGroup>
<!-- Sources:
- https://github.com/dotnet/roslyn/issues/79272#issuecomment-3046703615
- https://github.com/lextudio/sharpsnmppro.mib.extensions/blob/master/MibSourceGenerator/MibSourceGenerator.csproj#L34
-->
<!-- This solution is really for convienience when testing locally via Project References.
It isn't needed if our generators and analyzers were packaged via nuget.
-->
<ItemGroup Condition="'$(MergeAnalyzerDependencies)' == 'true' AND '$(Configuration)' == 'Debug'">
<PackageReference Include="ILRepack" >
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<Target Name="ILRepackMerge" AfterTargets="Build" Condition="'$(MergeAnalyzerDependencies)' == 'true' AND '$(Configuration)' == 'Debug'" >
<PropertyGroup>
<_OutputDir>$(OutputPath)</_OutputDir>
<_MergedAssembly>$(_OutputDir)$(AssemblyName).dll</_MergedAssembly>
<_MainAssembly>$(_OutputDir)$(AssemblyName).Original.dll</_MainAssembly>
<_SharedAssembly>$(SolutionDir)src\Surject.Shared\bin\$(Configuration)\netstandard2.0\Surject.Shared.dll</_SharedAssembly>
<_RoslynLibPath>$(USERPROFILE)\.nuget\packages\microsoft.codeanalysis.common\4.3.0\lib\netstandard2.0</_RoslynLibPath>
</PropertyGroup>
<ItemGroup>
<_AssembliesToMerge Include="$(_MainAssembly)" />
<_AssembliesToMerge Include="$(_SharedAssembly)" />
</ItemGroup>
<Move SourceFiles="$(_MergedAssembly)" DestinationFiles="$(_MainAssembly)" Condition="Exists('$(_MergedAssembly)')" />
<Exec Command=""$(ILRepack)" /wildcards /internalize /lib:$(_OutputDir) /lib:$(_RoslynLibPath) /out:$(_MergedAssembly) @(_AssembliesToMerge->'"%(FullPath)"', ' ')" Condition="Exists('$(ILRepack)')" ContinueOnError="false" />
<Delete Files="$(_MainAssembly)" Condition="Exists('$(_MergedAssembly)')" />
<Message Importance="high" Text="ILRepack merged assemblies to $(_MergedAssembly) (replaced original)" />
</Target>
</Project>