summaryrefslogtreecommitdiff
path: root/python/msbuild/ice.proj
blob: 3cc976aa9fda7ff909b5475751df6588674c345f (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
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <PropertyGroup Condition="'$(Configuration)' == ''">
        <Configuration>Release</Configuration>
    </PropertyGroup>

    <PropertyGroup Condition="'$(Platform)' == ''">
      <Platform>Win32</Platform>
    </PropertyGroup>

    <PropertyGroup>
        <IceHome>$(MSBuildThisFileDirectory)..\..</IceHome>
        <IceToolsPath>$(IceHome)\cpp\bin\$(Platform)\$(Configuration)</IceToolsPath>
    </PropertyGroup>

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
    <PropertyGroup>
        <CppDistTargets>c++98\slice2py;c++98\icessl;c++98\icediscovery;c++98\icelocatordiscovery;c++11\glacier2router;c++11\glacier2cryptpermissionsverifier++11</CppDistTargets>
    </PropertyGroup>

    <Import Project="$(MSBuildThisFileDirectory)\..\..\config\ice.common.targets" />

    <!-- Restore NuGet packages -->
    <Target Name="NuGetRestore" DependsOnTargets="GetNuGet">
        <Exec Command="$(NuGetExe) restore $(MSBuildThisFileDirectory)ice.sln"/>
    </Target>

    <ItemDefinitionGroup>
        <SliceCompile>
            <OutputDir>$(MSBuildThisFileDirectory)..\python</OutputDir>
        </SliceCompile>
    </ItemDefinitionGroup>

    <ItemGroup>
        <SliceCompile Include="..\..\slice\Ice\*.ice;
                               ..\..\slice\Glacier2\*.ice"
                      Exclude="..\..\slice\Ice\Metrics.ice;
                               ..\..\slice\Glacier2\Metrics.ice">
            <AdditionalOptions>--no-package %(AdditionalOptions)</AdditionalOptions>
        </SliceCompile>
        <SliceCompile Include="..\..\slice\Glacier2\Metrics.ice;
                               ..\..\slice\Ice\Metrics.ice;
                               ..\..\slice\IceBox\*.ice;
                               ..\..\slice\IceGrid\*.ice;
                               ..\..\slice\IceStorm\*.ice"/>
        <PythonGenerated Include="$(MSBuildThisFileDirectory)\..\python\**\*_ice.py"/>
    </ItemGroup>

    <Target Name="BuildCppDist" DependsOnTargets="NuGetRestore">
        <Exec Command="$(NuGetExe) restore $(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.$(DefaultPlatformToolset).sln"/>
        <MSBuild Projects="$(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.$(DefaultPlatformToolset).sln"
                 Targets="$(CppDistTargets)"
                 BuildInParallel="true"
                 Properties="Platform=$(Platform);Configuration=$(Configuration)" />
    </Target>

    <Target Name="Build" DependsOnTargets="BuildCppDist;NuGetRestore">
        <MSBuild Projects="ice.sln"
                 Properties="Configuration=$(Configuration);Platform=$(Platform)" />
    </Target>

    <Target Name="Clean">
        <MSBuild Projects="ice.sln"
                 Properties="Configuration=$(Configuration);Platform=$(Platform)"
                 Targets="Clean" />
    </Target>

    <Target Name="SliceCompile" BeforeTargets="Build"
            Condition="@(SliceCompile) != ''">
        <MakeDir Directories="$(SliceCompileOutputDir)"/>
        <Exec Command="$(IceToolsPath)\slice2py.exe --output-dir %(SliceCompile.OutputDir) -I$(IceHome)\slice %(SliceCompile.AdditionalOptions) @(SliceCompile->'%(Identity)', ' ')" />
    </Target>

    <Target Name="SliceCompileClean" BeforeTargets="Clean">
        <Delete Files="@(PythonGenerated)"/>
    </Target>
</Project>