Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
3.1.1
-
None
-
All
Description
The header files in the binary distributions for various platforms currently vary, containing some platform-specific files that are not included on other platforms. For example, some headers for Mac OS X are not included in the Windows distributions. This gets in the way when using Xerces from a multi-platform project.
I suggest that you create the union of all the headers, and include the same set with all binary distributions. The only really troublesome one that overlaps the platforms is util/Xerces_autoconf_config.hpp. I suggest that you do as I did. I moved each one into a platform-specific subdirectory, and created a new version of the file that uses conditional compilations as follows (using some symbols defined by our project):
#if !defined(_I86_) #error "Must customize util/Xerces_autoconf_config.hpp for architecture." #endif #if defined(__WIN32__) && defined(__MICROSOFT__) #include "xercesc/util/Win32/Xerces_autoconf_config.hpp" #elif defined(_MACINTOSH_) && defined(__GNUC__) #include "xercesc/util/Mac/Xerces_autoconf_config.hpp" #elif defined(_UNIX_) && defined(__GNUC__) #include "xercesc/util/Linux/Xerces_autoconf_config.hpp" #else #error "Must customize util/Xerces_autoconf_config.hpp for OS & compiler." #endif