summaryrefslogtreecommitdiff
path: root/csharp/msbuild/ice.nuget.targets
blob: 7ed03a25df8204bb54a39258557df3f43e560a59 (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
<Project DefaultTargets="NugetPack" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <IceSrcRootDir>$(MSBuildThisFileDirectory)..\</IceSrcRootDir>
        <IcePdbRootDir Condition="'$(IcePdbRootDir)' == ''">$(IceSrcRootDir)</IcePdbRootDir>
    </PropertyGroup>

    <!-- For CSharp we use Slice compiler from x64 Release builds -->
    <ItemGroup>
        <SliceCompilers Include="$(IceSrcRootDir)..\cpp\bin\$(CppPlatform)\$(Configuration)\slice2cs.exe;
                                 $(IceSrcRootDir)..\cpp\bin\$(CppPlatform)\$(Configuration)\slice2html.exe" />

       <Net45IceBox Include="$(IceSrcRootDir)bin\net45\iceboxnet.exe"/>
       <Net45IceBox Include="$(IcePdbRootDir)bin\net45\iceboxnet.pdb"/>

        <!--
             With .Net Core and .NET5 we have to pack the dependencies next iceboxnet.dll,
             the .exe native executable is exclude as it is platform dependend
        -->
        <NetStandardIceBox Include="$(IceSrcRootDir)bin\**\publish\*"
                           Exclude="$(IceSrcRootDir)bin\**\publish\*.exe"
                           Condition="'$(NetStandardTargets)' == 'true'" />

        <Assemblies Include="$(IceSrcRootDir)lib\**\*.dll;
                             $(IceSrcRootDir)lib\**\*.xml"/>

        <Net5Pdbs Include="$(IceSrcRootDir)lib\net5.0\*.pdb" />
        <Net45Pdbs Include="$(IcePdbRootDir)\lib\net45\*.pdb" />
        <NetStandardPdbs Include="$(IceSrcRootDir)lib\netstandard2.0\*.pdb" />

        <Slices Include="$(IceSrcRootDir)..\slice\**\*.ice"
                Exclude="$(IceSrcRootDir)..\slice\IceDiscovery\*.ice;
                         $(IceSrcRootDir)..\slice\IceLocatorDiscovery\*.ice"/>
    </ItemGroup>

    <!-- Copy required files to the package specific directories -->
    <Target Name="NugetPack">
        <Copy SourceFiles="@(Assemblies)" DestinationFolder="$(PackageDirectory)\lib\%(Assemblies.RecursiveDir)"/>
        <Copy SourceFiles="@(Net5Pdbs)" DestinationFolder="$(PackageDirectory)\lib\net5.0"/>
        <Copy SourceFiles="@(Net45Pdbs)" DestinationFolder="$(PackageDirectory)\lib\net45"/>
        <Copy SourceFiles="@(NetStandardPdbs)" DestinationFolder="$(PackageDirectory)\lib\netstandard2.0"
              Condition="'$(NetStandardTargets)' == 'true'"/>
        <Copy SourceFiles="@(Slices)" DestinationFolder="$(PackageDirectory)\slice\%(Slices.RecursiveDir)"/>
        <Copy SourceFiles="@(SliceCompilers)" DestinationFolder="$(PackageDirectory)\tools"/>
        <Copy SourceFiles="@(Net45IceBox)" DestinationFolder="$(PackageDirectory)\tools\net45"/>
        <Copy SourceFiles="@(NetStandardIceBox)" DestinationFolder="$(PackageDirectory)\tools\%(NetStandardIceBox.RecursiveDir)\.."
              Condition="'$(NetStandardTargets)' == 'true'"/>
    </Target>
</Project>