summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/src/Slice/Preprocessor.cpp13
-rw-r--r--cpp/src/Slice/StringLiteralUtil.cpp2
-rw-r--r--matlab/README.md21
-rw-r--r--matlab/lib/+Ice/Communicator.m2
-rw-r--r--matlab/lib/+Ice/initialize.m2
-rw-r--r--matlab/lib/generated/.gitignore1
-rw-r--r--matlab/lib/msbuild/ice.proj49
-rw-r--r--matlab/msbuild/ice.proj103
-rw-r--r--matlab/msbuild/ice.sln22
-rw-r--r--matlab/msbuild/ice.tests.props31
-rw-r--r--matlab/src/IceMatlab/ObjectPrx.cpp2
-rw-r--r--matlab/src/IceMatlab/Util.cpp8
-rw-r--r--matlab/src/IceMatlab/msbuild/icematlab.vcxproj101
-rw-r--r--matlab/src/IceMatlab/msbuild/icematlab.vcxproj.filters74
-rw-r--r--matlab/test/Ice/acm/generated/.gitignore1
-rw-r--r--matlab/test/Ice/acm/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/ami/generated/.gitignore1
-rw-r--r--matlab/test/Ice/ami/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/binding/generated/.gitignore1
-rw-r--r--matlab/test/Ice/binding/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/checksum/generated/.gitignore1
-rw-r--r--matlab/test/Ice/checksum/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/defaultValue/generated/.gitignore1
-rw-r--r--matlab/test/Ice/defaultValue/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/enums/generated/.gitignore1
-rw-r--r--matlab/test/Ice/enums/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/exceptions/generated/.gitignore1
-rw-r--r--matlab/test/Ice/exceptions/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/facets/generated/.gitignore1
-rw-r--r--matlab/test/Ice/facets/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/info/generated/.gitignore1
-rw-r--r--matlab/test/Ice/info/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/inheritance/generated/.gitignore1
-rw-r--r--matlab/test/Ice/inheritance/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/objects/generated/.gitignore1
-rw-r--r--matlab/test/Ice/objects/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/operations/generated/.gitignore1
-rw-r--r--matlab/test/Ice/operations/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/optional/generated/.gitignore1
-rw-r--r--matlab/test/Ice/optional/msbuild/test.proj12
-rw-r--r--matlab/test/Ice/proxy/generated/.gitignore1
-rw-r--r--matlab/test/Ice/proxy/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/slicing/exceptions/generated/.gitignore1
-rw-r--r--matlab/test/Ice/slicing/exceptions/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/slicing/objects/generated/.gitignore1
-rw-r--r--matlab/test/Ice/slicing/objects/msbuild/test.proj11
-rw-r--r--matlab/test/Ice/timeout/generated/.gitignore1
-rw-r--r--matlab/test/Ice/timeout/msbuild/test.proj11
48 files changed, 530 insertions, 106 deletions
diff --git a/cpp/src/Slice/Preprocessor.cpp b/cpp/src/Slice/Preprocessor.cpp
index 89a9874aac2..4bee00f7257 100644
--- a/cpp/src/Slice/Preprocessor.cpp
+++ b/cpp/src/Slice/Preprocessor.cpp
@@ -602,6 +602,7 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
case SliceXML:
break;
case Java:
+ case MATLAB:
{
//
// We want to shift the files left one position, so that
@@ -724,18 +725,6 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
}
break;
}
- case MATLAB:
- {
- //
- // Change .o[bj] suffix to .m suffix.
- //
- string::size_type pos;
- if((pos = result.find(suffix)) != string::npos)
- {
- result.replace(pos, suffix.size() - 1, ".m");
- }
- break;
- }
default:
{
assert(false);
diff --git a/cpp/src/Slice/StringLiteralUtil.cpp b/cpp/src/Slice/StringLiteralUtil.cpp
index 80c322b4d7f..6eb0e4bf650 100644
--- a/cpp/src/Slice/StringLiteralUtil.cpp
+++ b/cpp/src/Slice/StringLiteralUtil.cpp
@@ -175,7 +175,7 @@ StringLiteralGenerator::escapeASCIIChar(char c)
// legal characters. If the trailing character after an escaped value could be consumed, we escape it
// as well to terminate the original escape.
//
- if((lastFormat == OctalFormat && _octalChars.find(c) != string::npos) ||
+ if((lastFormat == OctalFormat && _octalChars.find(c) != string::npos) ||
(lastFormat == HexFormat && _hexChars.find(c) != string::npos))
{
ostringstream os;
diff --git a/matlab/README.md b/matlab/README.md
index b0f571ec43a..92454e6f35d 100644
--- a/matlab/README.md
+++ b/matlab/README.md
@@ -18,11 +18,6 @@ Prompt`. In this Command Prompt, change to the `matlab` subdirectory:
cd matlab
```
-Add the MATLAB `bin` directory to your PATH if it's not there already:
-```
-PATH=<MATLAB installation directory>\bin;%PATH%
-```
-
Now you're ready to build Ice for MATLAB:
```
msbuild msbuild\ice.proj
@@ -33,11 +28,18 @@ To build in debug mode instead:
msbuild msbuild\ice.proj /p:Configuration=Debug
```
+If MATLAB is not installed in the standard location set the MSBuild `MatlabHome`
+property:
+
+```
+msbuild msbuild\ice.proj /p:MatlabHome=C:\Program Files\MATLAB\R2016a
+```
+
Upon completion, the build generates the following components:
- Ice for C++11 library, located in `cpp\bin\x64\Release`
- slice2matlab executable, located in `cpp\bin\x64\Release`
- - icematlab.mexw64 MEX file, located in `matlab\src\IceMatlab`
+ - icematlab.mexw64 MEX file, located in `matlab\lib\x64\Release`
- MATLAB code for core Slice files, located in `matlab\lib\generated`
- MATLAB code for test Slice files, located in `matlab\test\Ice\*\generated`
@@ -49,7 +51,7 @@ Add the following directories to your MATLAB search path:
- `matlab\lib`
- `matlab\lib\generated`
- - `matlab\src\IceMatlab`
+ - `matlab\lib\x64\Release`
### Slice Files
@@ -65,8 +67,8 @@ The Ice for MATLAB library can be loaded with this command:
loadlibrary icematlab
```
-The MEX file depends on `bzip2.dll` and `ice37++11.dll`. The build copied
-these DLLs to `matlab\src\IceMatlab`.
+The MEX file depends on `bzip2.dll` and `ice37++11.dll` that are part of the
+C++ distribution.
### Running the Tests
@@ -103,6 +105,7 @@ Replace `<addr>` with the host name or IP address of the server host.
Assuming you've built the C++11 test servers in Debug mode on Windows, run the
`allTests.py` script like this:
+
```
python allTests.py --platform=x64 --cpp-config=Cpp11-Debug
```
diff --git a/matlab/lib/+Ice/Communicator.m b/matlab/lib/+Ice/Communicator.m
index f608e5b7b9c..fed8c487e1e 100644
--- a/matlab/lib/+Ice/Communicator.m
+++ b/matlab/lib/+Ice/Communicator.m
@@ -143,7 +143,7 @@ classdef Communicator < IceInternal.WrapperObject
assert(~isNull(future));
r = Ice.Future(future, 'flushBatchRequests', 0, 'Ice_SimpleFuture', @(fut) fut.iceCall('check'));
end
- function r = getClassResolver(obj)
+ function r = getClassResolver(obj)
if isempty(obj.classResolver) % Lazy initialization.
obj.classResolver = IceInternal.ClassResolver(obj.getProperties());
end
diff --git a/matlab/lib/+Ice/initialize.m b/matlab/lib/+Ice/initialize.m
index 0b903f29b63..0dd76308cb4 100644
--- a/matlab/lib/+Ice/initialize.m
+++ b/matlab/lib/+Ice/initialize.m
@@ -26,7 +26,7 @@ function [communicator, args] = initialize(varargin)
throw(MException('Ice:ArgumentException', 'unexpected argument to Ice.initialize'));
end
end
-
+
if isempty(initData)
initData = Ice.InitializationData();
end
diff --git a/matlab/lib/generated/.gitignore b/matlab/lib/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/lib/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/lib/msbuild/ice.proj b/matlab/lib/msbuild/ice.proj
new file mode 100644
index 00000000000..5b2b8f4c1f3
--- /dev/null
+++ b/matlab/lib/msbuild/ice.proj
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <Import Project="$(MSBuildThisFileDirectory)..\..\..\config\icebuilder.props" />
+
+ <PropertyGroup Condition="'$(ICE_BIN_DIST)' == ''">
+ <IceHome>$(MSBuildThisFileDirectory)..\..\..</IceHome>
+ <IceToolsDir>$(IceHome)\cpp\bin\$(Platform)\$(Configuration)</IceToolsDir>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(ICE_BIN_DIST)' == 'cpp'">
+ <IceHome>$(MSBuildThisFileDirectory)..\..\msbuild\packages\zeroc.ice.v140.$(IceJSOnVersion)</IceHome>
+ <IceToolsDir>$(IceHome)\tools</IceToolsDir>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ <SliceDir>$(IceHome)\slice</SliceDir>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <Slice Include="..\..\..\slice\Ice\Communicator.ice" />
+ <Slice Include="..\..\..\slice\Ice\Connection.ice" />
+ <Slice Include="..\..\..\slice\Ice\Current.ice" />
+ <Slice Include="..\..\..\slice\Ice\Endpoint.ice" />
+ <Slice Include="..\..\..\slice\Ice\EndpointTypes.ice" />
+ <Slice Include="..\..\..\slice\Ice\Identity.ice" />
+ <Slice Include="..\..\..\slice\Ice\LocalException.ice" />
+ <Slice Include="..\..\..\slice\Ice\Locator.ice" />
+ <Slice Include="..\..\..\slice\Ice\Router.ice" />
+ <Slice Include="..\..\..\slice\Ice\SliceChecksumDict.ice" />
+ <Slice Include="..\..\..\slice\Ice\ValueFactory.ice" />
+ <Slice Include="..\..\..\slice\Ice\Version.ice" />
+ </ItemGroup>
+ <Target Name="Config">
+ <Message Text="IceHome: $(IceHome)"/>
+ </Target>
+
+ <Target Name="Build">
+ <RemoveDir Directories="$(SliceOutputDir)" Condition="Exists('$(SliceOutputDir)')"/>
+ <MakeDir Directories="$(SliceOutputDir)"/>
+ <Exec Command="$(IceToolsDir)\slice2matlab.exe -I$(SliceDir) --output-dir $(SliceOutputDir) %(Slice.FullPath)"/>
+ </Target>
+
+ <Target Name="Clean">
+ <RemoveDir Directories="$(SliceOutputDir)" Condition="Exists('$(SliceOutputDir)')"/>
+ </Target>
+
+</Project>
diff --git a/matlab/msbuild/ice.proj b/matlab/msbuild/ice.proj
index fac1a932e91..c0d740a9efd 100644
--- a/matlab/msbuild/ice.proj
+++ b/matlab/msbuild/ice.proj
@@ -1,77 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
+ <PropertyGroup>
+ <Platform>x64</Platform>
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
- <MexCompilerFlags Condition="'$(Configuration)' == 'Debug'">-g COMPFLAGS=&quot;/MDd /EHsc&quot;</MexCompilerFlags>
- <MexCompilerFlags Condition="'$(Configuration)' == 'Release'">COMPFLAGS=&quot;/MD /EHsc&quot;</MexCompilerFlags>
- <DebugExt Condition="'$(Configuration)' == 'Debug'">d</DebugExt>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(MSBuildThisFileDirectory)\..\..\config\ice.common.targets"/>
- <PropertyGroup>
- <topSrcDir>$(MSBuildThisFileDirectory)..\..</topSrcDir>
- <sliceDir>$(topSrcDir)\slice</sliceDir>
- <srcDir>$(MSBuildThisFileDirectory)..\src\IceMatlab</srcDir>
- <testDir>$(MSBuildThisFileDirectory)..\test</testDir>
- <slice2matlabexe>$(topSrcDir)\cpp\bin\$(Platform)\$(Configuration)\slice2matlab</slice2matlabexe>
- <slice2matlab Condition="'$(DefaultPlatformToolset)' == 'v140'">c++98\slice2matlab</slice2matlab>
- <cpp11core Condition="'$(DefaultPlatformToolset)' == 'v140'">c++11\ice++11</cpp11core>
- </PropertyGroup>
-
<ItemGroup>
- <Slice Include="$(sliceDir)\Ice\Communicator.ice" />
- <Slice Include="$(sliceDir)\Ice\Connection.ice" />
- <Slice Include="$(sliceDir)\Ice\Current.ice" />
- <Slice Include="$(sliceDir)\Ice\Endpoint.ice" />
- <Slice Include="$(sliceDir)\Ice\EndpointTypes.ice" />
- <Slice Include="$(sliceDir)\Ice\Identity.ice" />
- <Slice Include="$(sliceDir)\Ice\LocalException.ice" />
- <Slice Include="$(sliceDir)\Ice\Locator.ice" />
- <Slice Include="$(sliceDir)\Ice\Router.ice" />
- <Slice Include="$(sliceDir)\Ice\SliceChecksumDict.ice" />
- <Slice Include="$(sliceDir)\Ice\ValueFactory.ice" />
- <Slice Include="$(sliceDir)\Ice\Version.ice" />
+ <TestProjects Include="..\test\**\msbuild\test.proj" />
</ItemGroup>
- <Target Name="CppPrereqs">
- <MSBuild Projects="$(topSrcDir)\cpp\msbuild\ice.proj"
- Targets="NuGetRestore"
- BuildInParallel="false"/>
+ <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>
- <MSBuild Projects="$(topSrcDir)\cpp\msbuild\ice.$(DefaultPlatformToolset).sln"
- Targets="$(slice2matlab);$(cpp11core)"
- BuildInParallel="false"
- Properties="Platform=$(Platform);Configuration=$(Configuration)"/>
+ <Target Name="BuildDist" DependsOnTargets="BuildCppDist" Condition="'$(ICE_BIN_DIST)' != 'all'">
+ <MSBuild Projects="$(MSBuildThisFileDirectory)\..\src\IceMatlab\msbuild\icematlab.vcxproj"
+ BuildInParallel="true"
+ Properties="Platform=$(Platform);Configuration=$(Configuration)" />
+ <MSBuild Projects="$(MSBuildThisFileDirectory)\..\lib\msbuild\ice.proj"
+ BuildInParallel="true"
+ Properties="Platform=$(Platform);Configuration=$(Configuration)" />
</Target>
- <Target Name="Build" DependsOnTargets="CppPrereqs">
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(MSBuildThisFileDirectory)..\lib\generated %(Slice.FullPath)"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\acm\generated $(testDir)\Ice\acm\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\ami\generated $(testDir)\Ice\ami\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\binding\generated $(testDir)\Ice\binding\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\checksum\generated --checksum test.Ice.checksum.Test.SliceChecksums $(testDir)\Ice\checksum\Test.ice $(testDir)\Ice\checksum\Types.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\defaultValue\generated $(testDir)\Ice\defaultValue\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\exceptions\generated $(testDir)\Ice\exceptions\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\enums\generated $(testDir)\Ice\enums\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\facets\generated $(testDir)\Ice\facets\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\info\generated $(testDir)\Ice\info\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\inheritance\generated $(testDir)\Ice\inheritance\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\objects\generated $(testDir)\Ice\objects\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\objects\generated $(testDir)\Ice\objects\LocalTest.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\operations\generated $(testDir)\Ice\operations\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\optional\generated $(testDir)\Ice\optional\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) -I$(testDir)\Ice\optional --output-dir $(testDir)\Ice\optional\generated $(testDir)\Ice\optional\ClientPrivate.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\proxy\generated $(testDir)\Ice\proxy\Test.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\slicing\exceptions\generated $(testDir)\Ice\slicing\exceptions\ClientPrivate.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\slicing\objects\generated $(testDir)\Ice\slicing\objects\ClientPrivate.ice"/>
- <Exec Command="$(slice2matlabexe) -I$(sliceDir) --output-dir $(testDir)\Ice\timeout\generated $(testDir)\Ice\timeout\Test.ice"/>
- <Exec Command="mex -v -outdir $(srcDir) -output icematlab $(MexCompilerFlags) -I$(topSrcDir)\cpp\include -I$(topSrcDir)\cpp\include\generated\cpp11\$(Platform)\$(Configuration) -DICE_CPP11_MAPPING -DICE_BUILDING_SRC -L$(topSrcDir)\cpp\lib\$(Platform)\$(Configuration) -lmex -lmx $(srcDir)\*.cpp"/>
- <Exec Command="copy /Y $(topSrcDir)\cpp\bin\$(Platform)\$(Configuration)\bzip2$(DebugExt).dll $(srcDir)"/>
- <Exec Command="copy /Y &quot;$(topSrcDir)\cpp\bin\$(Platform)\$(Configuration)\ice37++11$(DebugExt).dll&quot; $(srcDir)"/>
+ <Target Name="CleanDist" Condition="'$(ICE_BIN_DIST)' != 'all'">
+ <MSBuild Projects="$(MSBuildThisFileDirectory)\..\src\IceMatlab\msbuild\icematlab.vcxproj"
+ BuildInParallel="true"
+ Properties="Platform=$(Platform);Configuration=$(Configuration)"
+ Targets="Clean" />
+ <MSBuild Projects="$(MSBuildThisFileDirectory)\..\lib\msbuild\ice.proj"
+ BuildInParallel="true"
+ Properties="Platform=$(Platform);Configuration=$(Configuration)"
+ Targets="Clean" />
</Target>
+ <Target Name="Build" DependsOnTargets="BuildDist">
+ <MSBuild Projects="@(TestProjects)"
+ BuildInParallel="true"
+ Properties="Platform=$(Platform);Configuration=$(Configuration)" />
+ </Target>
+
+ <Target Name="Clean" DependsOnTargets="CleanDist">
+ <MSBuild Projects="@(TestProjects)"
+ BuildInParallel="true"
+ Properties="Platform=$(Platform);Configuration=$(Configuration)"
+ Targets="Clean" />
+ </Target>
</Project>
diff --git a/matlab/msbuild/ice.sln b/matlab/msbuild/ice.sln
new file mode 100644
index 00000000000..bb67de11c3a
--- /dev/null
+++ b/matlab/msbuild/ice.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icematlab", "..\src\IceMatlab\msbuild\icematlab.vcxproj", "{89C40F1A-1761-46C1-B326-5B20BE6F8173}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {89C40F1A-1761-46C1-B326-5B20BE6F8173}.Debug|x64.ActiveCfg = Debug|x64
+ {89C40F1A-1761-46C1-B326-5B20BE6F8173}.Debug|x64.Build.0 = Debug|x64
+ {89C40F1A-1761-46C1-B326-5B20BE6F8173}.Release|x64.ActiveCfg = Release|x64
+ {89C40F1A-1761-46C1-B326-5B20BE6F8173}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/matlab/msbuild/ice.tests.props b/matlab/msbuild/ice.tests.props
new file mode 100644
index 00000000000..cca8af8c427
--- /dev/null
+++ b/matlab/msbuild/ice.tests.props
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildThisFileDirectory)..\..\config\icebuilder.props" />
+
+ <PropertyGroup Condition="'$(ICE_BIN_DIST)' == ''">
+ <Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
+ <Platform Condition="'$(Platform)' == ''">x64</Platform>
+ <IceHome>$(MSBuildThisFileDirectory)..\..</IceHome>
+ <IceToolsDir>$(IceHome)\cpp\bin\$(Platform)\$(Configuration)</IceToolsDir>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(ICE_BIN_DIST)' == 'cpp'">
+ <IceHome>$(MSBuildThisFileDirectory)packages\zeroc.ice.v140.$(IceJSOnVersion)</IceHome>
+ <IceToolsDir>$(IceHome)\tools</IceToolsDir>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <SliceDir>$(IceHome)\slice</SliceDir>
+ </PropertyGroup>
+
+ <Target Name="Build">
+ <RemoveDir Directories="$(SliceOutputDir)" Condition="Exists('$(SliceOutputDir)')"/>
+ <MakeDir Directories="$(SliceOutputDir)"/>
+ <Exec Command="$(IceToolsDir)\slice2matlab.exe -I$(SliceDir) --output-dir $(SliceOutputDir) $(SliceArgs) %(Slice.FullPath)"/>
+ </Target>
+
+ <Target Name="Clean">
+ <RemoveDir Directories="$(SliceOutputDir)" Condition="Exists('$(SliceOutputDir)')"/>
+ </Target>
+
+</Project>
diff --git a/matlab/src/IceMatlab/ObjectPrx.cpp b/matlab/src/IceMatlab/ObjectPrx.cpp
index c2ef3d0b89b..dc6317c6963 100644
--- a/matlab/src/IceMatlab/ObjectPrx.cpp
+++ b/matlab/src/IceMatlab/ObjectPrx.cpp
@@ -565,7 +565,7 @@ Ice_ObjectPrx_ice_getNumEndpoints(void* self)
{
try
{
- return createResultValue(createInt(SELF->ice_getEndpoints().size()));
+ return createResultValue(createInt(static_cast<int>(SELF->ice_getEndpoints().size())));
}
catch(const std::exception& ex)
{
diff --git a/matlab/src/IceMatlab/Util.cpp b/matlab/src/IceMatlab/Util.cpp
index 6259061d7e7..f4f3dd1e452 100644
--- a/matlab/src/IceMatlab/Util.cpp
+++ b/matlab/src/IceMatlab/Util.cpp
@@ -237,7 +237,7 @@ IceMatlab::createStringMap(const map<string, string>& m)
else
{
mwSize dims[2] = {1, 0};
- dims[1] = m.size();
+ dims[1] = static_cast<int>(m.size());
auto keys = mxCreateCellArray(2, dims);
auto values = mxCreateCellArray(2, dims);
int idx = 0;
@@ -281,8 +281,8 @@ IceMatlab::getStringMap(mxArray* p, map<string, string>& m)
{
for(size_t i = 0; i < n; ++i)
{
- auto k = getStringFromUTF16(mxGetCell(keys, i));
- auto v = getStringFromUTF16(mxGetCell(values, i));
+ auto k = getStringFromUTF16(mxGetCell(keys, static_cast<int>(i)));
+ auto v = getStringFromUTF16(mxGetCell(values, static_cast<int>(i)));
m[k] = v;
}
mxDestroyArray(keys);
@@ -538,7 +538,7 @@ IceMatlab::createResultException(mxArray* ex)
mxArray*
IceMatlab::createStringList(const vector<string>& v)
{
- auto r = mxCreateCellMatrix(1, v.size());
+ auto r = mxCreateCellMatrix(1, static_cast<int>(v.size()));
mwIndex i = 0;
for(auto p = v.begin(); p != v.end(); ++p, ++i)
{
diff --git a/matlab/src/IceMatlab/msbuild/icematlab.vcxproj b/matlab/src/IceMatlab/msbuild/icematlab.vcxproj
new file mode 100644
index 00000000000..6e213ee58c1
--- /dev/null
+++ b/matlab/src/IceMatlab/msbuild/icematlab.vcxproj
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="..\..\..\msbuild\packages\zeroc.ice.v140.3.7.0\build\native\zeroc.ice.v140.props" Condition="Exists('..\..\..\msbuild\packages\zeroc.ice.v140.3.7.0\build\native\zeroc.ice.v140.props') And '$(ICE_BIN_DIST)' == 'cpp'" />
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{89C40F1A-1761-46C1-B326-5B20BE6F8173}</ProjectGuid>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <Import Project="$(MSBuildThisFileDirectory)..\..\..\..\cpp\msbuild\ice.cpp11.props" />
+ <PropertyGroup>
+ <MatlabHome Condition="'$(MatlabHome)' == ''">C:\Program Files\MATLAB\R2016a</MatlabHome>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>..\..\..\lib\$(Platform)\$(Configuration)\</OutDir>
+ <TargetExt>.mexw64</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>..\..\..\lib\$(Platform)\$(Configuration)\</OutDir>
+ <TargetExt>.mexw64</TargetExt>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PreprocessorDefinitions>MX_COMPAT_32;MATLAB_MEX_FILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(MatlabHome)\extern\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>libmx.lib;libmex.lib;libmat.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalOptions>/EXPORT:mexFunction %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalLibraryDirectories>$(MatlabHome)\extern\lib\win64\microsoft;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PreprocessorDefinitions>MX_COMPAT_32;MATLAB_MEX_FILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(MatlabHome)\extern\include;;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>libmx.lib;libmex.lib;libmat.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalOptions>/EXPORT:mexFunction %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalLibraryDirectories>$(MatlabHome)\extern\lib\win64\microsoft;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\Communicator.cpp" />
+ <ClCompile Include="..\Connection.cpp" />
+ <ClCompile Include="..\Endpoint.cpp" />
+ <ClCompile Include="..\Future.cpp" />
+ <ClCompile Include="..\Init.cpp" />
+ <ClCompile Include="..\Logger.cpp" />
+ <ClCompile Include="..\ObjectPrx.cpp" />
+ <ClCompile Include="..\Properties.cpp" />
+ <ClCompile Include="..\Util.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\Communicator.h" />
+ <ClInclude Include="..\Endpoint.h" />
+ <ClInclude Include="..\Future.h" />
+ <ClInclude Include="..\icematlab.h" />
+ <ClInclude Include="..\Logger.h" />
+ <ClInclude Include="..\ObjectPrx.h" />
+ <ClInclude Include="..\Util.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\IceMatlab.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ <Import Project="..\..\..\msbuild\packages\zeroc.ice.v140.3.7.0\build\native\zeroc.ice.v140.targets" Condition="Exists('..\..\..\msbuild\packages\zeroc.ice.v140.3.7.0\build\native\zeroc.ice.v140.targets') And '$(ICE_BIN_DIST)' == 'cpp'" />
+ </ImportGroup>
+ <Target Name="AfterBuild">
+ <Copy SourceFiles="..\icematlab.h" DestinationFolder="$(OutDir)" SkipUnchangedFiles="true" />
+ </Target>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('..\..\..\msbuild\packages\zeroc.ice.v140.3.7.0\build\native\zeroc.ice.v140.props') And '$(ICE_BIN_DIST)' == 'cpp'" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\msbuild\packages\zeroc.ice.v140.3.7.0\build\native\zeroc.ice.v140.props'))" />
+ <Error Condition="!Exists('..\..\..\msbuild\packages\zeroc.ice.v140.3.7.0\build\native\zeroc.ice.v140.targets') And '$(ICE_BIN_DIST)' == 'cpp'" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\msbuild\packages\zeroc.ice.v140.3.7.0\build\native\zeroc.ice.v140.targets'))" />
+ </Target>
+</Project>
diff --git a/matlab/src/IceMatlab/msbuild/icematlab.vcxproj.filters b/matlab/src/IceMatlab/msbuild/icematlab.vcxproj.filters
new file mode 100644
index 00000000000..e22fb817c05
--- /dev/null
+++ b/matlab/src/IceMatlab/msbuild/icematlab.vcxproj.filters
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\Communicator.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Connection.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Endpoint.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Future.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Init.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Logger.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\ObjectPrx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Properties.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Util.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\Communicator.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\Endpoint.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\Future.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\icematlab.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\Logger.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\ObjectPrx.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\Util.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\IceMatlab.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project>
diff --git a/matlab/test/Ice/acm/generated/.gitignore b/matlab/test/Ice/acm/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/acm/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/acm/msbuild/test.proj b/matlab/test/Ice/acm/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/acm/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/ami/generated/.gitignore b/matlab/test/Ice/ami/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/ami/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/ami/msbuild/test.proj b/matlab/test/Ice/ami/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/ami/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/binding/generated/.gitignore b/matlab/test/Ice/binding/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/binding/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/binding/msbuild/test.proj b/matlab/test/Ice/binding/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/binding/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/checksum/generated/.gitignore b/matlab/test/Ice/checksum/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/checksum/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/checksum/msbuild/test.proj b/matlab/test/Ice/checksum/msbuild/test.proj
new file mode 100644
index 00000000000..166a6761c68
--- /dev/null
+++ b/matlab/test/Ice/checksum/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ <SliceArgs>--checksum test.Ice.checksum.Test.SliceChecksums</SliceArgs>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/defaultValue/generated/.gitignore b/matlab/test/Ice/defaultValue/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/defaultValue/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/defaultValue/msbuild/test.proj b/matlab/test/Ice/defaultValue/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/defaultValue/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/enums/generated/.gitignore b/matlab/test/Ice/enums/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/enums/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/enums/msbuild/test.proj b/matlab/test/Ice/enums/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/enums/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/exceptions/generated/.gitignore b/matlab/test/Ice/exceptions/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/exceptions/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/exceptions/msbuild/test.proj b/matlab/test/Ice/exceptions/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/exceptions/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/facets/generated/.gitignore b/matlab/test/Ice/facets/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/facets/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/facets/msbuild/test.proj b/matlab/test/Ice/facets/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/facets/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/info/generated/.gitignore b/matlab/test/Ice/info/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/info/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/info/msbuild/test.proj b/matlab/test/Ice/info/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/info/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/inheritance/generated/.gitignore b/matlab/test/Ice/inheritance/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/inheritance/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/inheritance/msbuild/test.proj b/matlab/test/Ice/inheritance/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/inheritance/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/objects/generated/.gitignore b/matlab/test/Ice/objects/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/objects/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/objects/msbuild/test.proj b/matlab/test/Ice/objects/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/objects/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/operations/generated/.gitignore b/matlab/test/Ice/operations/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/operations/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/operations/msbuild/test.proj b/matlab/test/Ice/operations/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/operations/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/optional/generated/.gitignore b/matlab/test/Ice/optional/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/optional/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/optional/msbuild/test.proj b/matlab/test/Ice/optional/msbuild/test.proj
new file mode 100644
index 00000000000..270beb1cb65
--- /dev/null
+++ b/matlab/test/Ice/optional/msbuild/test.proj
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ <SliceArgs>-I..</SliceArgs>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/proxy/generated/.gitignore b/matlab/test/Ice/proxy/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/proxy/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/proxy/msbuild/test.proj b/matlab/test/Ice/proxy/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/proxy/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/slicing/exceptions/generated/.gitignore b/matlab/test/Ice/slicing/exceptions/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/slicing/exceptions/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/slicing/exceptions/msbuild/test.proj b/matlab/test/Ice/slicing/exceptions/msbuild/test.proj
new file mode 100644
index 00000000000..79e73cb9419
--- /dev/null
+++ b/matlab/test/Ice/slicing/exceptions/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/slicing/objects/generated/.gitignore b/matlab/test/Ice/slicing/objects/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/slicing/objects/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/slicing/objects/msbuild/test.proj b/matlab/test/Ice/slicing/objects/msbuild/test.proj
new file mode 100644
index 00000000000..79e73cb9419
--- /dev/null
+++ b/matlab/test/Ice/slicing/objects/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\..\msbuild\ice.tests.props" />
+</Project>
diff --git a/matlab/test/Ice/timeout/generated/.gitignore b/matlab/test/Ice/timeout/generated/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/matlab/test/Ice/timeout/generated/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/matlab/test/Ice/timeout/msbuild/test.proj b/matlab/test/Ice/timeout/msbuild/test.proj
new file mode 100644
index 00000000000..346fe84237b
--- /dev/null
+++ b/matlab/test/Ice/timeout/msbuild/test.proj
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <PropertyGroup>
+ <SliceOutputDir>$(MSBuildThisFileDirectory)..\generated</SliceOutputDir>
+ </PropertyGroup>
+ <ItemGroup>
+ <Slice Include="..\*.ice" />
+ </ItemGroup>
+ <Import Project="..\..\..\..\msbuild\ice.tests.props" />
+</Project>