summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2016-08-25 12:15:27 -0400
committerBernard Normier <bernard@zeroc.com>2016-08-25 12:15:27 -0400
commitb0bc915ba0df62edb6d63eb40b41d4dba2968b3a (patch)
tree90b344339957a7dddecf9548ed80d8d930530936
parentFix ICE-7298 - Visual Studio 2013 build error (diff)
downloadice-b0bc915ba0df62edb6d63eb40b41d4dba2968b3a.tar.bz2
ice-b0bc915ba0df62edb6d63eb40b41d4dba2968b3a.tar.xz
ice-b0bc915ba0df62edb6d63eb40b41d4dba2968b3a.zip
New test for dynamic_cast across shared libraries
-rw-r--r--config/Make.project.rules8
-rw-r--r--config/Make.rules.Linux8
-rwxr-xr-xcpp/allTests.py1
-rw-r--r--cpp/config/Make.rules5
-rw-r--r--cpp/include/Ice/RegisterPlugins.h4
-rw-r--r--cpp/msbuild/ice.test.sln93
-rw-r--r--cpp/test/Ice/library/AllTests.cpp45
-rw-r--r--cpp/test/Ice/library/Client.cpp43
-rw-r--r--cpp/test/Ice/library/Consumer.cpp74
-rw-r--r--cpp/test/Ice/library/Makefile.mk24
-rw-r--r--cpp/test/Ice/library/Test.ice25
-rw-r--r--cpp/test/Ice/library/msbuild/alltests/alltests.vcxproj194
-rw-r--r--cpp/test/Ice/library/msbuild/alltests/alltests.vcxproj.filters12
-rw-r--r--cpp/test/Ice/library/msbuild/client/client.vcxproj162
-rw-r--r--cpp/test/Ice/library/msbuild/client/client.vcxproj.filters12
-rw-r--r--cpp/test/Ice/library/msbuild/consumer/consumer.vcxproj194
-rw-r--r--cpp/test/Ice/library/msbuild/consumer/consumer.vcxproj.filters12
-rw-r--r--cpp/test/Ice/library/msbuild/gencode/gencode.vcxproj280
-rw-r--r--cpp/test/Ice/library/msbuild/gencode/gencode.vcxproj.filters100
-rw-r--r--cpp/test/Ice/library/run.py29
-rw-r--r--cpp/test/Ice/stringConverter/Client.cpp1
21 files changed, 1320 insertions, 6 deletions
diff --git a/config/Make.project.rules b/config/Make.project.rules
index a3355b272fd..33848f4e3b4 100644
--- a/config/Make.project.rules
+++ b/config/Make.project.rules
@@ -434,7 +434,7 @@ $5_ldflags := $$(call var-compound,ldflags,$1,$2,$3,$4,make-flags)
#
$5_objdir := $$(call var-value,objdir,$1,$2,$3,$4,make-dirwsuffix)
$5_objdir := $$($5_objdir)$$(if $$(and $$($1_multicomp),\
- $$(filter-out $$(call var-compound,cppflags,$1,,$3,$4,make-flags),$$($5_cppflags))),/$2)
+ $$(filter-out $$(call var-compound,cppflags,$1,,$3,$4,make-flags),$$($5_cppflags))),/$$($2_targetname))
$1_objdirs += $$($5_objdir)
$5_sources := $$(patsubst $(lang_srcdir)/%,%,$$(call unique,$$(call var-compound,extra_sources,$1,$2,$3,$4) \
@@ -932,11 +932,13 @@ ifeq ($(embedded_runpath_prefix),)
make-rpath-ldflag = $(if $(filter-out $1,$2),\
$(if $(filter /%,$1),\
$(call rpath-ldflag,$1),\
- $(call rpath-ldflag,$(loader_path)/$(call relpathfromdir,$(patsubst $(lang_srcdir)/%,%,$2))/$1)))
+ $(call rpath-ldflag,$(loader_path)/$(call relpathfromdir,$(patsubst $(lang_srcdir)/%,%,$2))/$1)),\
+ $(call rpath-ldflag,$(loader_path)))
make-shared-dep-ldflags = $(call make-rpath-ldflag,$($1_targetdir),$($2_targetdir)) -L$($1_targetdir) -l$($1_targetname)
else
# Add rpath with $(embedded_runpath_prefix) if linking with library installed in different directory.
-make-rpath-ldflag = $(if $(filter-out $1,$2),$(call rpath-ldflag,$(patsubst $(prefix)/%,$(embedded_runpath_prefix)/%,$1)))
+make-rpath-ldflag = $(if $(filter-out $1,$2),\
+ $(call rpath-ldflag,$(patsubst $(prefix)/%,$(embedded_runpath_prefix)/%,$1)))
make-shared-dep-ldflags = $(call make-rpath-ldflag,$($1_installdir),$($2_installdir)) -L$($1_targetdir) -l$($1_targetname)
endif
else
diff --git a/config/Make.rules.Linux b/config/Make.rules.Linux
index 265db9a1e2e..e939ea76c53 100644
--- a/config/Make.rules.Linux
+++ b/config/Make.rules.Linux
@@ -76,9 +76,17 @@ x86_targetdir = $(if $(filter %/build,$5),/x86)
endif
+rpath-link-ldflag = -Wl,-rpath-link,$1
+make-rpath-link-ldflags = $(foreach d,$(filter-out $2,$(call get-all-deps,$1)),$(call rpath-link-ldflag,$($d_targetdir)))
+
# If building objects for a shared library, enable fPIC
shared_cppflags = $(if $(filter-out program,$($1_target)),-fPIC) -fvisibility=hidden
+# If we are linking a program, add -rpath-link to locate secondary libraries that aren't linked with the executable.
+shared_ldflags = $(if $(filter-out program,$($1_target)),\
+ -Wl$(comma)--no-undefined,\
+ $$(call unique,$$(foreach d,$($4_dependencies),$$(call make-rpath-link-ldflags,$$d,$($4_dependencies)))))
+
CXXFLAGS += -Wall -Werror -pthread
LDFLAGS += -pthread
diff --git a/cpp/allTests.py b/cpp/allTests.py
index 937155a6455..844bb1b9e44 100755
--- a/cpp/allTests.py
+++ b/cpp/allTests.py
@@ -66,6 +66,7 @@ tests = [
("Ice/background", ["core", "nomingw", "nosocks"]),
("Ice/servantLocator", ["core", "bt"]),
("Ice/interceptor", ["core"]),
+ ("Ice/library", ["once", "nostatic"]),
("Ice/stringConverter", ["core"]),
("Ice/udp", ["core"]),
("Ice/defaultServant", ["core"]),
diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
index 1cdcd1464d2..8b45bfad582 100644
--- a/cpp/config/Make.rules
+++ b/cpp/config/Make.rules
@@ -50,8 +50,9 @@ shared_excludes = IceUtil Slice
#
# Build only few components with the static configuration (core and stubs)
#
-static_components = $(coreandstub_components)
-static_projects = test/%
+static_components = $(coreandstub_components)
+static_projects = test/%
+static_excludes = test/Ice/library
#
# Components and projects which are built with C++11
diff --git a/cpp/include/Ice/RegisterPlugins.h b/cpp/include/Ice/RegisterPlugins.h
index 9d02facefdc..c7149893a84 100644
--- a/cpp/include/Ice/RegisterPlugins.h
+++ b/cpp/include/Ice/RegisterPlugins.h
@@ -34,6 +34,10 @@ namespace Ice
// inconsistent DLL linkage errors on Windows.
//
+#ifndef ICE_API_EXPORTS
+ICE_PLUGIN_REGISTER_DECLSPEC_IMPORT void registerIceStringConverter(bool = true);
+#endif
+
#ifndef ICE_SSL_API_EXPORTS
ICE_PLUGIN_REGISTER_DECLSPEC_IMPORT void registerIceSSL(bool = true);
#endif
diff --git a/cpp/msbuild/ice.test.sln b/cpp/msbuild/ice.test.sln
index 8acc3f9556d..13f63e3d8d2 100644
--- a/cpp/msbuild/ice.test.sln
+++ b/cpp/msbuild/ice.test.sln
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
-VisualStudioVersion = 14.0.25123.0
+VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "..\test\Ice\acm\msbuild\client\client.vcxproj", "{CD25A05C-228D-473F-A86F-6C2DD22085B4}"
ProjectSection(ProjectDependencies) = postProject
@@ -1146,6 +1146,28 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client5", "..\test\Ice\logg
{C7223CC8-0AAA-470B-ACB3-12B9DE75525C} = {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}
EndProjectSection
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "library", "library", "{36E32583-310E-48E3-B821-CE79701BDF1D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencode", "..\test\Ice\library\msbuild\gencode\gencode.vcxproj", "{2454F754-3A55-4875-9D8E-57B63673C231}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "consumer", "..\test\Ice\library\msbuild\consumer\consumer.vcxproj", "{73C0E333-6476-4B7E-A52D-AB5E9CA36906}"
+ ProjectSection(ProjectDependencies) = postProject
+ {2454F754-3A55-4875-9D8E-57B63673C231} = {2454F754-3A55-4875-9D8E-57B63673C231}
+ {C7223CC8-0AAA-470B-ACB3-12B9DE75525C} = {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alltests", "..\test\Ice\library\msbuild\alltests\alltests.vcxproj", "{A9537443-BB6C-4324-B1B9-B9492CAE1CD5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906} = {73C0E333-6476-4B7E-A52D-AB5E9CA36906}
+ {2454F754-3A55-4875-9D8E-57B63673C231} = {2454F754-3A55-4875-9D8E-57B63673C231}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "..\test\Ice\library\msbuild\client\client.vcxproj", "{28347243-F75F-4B28-89F9-7EA84478D9C9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5} = {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}
+ {C7223CC8-0AAA-470B-ACB3-12B9DE75525C} = {C7223CC8-0AAA-470B-ACB3-12B9DE75525C}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Cpp11-Debug|Win32 = Cpp11-Debug|Win32
@@ -3938,6 +3960,70 @@ Global
{A4E94959-FD6B-4280-B1B3-99E4829153C9}.Release|Win32.Build.0 = Release|Win32
{A4E94959-FD6B-4280-B1B3-99E4829153C9}.Release|x64.ActiveCfg = Release|x64
{A4E94959-FD6B-4280-B1B3-99E4829153C9}.Release|x64.Build.0 = Release|x64
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Cpp11-Debug|Win32.ActiveCfg = Cpp11-Debug|Win32
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Cpp11-Debug|Win32.Build.0 = Cpp11-Debug|Win32
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Cpp11-Debug|x64.ActiveCfg = Cpp11-Debug|x64
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Cpp11-Debug|x64.Build.0 = Cpp11-Debug|x64
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Cpp11-Release|Win32.ActiveCfg = Cpp11-Release|Win32
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Cpp11-Release|Win32.Build.0 = Cpp11-Release|Win32
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Cpp11-Release|x64.ActiveCfg = Cpp11-Release|x64
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Cpp11-Release|x64.Build.0 = Cpp11-Release|x64
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Debug|Win32.Build.0 = Debug|Win32
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Debug|x64.ActiveCfg = Debug|x64
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Debug|x64.Build.0 = Debug|x64
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Release|Win32.ActiveCfg = Release|Win32
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Release|Win32.Build.0 = Release|Win32
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Release|x64.ActiveCfg = Release|x64
+ {2454F754-3A55-4875-9D8E-57B63673C231}.Release|x64.Build.0 = Release|x64
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Cpp11-Debug|Win32.ActiveCfg = Cpp11-Debug|Win32
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Cpp11-Debug|Win32.Build.0 = Cpp11-Debug|Win32
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Cpp11-Debug|x64.ActiveCfg = Cpp11-Debug|x64
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Cpp11-Debug|x64.Build.0 = Cpp11-Debug|x64
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Cpp11-Release|Win32.ActiveCfg = Cpp11-Release|Win32
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Cpp11-Release|Win32.Build.0 = Cpp11-Release|Win32
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Cpp11-Release|x64.ActiveCfg = Cpp11-Release|x64
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Cpp11-Release|x64.Build.0 = Cpp11-Release|x64
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Debug|Win32.ActiveCfg = Debug|Win32
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Debug|Win32.Build.0 = Debug|Win32
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Debug|x64.ActiveCfg = Debug|x64
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Debug|x64.Build.0 = Debug|x64
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Release|Win32.ActiveCfg = Release|Win32
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Release|Win32.Build.0 = Release|Win32
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Release|x64.ActiveCfg = Release|x64
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906}.Release|x64.Build.0 = Release|x64
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Cpp11-Debug|Win32.ActiveCfg = Cpp11-Debug|Win32
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Cpp11-Debug|Win32.Build.0 = Cpp11-Debug|Win32
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Cpp11-Debug|x64.ActiveCfg = Cpp11-Debug|x64
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Cpp11-Debug|x64.Build.0 = Cpp11-Debug|x64
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Cpp11-Release|Win32.ActiveCfg = Cpp11-Release|Win32
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Cpp11-Release|Win32.Build.0 = Cpp11-Release|Win32
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Cpp11-Release|x64.ActiveCfg = Cpp11-Release|x64
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Cpp11-Release|x64.Build.0 = Cpp11-Release|x64
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Debug|Win32.Build.0 = Debug|Win32
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Debug|x64.ActiveCfg = Debug|x64
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Debug|x64.Build.0 = Debug|x64
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Release|Win32.ActiveCfg = Release|Win32
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Release|Win32.Build.0 = Release|Win32
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Release|x64.ActiveCfg = Release|x64
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5}.Release|x64.Build.0 = Release|x64
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Cpp11-Debug|Win32.ActiveCfg = Cpp11-Debug|Win32
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Cpp11-Debug|Win32.Build.0 = Cpp11-Debug|Win32
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Cpp11-Debug|x64.ActiveCfg = Cpp11-Debug|x64
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Cpp11-Debug|x64.Build.0 = Cpp11-Debug|x64
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Cpp11-Release|Win32.ActiveCfg = Cpp11-Release|Win32
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Cpp11-Release|Win32.Build.0 = Cpp11-Release|Win32
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Cpp11-Release|x64.ActiveCfg = Cpp11-Release|x64
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Cpp11-Release|x64.Build.0 = Cpp11-Release|x64
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Debug|Win32.ActiveCfg = Debug|Win32
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Debug|Win32.Build.0 = Debug|Win32
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Debug|x64.ActiveCfg = Debug|x64
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Debug|x64.Build.0 = Debug|x64
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Release|Win32.ActiveCfg = Release|Win32
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Release|Win32.Build.0 = Release|Win32
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Release|x64.ActiveCfg = Release|x64
+ {28347243-F75F-4B28-89F9-7EA84478D9C9}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -4222,5 +4308,10 @@ Global
{59CA92B5-4500-43D3-B8A8-A69268D9BE08} = {0EB7A345-9609-44ED-816D-C27A35A58FF4}
{91D2AA7B-AAA2-410F-8D3C-17A930A70CD6} = {0EB7A345-9609-44ED-816D-C27A35A58FF4}
{A4E94959-FD6B-4280-B1B3-99E4829153C9} = {481C3CD0-B89F-408B-BA66-A78E96FCBE64}
+ {36E32583-310E-48E3-B821-CE79701BDF1D} = {2CAF9731-CB18-498C-A3EF-24F3D8A334AC}
+ {2454F754-3A55-4875-9D8E-57B63673C231} = {36E32583-310E-48E3-B821-CE79701BDF1D}
+ {73C0E333-6476-4B7E-A52D-AB5E9CA36906} = {36E32583-310E-48E3-B821-CE79701BDF1D}
+ {A9537443-BB6C-4324-B1B9-B9492CAE1CD5} = {36E32583-310E-48E3-B821-CE79701BDF1D}
+ {28347243-F75F-4B28-89F9-7EA84478D9C9} = {36E32583-310E-48E3-B821-CE79701BDF1D}
EndGlobalSection
EndGlobal
diff --git a/cpp/test/Ice/library/AllTests.cpp b/cpp/test/Ice/library/AllTests.cpp
new file mode 100644
index 00000000000..30abe4969f2
--- /dev/null
+++ b/cpp/test/Ice/library/AllTests.cpp
@@ -0,0 +1,45 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <Test.h>
+
+ICE_DECLSPEC_IMPORT void
+consume(const Ice::ObjectPtr&, const Ice::ObjectPrxPtr&);
+
+#if defined(_MSC_VER)
+# pragma comment(lib, ICE_LIBNAME("consumer"))
+# pragma comment(lib, ICE_LIBNAME("gencode"))
+#endif
+
+class TestI : public Test::MyInterface
+{
+public:
+
+ void op(bool, const Ice::Current& = Ice::noExplicitCurrent);
+
+};
+
+void
+TestI::op(bool throwIt, const Ice::Current&)
+{
+ if(throwIt)
+ {
+ throw Test::UserError("error message");
+ }
+}
+
+ICE_DECLSPEC_EXPORT
+void allTests(const Ice::ObjectAdapterPtr& oa)
+{
+ Test::MyInterfacePtr servant = ICE_MAKE_SHARED(TestI);
+ Test::MyInterfacePrxPtr proxy = ICE_UNCHECKED_CAST(Test::MyInterfacePrx, oa->addWithUUID(servant));
+ consume(servant, proxy);
+}
+
diff --git a/cpp/test/Ice/library/Client.cpp b/cpp/test/Ice/library/Client.cpp
new file mode 100644
index 00000000000..bc8371e95a2
--- /dev/null
+++ b/cpp/test/Ice/library/Client.cpp
@@ -0,0 +1,43 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <TestCommon.h>
+
+ICE_DECLSPEC_IMPORT void
+allTests(const Ice::ObjectAdapterPtr&);
+
+#if defined(_MSC_VER)
+# pragma comment(lib, ICE_LIBNAME("alltests"))
+#endif
+
+DEFINE_TEST("client")
+
+using namespace std;
+
+int
+main(int argc, char* argv[])
+{
+ try
+ {
+ Ice::CommunicatorHolder ich = Ice::initialize(argc, argv);
+
+ // Collocated-only OA
+ Ice::ObjectAdapterPtr oa = ich->createObjectAdapter("");
+
+ oa->activate();
+ allTests(oa);
+ }
+ catch(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ return EXIT_FAILURE;
+ }
+ return EXIT_SUCCESS;
+}
diff --git a/cpp/test/Ice/library/Consumer.cpp b/cpp/test/Ice/library/Consumer.cpp
new file mode 100644
index 00000000000..0ce1ffe7a19
--- /dev/null
+++ b/cpp/test/Ice/library/Consumer.cpp
@@ -0,0 +1,74 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <Test.h>
+#include <TestCommon.h>
+
+#if defined(_MSC_VER)
+# pragma comment(lib, ICE_LIBNAME("gencode"))
+#endif
+
+using namespace std;
+
+ICE_DECLSPEC_EXPORT void
+consume(const Ice::ObjectPtr& o, const Ice::ObjectPrxPtr& p)
+{
+ cout << "testing dynamic cast across libraries... " << flush;
+
+ //
+ // Make sure dynamic cast works as expected
+ // and exception raised by a shared library can be caught by another
+ // shared library
+ //
+
+ Test::MyInterfacePtr servant = ICE_DYNAMIC_CAST(Test::MyInterface, o);
+ test(servant);
+
+#ifdef ICE_CPP11_MAPPING
+ auto proxy = dynamic_pointer_cast<Test::MyInterfacePrx>(p);
+#else
+ Test::MyInterfacePrx proxy = dynamic_cast<IceProxy::Test::MyInterface*>(p.get());
+#endif
+ test(proxy);
+
+ proxy->op(false);
+ servant->op(false, Ice::noExplicitCurrent);
+
+ cout << "ok" << endl;
+
+ cout << "testing exceptions thrown across libraries... " << flush;
+
+ try
+ {
+ proxy->op(true);
+ }
+ catch(const Test::UserError&)
+ {
+ // expected
+ }
+ catch(...)
+ {
+ test(false);
+ }
+
+ try
+ {
+ servant->op(true);
+ }
+ catch(const Test::UserError&)
+ {
+ // expected
+ }
+ catch(...)
+ {
+ test(false);
+ }
+
+ cout << "ok" << endl;
+}
diff --git a/cpp/test/Ice/library/Makefile.mk b/cpp/test/Ice/library/Makefile.mk
new file mode 100644
index 00000000000..fd4643a9718
--- /dev/null
+++ b/cpp/test/Ice/library/Makefile.mk
@@ -0,0 +1,24 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
+#
+# This copy of Ice is licensed to you under the terms described in the
+# ICE_LICENSE file included in this distribution.
+#
+# **********************************************************************
+
+$(test)_libraries := $(test)_GenCode $(test)_Consumer $(test)_AllTests
+
+$(test)_GenCode_sources := Test.ice
+$(test)_sliceflags := --dll-export LIBRARY_TEST_API
+
+$(test)_Consumer_sources := Consumer.cpp
+$(test)_Consumer_dependencies := $(test)_GenCode
+
+$(test)_AllTests_sources := AllTests.cpp
+$(test)_AllTests_dependencies := $(test)_GenCode $(test)_Consumer
+
+$(test)_client_sources := Client.cpp
+$(test)_client_dependencies := $(test)_AllTests
+
+tests += $(test)
diff --git a/cpp/test/Ice/library/Test.ice b/cpp/test/Ice/library/Test.ice
new file mode 100644
index 00000000000..1fbee615b42
--- /dev/null
+++ b/cpp/test/Ice/library/Test.ice
@@ -0,0 +1,25 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#pragma once
+
+module Test
+{
+
+exception UserError
+{
+ string message;
+};
+
+interface MyInterface
+{
+ void op(bool throwIt) throws UserError;
+};
+
+};
diff --git a/cpp/test/Ice/library/msbuild/alltests/alltests.vcxproj b/cpp/test/Ice/library/msbuild/alltests/alltests.vcxproj
new file mode 100644
index 00000000000..14238415850
--- /dev/null
+++ b/cpp/test/Ice/library/msbuild/alltests/alltests.vcxproj
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Cpp11-Debug|Win32">
+ <Configuration>Cpp11-Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Debug|x64">
+ <Configuration>Cpp11-Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Release|Win32">
+ <Configuration>Cpp11-Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Release|x64">
+ <Configuration>Cpp11-Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <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>{A9537443-BB6C-4324-B1B9-B9492CAE1CD5}</ProjectGuid>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ <IceBuilderCppProps Condition="!Exists('$(IceBuilderCppProps)')">$([System.IO.Directory]::GetFiles('$(LocalAppData)\Microsoft\VisualStudio\$(VisualStudioVersion)\Extensions', 'IceBuilder.Cpp.props', SearchOption.AllDirectories))</IceBuilderCppProps>
+ <IceBuilderCppTargets Condition="!Exists('$(IceBuilderCppTargets)')">$([System.IO.Directory]::GetFiles('$(LocalAppData)\Microsoft\VisualStudio\$(VisualStudioVersion)\Extensions', 'IceBuilder.Cpp.targets', SearchOption.AllDirectories))</IceBuilderCppTargets>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <Import Project="$(MSBuildThisFileDirectory)\..\..\..\..\..\msbuild\ice.test.props" />
+ <Import Project="$(IceBuilderCppProps)" Condition="Exists('$(IceBuilderCppProps)')" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link />
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\consumer\$(Platform)\$(Configuration);..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\consumer\$(Platform)\$(Configuration);..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\consumer\$(Platform)\$(Configuration);..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\consumer\$(Platform)\$(Configuration);..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\consumer\$(Platform)\$(Configuration);..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\consumer\$(Platform)\$(Configuration);..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\consumer\$(Platform)\$(Configuration);..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\consumer\$(Platform)\$(Configuration);..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\AllTests.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <Import Project="$(IceBuilderCppTargets)" Condition="Exists('$(IceBuilderCppTargets)')" />
+</Project> \ No newline at end of file
diff --git a/cpp/test/Ice/library/msbuild/alltests/alltests.vcxproj.filters b/cpp/test/Ice/library/msbuild/alltests/alltests.vcxproj.filters
new file mode 100644
index 00000000000..c949c0b0d50
--- /dev/null
+++ b/cpp/test/Ice/library/msbuild/alltests/alltests.vcxproj.filters
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="..\..\AllTests.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Slice Files">
+ <UniqueIdentifier>{79c07b70-7757-484b-a4ff-29688a9a7ba0}</UniqueIdentifier>
+ <Extensions>ice</Extensions>
+ </Filter>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/cpp/test/Ice/library/msbuild/client/client.vcxproj b/cpp/test/Ice/library/msbuild/client/client.vcxproj
new file mode 100644
index 00000000000..3b8d3a9c4bd
--- /dev/null
+++ b/cpp/test/Ice/library/msbuild/client/client.vcxproj
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Cpp11-Debug|Win32">
+ <Configuration>Cpp11-Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Debug|x64">
+ <Configuration>Cpp11-Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Release|Win32">
+ <Configuration>Cpp11-Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Release|x64">
+ <Configuration>Cpp11-Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <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>{28347243-F75F-4B28-89F9-7EA84478D9C9}</ProjectGuid>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ <IceBuilderCppProps Condition="!Exists('$(IceBuilderCppProps)')">$([System.IO.Directory]::GetFiles('$(LocalAppData)\Microsoft\VisualStudio\$(VisualStudioVersion)\Extensions', 'IceBuilder.Cpp.props', SearchOption.AllDirectories))</IceBuilderCppProps>
+ <IceBuilderCppTargets Condition="!Exists('$(IceBuilderCppTargets)')">$([System.IO.Directory]::GetFiles('$(LocalAppData)\Microsoft\VisualStudio\$(VisualStudioVersion)\Extensions', 'IceBuilder.Cpp.targets', SearchOption.AllDirectories))</IceBuilderCppTargets>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <Import Project="$(MSBuildThisFileDirectory)\..\..\..\..\..\msbuild\ice.test.props" />
+ <Import Project="$(IceBuilderCppProps)" Condition="Exists('$(IceBuilderCppProps)')" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Link />
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\alltests\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\alltests\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\alltests\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\alltests\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\alltests\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\alltests\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\alltests\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\alltests\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\Client.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <Import Project="$(IceBuilderCppTargets)" Condition="Exists('$(IceBuilderCppTargets)')" />
+</Project> \ No newline at end of file
diff --git a/cpp/test/Ice/library/msbuild/client/client.vcxproj.filters b/cpp/test/Ice/library/msbuild/client/client.vcxproj.filters
new file mode 100644
index 00000000000..90db4f082e3
--- /dev/null
+++ b/cpp/test/Ice/library/msbuild/client/client.vcxproj.filters
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="..\..\Client.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Slice Files">
+ <UniqueIdentifier>{67f8d700-0e36-4742-869f-3042f8ddb0c6}</UniqueIdentifier>
+ <Extensions>ice</Extensions>
+ </Filter>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/cpp/test/Ice/library/msbuild/consumer/consumer.vcxproj b/cpp/test/Ice/library/msbuild/consumer/consumer.vcxproj
new file mode 100644
index 00000000000..69b9d2001ec
--- /dev/null
+++ b/cpp/test/Ice/library/msbuild/consumer/consumer.vcxproj
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Cpp11-Debug|Win32">
+ <Configuration>Cpp11-Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Debug|x64">
+ <Configuration>Cpp11-Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Release|Win32">
+ <Configuration>Cpp11-Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Release|x64">
+ <Configuration>Cpp11-Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <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>{73C0E333-6476-4B7E-A52D-AB5E9CA36906}</ProjectGuid>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ <IceBuilderCppProps Condition="!Exists('$(IceBuilderCppProps)')">$([System.IO.Directory]::GetFiles('$(LocalAppData)\Microsoft\VisualStudio\$(VisualStudioVersion)\Extensions', 'IceBuilder.Cpp.props', SearchOption.AllDirectories))</IceBuilderCppProps>
+ <IceBuilderCppTargets Condition="!Exists('$(IceBuilderCppTargets)')">$([System.IO.Directory]::GetFiles('$(LocalAppData)\Microsoft\VisualStudio\$(VisualStudioVersion)\Extensions', 'IceBuilder.Cpp.targets', SearchOption.AllDirectories))</IceBuilderCppTargets>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <Import Project="$(MSBuildThisFileDirectory)\..\..\..\..\..\msbuild\ice.test.props" />
+ <Import Project="$(IceBuilderCppProps)" Condition="Exists('$(IceBuilderCppProps)')" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link />
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalLibraryDirectories>..\..\msbuild\gencode\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\Consumer.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <Import Project="$(IceBuilderCppTargets)" Condition="Exists('$(IceBuilderCppTargets)')" />
+</Project> \ No newline at end of file
diff --git a/cpp/test/Ice/library/msbuild/consumer/consumer.vcxproj.filters b/cpp/test/Ice/library/msbuild/consumer/consumer.vcxproj.filters
new file mode 100644
index 00000000000..837dac706bf
--- /dev/null
+++ b/cpp/test/Ice/library/msbuild/consumer/consumer.vcxproj.filters
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="..\..\Consumer.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="Slice Files">
+ <UniqueIdentifier>{1e06ab75-86c9-41ab-b22f-43bf4e4d9394}</UniqueIdentifier>
+ <Extensions>ice</Extensions>
+ </Filter>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/cpp/test/Ice/library/msbuild/gencode/gencode.vcxproj b/cpp/test/Ice/library/msbuild/gencode/gencode.vcxproj
new file mode 100644
index 00000000000..6be5c75446a
--- /dev/null
+++ b/cpp/test/Ice/library/msbuild/gencode/gencode.vcxproj
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Cpp11-Debug|Win32">
+ <Configuration>Cpp11-Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Debug|x64">
+ <Configuration>Cpp11-Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Release|Win32">
+ <Configuration>Cpp11-Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Cpp11-Release|x64">
+ <Configuration>Cpp11-Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <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>{2454F754-3A55-4875-9D8E-57B63673C231}</ProjectGuid>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ <IceBuilderCppProps Condition="!Exists('$(IceBuilderCppProps)')">$([System.IO.Directory]::GetFiles('$(LocalAppData)\Microsoft\VisualStudio\$(VisualStudioVersion)\Extensions', 'IceBuilder.Cpp.props', SearchOption.AllDirectories))</IceBuilderCppProps>
+ <IceBuilderCppTargets Condition="!Exists('$(IceBuilderCppTargets)')">$([System.IO.Directory]::GetFiles('$(LocalAppData)\Microsoft\VisualStudio\$(VisualStudioVersion)\Extensions', 'IceBuilder.Cpp.targets', SearchOption.AllDirectories))</IceBuilderCppTargets>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <Import Project="$(MSBuildThisFileDirectory)\..\..\..\..\..\msbuild\ice.test.props" />
+ <Import Project="$(IceBuilderCppProps)" Condition="Exists('$(IceBuilderCppProps)')" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <PropertyGroup Label="IceBuilder">
+ <IceBuilderDLLExport>LIBRARY_TEST_API</IceBuilderDLLExport>
+ </PropertyGroup>
+ <ItemGroup>
+ <IceBuilder Include="..\..\Test.ice" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="Win32\Cpp11-Debug\Test.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="Win32\Cpp11-Release\Test.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="Win32\Debug\Test.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="Win32\Release\Test.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="x64\Cpp11-Debug\Test.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="x64\Cpp11-Release\Test.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="x64\Debug\Test.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="x64\Release\Test.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="Win32\Cpp11-Debug\Test.h">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="Win32\Cpp11-Release\Test.h">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="Win32\Debug\Test.h">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="Win32\Release\Test.h">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="x64\Cpp11-Debug\Test.h">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="x64\Cpp11-Release\Test.h">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="x64\Debug\Test.h">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClInclude>
+ <ClInclude Include="x64\Release\Test.h">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Cpp11-Release|Win32'">true</ExcludedFromBuild>
+ </ClInclude>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <Import Project="$(IceBuilderCppTargets)" Condition="Exists('$(IceBuilderCppTargets)')" />
+</Project> \ No newline at end of file
diff --git a/cpp/test/Ice/library/msbuild/gencode/gencode.vcxproj.filters b/cpp/test/Ice/library/msbuild/gencode/gencode.vcxproj.filters
new file mode 100644
index 00000000000..caaa718d0d5
--- /dev/null
+++ b/cpp/test/Ice/library/msbuild/gencode/gencode.vcxproj.filters
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Slice Files">
+ <UniqueIdentifier>{429ccb0e-4b98-427a-b77d-adf9ae0b1ff4}</UniqueIdentifier>
+ <Extensions>ice</Extensions>
+ </Filter>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{a4d3f2a6-1ad2-4c10-af7b-7996fa201172}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{7b11a0db-ee90-4370-8409-8fb9c70dcd71}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\x64">
+ <UniqueIdentifier>{588f377a-ccd8-4bcf-b0b5-553fae10cf8e}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\x64\Cpp11-Debug">
+ <UniqueIdentifier>{092cb079-d312-4a87-92cc-1af853a509ae}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\x64">
+ <UniqueIdentifier>{08b13aba-df48-4ffa-ac43-7c6125af7f17}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\x64\Cpp11-Debug">
+ <UniqueIdentifier>{64f3eba0-5d62-4212-a36d-151d76182345}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\Win32">
+ <UniqueIdentifier>{48304773-4b2e-49a5-b409-eb08eb34e153}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\Win32\Cpp11-Debug">
+ <UniqueIdentifier>{f5a3bcb4-07ac-47bc-b1f1-c2aa0d5b079d}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\Win32">
+ <UniqueIdentifier>{2a3c5ab8-7dff-400f-8572-bd2f10ca4bcb}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\Win32\Cpp11-Debug">
+ <UniqueIdentifier>{44af8f72-3abb-426d-bdb0-5c68006c1d60}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\x64\Debug">
+ <UniqueIdentifier>{90dda4ef-7c8b-469b-8e27-4c8100ec4a20}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\x64\Debug">
+ <UniqueIdentifier>{baf88a65-fdbf-4a52-99f3-e7f815c849fb}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\Win32\Debug">
+ <UniqueIdentifier>{0607a845-a6cd-45bc-ae85-6915fefa3aef}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\Win32\Debug">
+ <UniqueIdentifier>{58d937ee-2f18-4beb-b84e-7cb6723c2772}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\x64\Release">
+ <UniqueIdentifier>{690d6b17-c238-4849-aeb0-5cf3775af48d}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\x64\Release">
+ <UniqueIdentifier>{235cb50b-b0ac-4367-bade-1fcab9936eb0}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\Win32\Release">
+ <UniqueIdentifier>{1ad58578-706c-46d3-a533-896757cf262c}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\Win32\Release">
+ <UniqueIdentifier>{ba0a0e38-fc4d-447f-a517-002e47ed7019}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\x64\Cpp11-Release">
+ <UniqueIdentifier>{2ef96c2c-d9ea-4e90-9170-ba02f6187107}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\x64\Cpp11-Release">
+ <UniqueIdentifier>{cf729630-d56d-49de-af02-eaac1a4c8437}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\Win32\Cpp11-Release">
+ <UniqueIdentifier>{714c33cf-bc69-4ed1-85fe-bdd644d53692}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\Win32\Cpp11-Release">
+ <UniqueIdentifier>{ffaee417-1fd2-48f5-9c30-12cb395ae94b}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <IceBuilder Include="..\..\Test.ice">
+ <Filter>Slice Files</Filter>
+ </IceBuilder>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="Win32\Cpp11-Debug\Test.cpp" />
+ <ClCompile Include="Win32\Cpp11-Release\Test.cpp" />
+ <ClCompile Include="Win32\Debug\Test.cpp" />
+ <ClCompile Include="Win32\Release\Test.cpp" />
+ <ClCompile Include="x64\Cpp11-Debug\Test.cpp" />
+ <ClCompile Include="x64\Cpp11-Release\Test.cpp" />
+ <ClCompile Include="x64\Debug\Test.cpp" />
+ <ClCompile Include="x64\Release\Test.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="Win32\Cpp11-Debug\Test.h" />
+ <ClInclude Include="Win32\Cpp11-Release\Test.h" />
+ <ClInclude Include="Win32\Debug\Test.h" />
+ <ClInclude Include="Win32\Release\Test.h" />
+ <ClInclude Include="x64\Cpp11-Debug\Test.h" />
+ <ClInclude Include="x64\Cpp11-Release\Test.h" />
+ <ClInclude Include="x64\Debug\Test.h" />
+ <ClInclude Include="x64\Release\Test.h" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/cpp/test/Ice/library/run.py b/cpp/test/Ice/library/run.py
new file mode 100644
index 00000000000..da3317138ad
--- /dev/null
+++ b/cpp/test/Ice/library/run.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+# **********************************************************************
+#
+# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
+#
+# This copy of Ice is licensed to you under the terms described in the
+# ICE_LICENSE file included in this distribution.
+#
+# **********************************************************************
+
+import os, sys
+
+path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ]
+head = os.path.dirname(sys.argv[0])
+if len(head) > 0:
+ path = [os.path.join(head, p) for p in path]
+path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ]
+if len(path) == 0:
+ raise RuntimeError("can't find toplevel directory!")
+sys.path.append(os.path.join(path[0], "scripts"))
+import TestUtil
+
+TestUtil.addAdditionalBinDirectories([os.path.join(os.getcwd(), TestUtil.getTestDirectory("gencode"))])
+TestUtil.addAdditionalBinDirectories([os.path.join(os.getcwd(), TestUtil.getTestDirectory("consumer"))])
+TestUtil.addAdditionalBinDirectories([os.path.join(os.getcwd(), TestUtil.getTestDirectory("alltests"))])
+
+client = os.path.join(os.getcwd(), TestUtil.getTestExecutable("client"))
+
+TestUtil.simpleTest(client)
diff --git a/cpp/test/Ice/stringConverter/Client.cpp b/cpp/test/Ice/stringConverter/Client.cpp
index 0d3097651be..4a8e7027aea 100644
--- a/cpp/test/Ice/stringConverter/Client.cpp
+++ b/cpp/test/Ice/stringConverter/Client.cpp
@@ -24,6 +24,7 @@ main(int argc, char* argv[])
{
#ifdef ICE_STATIC_LIBS
Ice::registerIceSSL();
+ Ice::registerIceStringConverter();
#endif
Ice::InitializationData initData;