summaryrefslogtreecommitdiff
path: root/cpp/src/IceXML
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceXML')
-rwxr-xr-xcpp/src/IceXML/.depend.mak10
-rw-r--r--cpp/src/IceXML/.gitignore5
-rw-r--r--cpp/src/IceXML/IceXML.rc41
-rw-r--r--cpp/src/IceXML/Makefile41
-rw-r--r--cpp/src/IceXML/Makefile.mak59
-rw-r--r--cpp/src/IceXML/Makefile.mk17
-rw-r--r--cpp/src/IceXML/Parser.cpp55
-rw-r--r--cpp/src/IceXML/Parser.h41
-rw-r--r--cpp/src/IceXML/msbuild/icexml.vcxproj113
-rw-r--r--cpp/src/IceXML/msbuild/icexml.vcxproj.filters35
-rw-r--r--cpp/src/IceXML/msbuild/packages.config6
11 files changed, 255 insertions, 168 deletions
diff --git a/cpp/src/IceXML/.depend.mak b/cpp/src/IceXML/.depend.mak
deleted file mode 100755
index 3d66f0fd053..00000000000
--- a/cpp/src/IceXML/.depend.mak
+++ /dev/null
@@ -1,10 +0,0 @@
-
-Parser.obj: \
- Parser.cpp \
- "Parser.h" \
- "$(includedir)\IceUtil\Shared.h" \
- "$(includedir)\IceUtil\Config.h" \
- "$(includedir)\IceUtil\Atomic.h" \
- "$(includedir)\IceUtil\Handle.h" \
- "$(includedir)\IceUtil\Exception.h" \
- "..\..\src\IceUtil\FileUtil.h" \
diff --git a/cpp/src/IceXML/.gitignore b/cpp/src/IceXML/.gitignore
deleted file mode 100644
index 720f44c7047..00000000000
--- a/cpp/src/IceXML/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-// Generated by makegitignore.py
-
-// IMPORTANT: Do not edit this file -- any edits made here will be lost!
-.depend
-.depend
diff --git a/cpp/src/IceXML/IceXML.rc b/cpp/src/IceXML/IceXML.rc
index 644c1df9e73..f10ae1a8e1a 100644
--- a/cpp/src/IceXML/IceXML.rc
+++ b/cpp/src/IceXML/IceXML.rc
@@ -1,34 +1,29 @@
-#include "winver.h"
+#include<IceUtil/ResourceConfig.h>
+
+#define ICE_INTERNALNAME ICE_LIBNAME("icexml") "\0"
+#define ICE_ORIGINALFILENAME ICE_LIBNAME("icexml") ".dll\0"
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 3,6,3,0
- PRODUCTVERSION 3,6,3,0
- FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
-#ifdef _DEBUG
- FILEFLAGS VS_FF_DEBUG
- #define INTERNALNAME "icexml36d\0"
- #define ORIGINALFILENAME "icexml36d.dll\0"
-#else
- FILEFLAGS 0x0L
- #define INTERNALNAME "icexml36\0"
- #define ORIGINALFILENAME "icexml36.dll\0"
-#endif
- FILEOS 0x4L
- FILETYPE VFT_DLL
- FILESUBTYPE 0x0L
+FILEVERSION ICE_VERSION
+PRODUCTVERSION ICE_VERSION
+FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+FILEOS VOS_NT_WINDOWS32
+FILETYPE VFT_DLL
+FILESUBTYPE VFT2_UNKNOWN
+FILEFLAGS VER_DEBUG
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904e4"
BEGIN
- VALUE "CompanyName", "ZeroC, Inc.\0"
+ VALUE "CompanyName", ICE_COMPANY_NAME
VALUE "FileDescription", "IceXML C++ Library\0"
- VALUE "FileVersion", "3.6.3\0"
- VALUE "InternalName", INTERNALNAME
- VALUE "LegalCopyright", "\251 2003-2016 ZeroC, Inc.\0"
- VALUE "OriginalFilename", ORIGINALFILENAME
- VALUE "ProductName", "Ice\0"
- VALUE "ProductVersion", "3.6.3\0"
+ VALUE "FileVersion", ICE_STRING_VERSION
+ VALUE "InternalName", ICE_INTERNALNAME
+ VALUE "LegalCopyright", ICE_COPYRIGHT
+ VALUE "OriginalFilename", ICE_ORIGINALFILENAME
+ VALUE "ProductName", ICE_PRODUCT_NAME
+ VALUE "ProductVersion", ICE_STRING_VERSION
END
END
BLOCK "VarFileInfo"
diff --git a/cpp/src/IceXML/Makefile b/cpp/src/IceXML/Makefile
deleted file mode 100644
index f37efa04259..00000000000
--- a/cpp/src/IceXML/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# **********************************************************************
-#
-# Copyright (c) 2003-2017 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.
-#
-# **********************************************************************
-
-top_srcdir = ../..
-
-LIBFILENAME = $(call mklibfilename,IceXML,$(VERSION))
-SONAME = $(call mksoname,IceXML,$(SOVERSION))
-LIBNAME = $(call mklibname,IceXML)
-
-TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)$(cpp11libdirsuffix)/$(LIBNAME))
-
-OBJS = Parser.o
-
-include $(top_srcdir)/config/Make.rules
-
-CPPFLAGS := -I.. $(CPPFLAGS) -DICE_XML_API_EXPORTS $(EXPAT_FLAGS)
-
-LINKWITH := -lIceUtil $(EXPAT_LIBS)
-
-$(libdir)/$(LIBFILENAME): $(OBJS)
- @mkdir -p $(dir $@)
- rm -f $@
- $(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
-
-$(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
- rm -f $@
- ln -s $(LIBFILENAME) $@
-
-$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
- @mkdir -p $(libdir)$(cpp11libdirsuffix)
- rm -f $@
- ln -s $(cpp11sonamedir)$(SONAME) $@
-
-install:: all
- $(call installlib,$(DESTDIR)$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME))
diff --git a/cpp/src/IceXML/Makefile.mak b/cpp/src/IceXML/Makefile.mak
deleted file mode 100644
index a2bfc997ee5..00000000000
--- a/cpp/src/IceXML/Makefile.mak
+++ /dev/null
@@ -1,59 +0,0 @@
-# **********************************************************************
-#
-# Copyright (c) 2003-2017 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.
-#
-# **********************************************************************
-
-top_srcdir = ..\..
-
-LIBNAME = $(top_srcdir)\lib\icexml$(LIBSUFFIX).lib
-DLLNAME = $(top_srcdir)\bin\icexml$(SOVERSION)$(LIBSUFFIX)$(COMPSUFFIX).dll
-
-TARGETS = $(LIBNAME) $(DLLNAME)
-
-OBJS = .\Parser.obj
-
-SRCS = $(OBJS:.obj=.cpp)
-
-!include $(top_srcdir)/config/Make.rules.mak
-
-$(OBJS) : $(EXPAT_NUPKG)
-
-CPPFLAGS = -I.. $(CPPFLAGS) -DICE_XML_API_EXPORTS -DWIN32_LEAN_AND_MEAN $(EXPAT_CPPFLAGS)
-
-LINKWITH = $(EXPAT_LIBS) $(BASELIBS)
-
-!if "$(GENERATE_PDB)" == "yes"
-PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb)
-!endif
-
-RES_FILE = IceXML.res
-
-$(LIBNAME): $(DLLNAME)
-
-$(DLLNAME): $(OBJS) IceXML.res
- $(LINK) $(BASE):0x23000000 $(LD_DLLFLAGS) $(EXPAT_LDFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE)
- move $(DLLNAME:.dll=.lib) $(LIBNAME)
- @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
- $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
- @if exist $(DLLNAME:.dll=.exp) del /q $(DLLNAME:.dll=.exp)
- @if defined SIGN_CERTIFICATE echo ^ ^ ^ Signing $@ && \
- signtool sign /f "$(SIGN_CERTIFICATE)" /p $(SIGN_PASSWORD) /t $(SIGN_TIMESTAMPSERVER) $@
-
-clean::
- -del /q IceXML.res
-
-install:: all
- copy $(LIBNAME) "$(install_libdir)"
- copy $(DLLNAME) "$(install_bindir)"
-
-
-!if "$(GENERATE_PDB)" == "yes"
-
-install:: all
- copy $(DLLNAME:.dll=.pdb) "$(install_bindir)"
-
-!endif
diff --git a/cpp/src/IceXML/Makefile.mk b/cpp/src/IceXML/Makefile.mk
new file mode 100644
index 00000000000..9ae2b289624
--- /dev/null
+++ b/cpp/src/IceXML/Makefile.mk
@@ -0,0 +1,17 @@
+# **********************************************************************
+#
+# 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.
+#
+# **********************************************************************
+
+$(project)_libraries := IceXML
+
+IceXML_targetdir := $(libdir)
+IceXML_dependencies := Ice
+IceXML_cppflags := -DICE_XML_API_EXPORTS
+IceXML_libs := expat
+
+projects += $(project)
diff --git a/cpp/src/IceXML/Parser.cpp b/cpp/src/IceXML/Parser.cpp
index fa83836a6c2..ed50f2bc6ee 100644
--- a/cpp/src/IceXML/Parser.cpp
+++ b/cpp/src/IceXML/Parser.cpp
@@ -11,6 +11,7 @@
#include <IceUtil/FileUtil.h>
#include <expat.h>
#include <list>
+#include <fstream>
using namespace std;
using namespace IceXML;
@@ -19,25 +20,25 @@ using namespace IceXML;
// ParserException
//
IceXML::ParserException::ParserException(const string& reason) :
- IceUtil::Exception(), _reason(reason)
+ _reason(reason)
{
}
IceXML::ParserException::ParserException(const char* file, int line, const string& reason) :
- IceUtil::Exception(file, line), _reason(reason)
+ IceUtil::ExceptionHelper<ParserException>(file, line), _reason(reason)
{
}
+#ifndef ICE_CPP11_COMPILER
IceXML::ParserException::~ParserException() throw()
{
}
-
-const char* IceXML::ParserException::_name = "IceXML::ParserException";
+#endif
string
-IceXML::ParserException::ice_name() const
+IceXML::ParserException::ice_id() const
{
- return _name;
+ return "::IceXML::ParserException";
}
void
@@ -54,17 +55,13 @@ IceXML::ParserException::ice_print(std::ostream& out) const
}
}
+#ifndef ICE_CPP11_MAPPING
IceXML::ParserException*
IceXML::ParserException::ice_clone() const
{
return new ParserException(*this);
}
-
-void
-IceXML::ParserException::ice_throw() const
-{
- throw *this;
-}
+#endif
string
IceXML::ParserException::reason() const
@@ -126,6 +123,12 @@ IceXML::Node::addChild(const NodePtr&)
return false;
}
+void
+IceXML::Node::destroy()
+{
+ _parent = 0;
+}
+
int
IceXML::Node::getLine() const
{
@@ -181,6 +184,16 @@ IceXML::Element::addChild(const NodePtr& child)
return true;
}
+void
+IceXML::Element::destroy()
+{
+ Node::destroy();
+ for(NodeList::iterator p = _children.begin(); p != _children.end(); ++p)
+ {
+ (*p)->destroy();
+ }
+}
+
//
// Text
//
@@ -218,6 +231,16 @@ IceXML::Document::addChild(const NodePtr& child)
return true;
}
+void
+IceXML::Document::destroy()
+{
+ Node::destroy();
+ for(NodeList::iterator p = _children.begin(); p != _children.end(); ++p)
+ {
+ (*p)->destroy();
+ }
+}
+
//
// Handler
//
@@ -242,6 +265,7 @@ namespace IceXML
class DocumentBuilder : public Handler
{
public:
+
DocumentBuilder();
virtual void startElement(const string&, const Attributes&, int, int);
@@ -251,6 +275,7 @@ public:
DocumentPtr getDocument() const;
private:
+
list<NodePtr> _nodeStack;
DocumentPtr _document;
};
@@ -371,7 +396,7 @@ IceXML::Parser::parse(istream& in)
void
IceXML::Parser::parse(const string& file, Handler& handler) // The given filename must be UTF-8 encoded
{
- IceUtilInternal::ifstream in(file);
+ ifstream in(IceUtilInternal::streamFilename(file).c_str());
if(!in.good())
{
ostringstream out;
@@ -384,7 +409,7 @@ IceXML::Parser::parse(const string& file, Handler& handler) // The given filenam
void
IceXML::Parser::parse(istream& in, Handler& handler)
{
- XML_Parser parser = XML_ParserCreate(NULL);
+ XML_Parser parser = XML_ParserCreate(ICE_NULLPTR);
CallbackData cb;
cb.parser = parser;
cb.handler = &handler;
@@ -405,7 +430,7 @@ IceXML::Parser::parse(istream& in, Handler& handler)
}
if(XML_Parse(parser, buff, static_cast<int>(in.gcount()), isFinal) != 1)
{
- handler.error(XML_ErrorString(XML_GetErrorCode(parser)),
+ handler.error(XML_ErrorString(XML_GetErrorCode(parser)),
static_cast<int>(XML_GetCurrentLineNumber(parser)),
static_cast<int>(XML_GetCurrentColumnNumber(parser)));
return;
diff --git a/cpp/src/IceXML/Parser.h b/cpp/src/IceXML/Parser.h
index a59413c984e..582d1f209ad 100644
--- a/cpp/src/IceXML/Parser.h
+++ b/cpp/src/IceXML/Parser.h
@@ -18,48 +18,45 @@
#include <map>
#ifndef ICE_XML_API
-# ifdef ICE_XML_API_EXPORTS
-# define ICE_XML_API ICE_DECLSPEC_EXPORT
-# elif defined(ICE_STATIC_LIBS)
+# if defined(ICE_STATIC_LIBS)
# define ICE_XML_API /**/
+# elif defined(ICE_XML_API_EXPORTS)
+# define ICE_XML_API ICE_DECLSPEC_EXPORT
# else
# define ICE_XML_API ICE_DECLSPEC_IMPORT
# endif
#endif
//
-// Automatically link IceXML[D].lib with Visual C++
+// Automatically link IceXML[D|++11|++11D].lib with Visual C++
//
#if !defined(ICE_BUILDING_ICE_XML) && defined(ICE_XML_API_EXPORTS)
# define ICE_BUILDING_ICE_XML
#endif
-#ifdef _MSC_VER
-# if !defined(ICE_BUILDING_ICE_XML)
-# if defined(_DEBUG) && !defined(ICE_OS_WINRT)
-# pragma comment(lib, "IceXMLD.lib")
-# else
-# pragma comment(lib, "IceXML.lib")
-# endif
-# endif
+#if defined(_MSC_VER) && !defined(ICE_BUILDING_ICE_XML)
+# pragma comment(lib, ICE_LIBNAME("IceXML"))
#endif
namespace IceXML
{
-class ICE_XML_API ParserException : public IceUtil::Exception
+class ICE_XML_API ParserException : public IceUtil::ExceptionHelper<ParserException>
{
public:
ParserException(const std::string&);
ParserException(const char*, int, const std::string&);
+#ifndef ICE_CPP11_COMPILER
virtual ~ParserException() throw();
+#endif
- virtual std::string ice_name() const;
+ virtual std::string ice_id() const;
virtual void ice_print(std::ostream&) const;
+#ifndef ICE_CPP11_MAPPING
virtual ParserException* ice_clone() const;
- virtual void ice_throw() const;
+#endif
std::string reason() const;
@@ -88,6 +85,7 @@ typedef std::map<std::string, std::string> Attributes;
class ICE_XML_API Node : public IceUtil::Shared
{
public:
+
virtual ~Node();
virtual NodePtr getParent() const;
@@ -99,10 +97,13 @@ public:
virtual bool addChild(const NodePtr&);
+ virtual void destroy();
+
int getLine() const;
int getColumn() const;
protected:
+
Node(const NodePtr&, const std::string&, const std::string&, int, int);
NodePtr _parent;
@@ -115,6 +116,7 @@ protected:
class ICE_XML_API Element : public Node
{
public:
+
Element(const NodePtr&, const std::string&, const Attributes&, int, int);
virtual ~Element();
@@ -124,7 +126,10 @@ public:
virtual bool addChild(const NodePtr&);
+ virtual void destroy();
+
private:
+
NodeList _children;
Attributes _attributes;
};
@@ -132,6 +137,7 @@ private:
class ICE_XML_API Text : public Node
{
public:
+
Text(const NodePtr&, const std::string&, int, int);
virtual ~Text();
};
@@ -139,6 +145,7 @@ public:
class ICE_XML_API Document : public Node
{
public:
+
Document();
virtual ~Document();
@@ -146,13 +153,17 @@ public:
virtual bool addChild(const NodePtr&);
+ virtual void destroy();
+
private:
+
NodeList _children;
};
class ICE_XML_API Handler
{
public:
+
virtual ~Handler();
virtual void startElement(const std::string&, const Attributes&, int, int) = 0;
diff --git a/cpp/src/IceXML/msbuild/icexml.vcxproj b/cpp/src/IceXML/msbuild/icexml.vcxproj
new file mode 100644
index 00000000000..56fa12b3c08
--- /dev/null
+++ b/cpp/src/IceXML/msbuild/icexml.vcxproj
@@ -0,0 +1,113 @@
+<?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="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>{90EC26E8-AFFA-4E44-B068-AB5849A96FDD}</ProjectGuid>
+ <RootNamespace>IceXML</RootNamespace>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </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)'=='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)'=='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.cpp98.props" />
+ <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 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 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 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>
+ <PropertyGroup Label="UserMacros" />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PreprocessorDefinitions>ICE_XML_API_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PreprocessorDefinitions>ICE_XML_API_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PreprocessorDefinitions>ICE_XML_API_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PreprocessorDefinitions>ICE_XML_API_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\IceXML.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\Parser.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\Parser.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ <Import Project="..\..\..\msbuild\packages\expat.v120.2.1.0.3\build\native\expat.v120.targets" Condition="Exists('..\..\..\msbuild\packages\expat.v120.2.1.0.3\build\native\expat.v120.targets')" />
+ <Import Project="..\..\..\msbuild\packages\expat.v140.2.1.0.3\build\native\expat.v140.targets" Condition="Exists('..\..\..\msbuild\packages\expat.v140.2.1.0.3\build\native\expat.v140.targets')" />
+ <Import Project="..\..\..\msbuild\packages\expat.v141.2.1.0.3\build\native\expat.v141.targets" Condition="Exists('..\..\..\msbuild\packages\expat.v141.2.1.0.3\build\native\expat.v141.targets')" />
+ </ImportGroup>
+ <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\expat.v120.2.1.0.3\build\native\expat.v120.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\msbuild\packages\expat.v120.2.1.0.3\build\native\expat.v120.targets'))" />
+ <Error Condition="!Exists('..\..\..\msbuild\packages\expat.v140.2.1.0.3\build\native\expat.v140.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\msbuild\packages\expat.v140.2.1.0.3\build\native\expat.v140.targets'))" />
+ <Error Condition="!Exists('..\..\..\msbuild\packages\expat.v141.2.1.0.3\build\native\expat.v141.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\msbuild\packages\expat.v141.2.1.0.3\build\native\expat.v141.targets'))" />
+ </Target>
+ <Import Project="$(MSBuildThisFileDirectory)..\..\..\..\config\ice.sign.targets" />
+</Project> \ No newline at end of file
diff --git a/cpp/src/IceXML/msbuild/icexml.vcxproj.filters b/cpp/src/IceXML/msbuild/icexml.vcxproj.filters
new file mode 100644
index 00000000000..966b3af508d
--- /dev/null
+++ b/cpp/src/IceXML/msbuild/icexml.vcxproj.filters
@@ -0,0 +1,35 @@
+<?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>{B2CAEB3D-292E-4D15-BE8D-81752E1216EE}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{E314B504-D1B6-4103-802C-33965B372BB3}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{29D7A229-D89B-4362-9692-F740D841B87F}</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>
+ <ResourceCompile Include="..\IceXML.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\Parser.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\Parser.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/cpp/src/IceXML/msbuild/packages.config b/cpp/src/IceXML/msbuild/packages.config
new file mode 100644
index 00000000000..9e37df47d65
--- /dev/null
+++ b/cpp/src/IceXML/msbuild/packages.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="expat.v120" version="2.1.0.3" targetFramework="native" />
+ <package id="expat.v140" version="2.1.0.3" targetFramework="native" />
+ <package id="expat.v141" version="2.1.0.3" targetFramework="native" />
+</packages> \ No newline at end of file