blob: 64afb184181aa055dbd5fa234ee58ee24e8f0710 (
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Platform>x64</Platform>
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
<RootDir>$([System.IO.Path]::GetFullPath( $(MSBuildThisFileDirectory)..\msbuild ))</RootDir>
<ToolboxDir>$(MSBuildThisFileDirectory)toolbox</ToolboxDir>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(MSBuildThisFileDirectory)..\..\config\icebuilder.props"/>
<Import Project="$(MSBuildThisFileDirectory)..\..\config\ice.common.targets"/>
<Target Name="MatlabHome" Condition="'$(MatlabHome)' == ''">
<Exec Command="where matlab" ConsoleToMSBuild="true" EchoOff="yes">
<Output TaskParameter="ConsoleOutput" PropertyName="MatlabExe" />
</Exec>
<PropertyGroup>
<MatlabExe>$(MatlabExe.Split(';')[0])</MatlabExe>
</PropertyGroup>
<Error Text="Cannot detect a valid MATLAB installation" Condition="!Exists('$(MatlabExe)')"/>
<CreateProperty Value="$([System.IO.Path]::GetFullPath( '$(MatlabExe)\..\..' ))">
<Output TaskParameter="Value" PropertyName="MatlabHome" />
</CreateProperty>
</Target>
<Target Name="MatlabVersion" Condition="'$(MatlabVersion)' == ''" DependsOnTargets="MatlabHome">
<Exec Command=""$(MatlabHome)\bin\matlab.exe" -nodesktop -nosplash -wait -log -minimize -r "fprintf(2, '%%s', version('-release'));exit(0);""
EchoOff="yes"
ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="MatlabOut"/>
</Exec>
<CreateProperty Value="$(MatlabOut.Substring($(MatlabOut.LastIndexOf(';'))).Replace(';',''))">
<Output TaskParameter="Value" PropertyName="MatlabVersion" />
</CreateProperty>
</Target>
<Target Name="NuGetRestore" DependsOnTargets="GetNuGet">
<Exec Command="$(NuGetExe) install zeroc.ice.v140 -OutputDirectory $(MSBuildThisFileDirectory)packages -Version $(IceJSONVersion)"
Condition="'$(ICE_BIN_DIST)' == 'cpp'"/>
<Exec Command="$(NuGetExe) restore $(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.$(DefaultPlatformToolset).sln"
Condition="'$(ICE_BIN_DIST)' == ''"/>
</Target>
<Target Name="BuildCppDist" Condition="'$(ICE_BIN_DIST)' == ''" DependsOnTargets="NuGetRestore">
<MSBuild Projects="$(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.$(DefaultPlatformToolset).sln"
Targets="c++98\slice2matlab;c++11\ice++11;c++11\icessl++11;c++11\icediscovery++11;c++11\icelocatordiscovery++11"
BuildInParallel="true"
Properties="Platform=$(Platform);Configuration=$(Configuration)" />
</Target>
<Target Name="BuildDist" DependsOnTargets="BuildCppDist;NuGetRestore;MatlabHome" Condition="'$(ICE_BIN_DIST)' != 'all'">
<MSBuild Projects="$(MSBuildThisFileDirectory)ice.sln"
BuildInParallel="true"
Properties="Platform=$(Platform);Configuration=$(Configuration);MatlabHome=$(MatlabHome)" />
<MSBuild Projects="$(MSBuildThisFileDirectory)..\lib\msbuild\ice.proj"
BuildInParallel="true"
Targets="SliceCompile"
Properties="Platform=$(Platform);Configuration=$(Configuration);MatlabHome=$(MatlabHome)" />
</Target>
<Target Name="CleanDist" Condition="'$(ICE_BIN_DIST)' != 'all'">
<MSBuild Projects="$(MSBuildThisFileDirectory)ice.sln"
BuildInParallel="true"
Properties="Platform=$(Platform);Configuration=$(Configuration)"
Targets="Clean" />
<MSBuild Projects="$(MSBuildThisFileDirectory)..\lib\msbuild\ice.proj"
BuildInParallel="true"
Properties="Platform=$(Platform);Configuration=$(Configuration)"
Targets="SliceCompileClean" />
</Target>
<Target Name="Build" DependsOnTargets="BuildDist;NuGetRestore">
<MSBuild Projects="ice.matlab.test.proj"
Targets="SliceCompile"/>
</Target>
<Target Name="Clean" DependsOnTargets="CleanDist">
<MSBuild Projects="ice.matlab.test.proj"
Targets="SliceCompileClean"/>
</Target>
<!-- Replace file contents -->
<UsingTask TaskName="WriteFileWithReplacements"
TaskFactory="CodeTaskFactory"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<InputFile ParameterType="System.String" Required="true"/>
<OutputFile ParameterType="System.String" Required="true"/>
<Tokens ParameterType="System.String[]"/>
<Replacements ParameterType="System.String[]"/>
</ParameterGroup>
<Task>
<Reference Include="System" />
<Code Type="Fragment" Language="cs">
<![CDATA[
var text = System.IO.File.ReadAllText(InputFile);
for(var i = 0; i < Tokens.Length; ++i)
{
text = text.Replace(Tokens[i], Replacements[i]);
}
System.IO.File.WriteAllText(OutputFile, text, new System.Text.UTF8Encoding(false));
]]>
</Code>
</Task>
</UsingTask>
<Target Name="Package" DependsOnTargets="BuildDist;MatlabHome;MatlabVersion">
<RemoveDir Directories="$(ToolboxDir)" />
<MakeDir Directories="$(ToolboxDir)" />
<WriteFileWithReplacements InputFile="$(MSBuildThisFileDirectory)toolbox.template.prj"
OutputFile="$(MSBuildThisFileDirectory)toolbox.prj"
Tokens="@RootDir@;@MatlabHome@;@IceVersion@;@MatlabVersion@"
Replacements="$(RootDir);$(MatlabHome);3.7.2;$(MatlabVersion)"/>
<WriteFileWithReplacements InputFile="$(MSBuildThisFileDirectory)info.template.xml"
OutputFile="$(MSBuildThisFileDirectory)toolbox\info.xml"
Tokens="@MatlabVersion@"
Replacements="R$(MatlabVersion)"/>
<MSBuild Projects="ice.toolbox.targets"
Properties="Configuration=$(Configuration);Platform=x64" />
<Exec Command=""$(MatlabHome)\bin\matlab.exe" -nodesktop -nosplash -wait -log -minimize -r "cd('$(MSBuildThisFileDirectory)');addFolderToPath '$(ToolboxDir)\ice'""
WorkingDirectory="$(MSBuildThisFileDirectory)"/>
<Exec Command=""$(MatlabHome)\bin\matlab.exe" -nodesktop -nosplash -wait -log -minimize -r "cd('$(MSBuildThisFileDirectory)');buildToolbox '3.7.2'""
WorkingDirectory="$(MSBuildThisFileDirectory)"/>
<Exec Command=""$(MatlabHome)\bin\matlab.exe" -nodesktop -nosplash -wait -log -minimize -r "cd('$(MSBuildThisFileDirectory)');removeFolderFromPath '$(ToolboxDir)\ice'""
WorkingDirectory="$(MSBuildThisFileDirectory)"/>
<Delete Files="toolbox.prj"/>
</Target>
</Project>
|