Details
Description
It should be possible to build Xerces as a static Mach-O library using the BSD C headers instead of the MSL C Headers. With the latest source code distribution, this is not possible. It can, however, be done by making two small changes to the source.
The changes I made may not be the best way to accomplish this goal. My interest is in touching as few files as possible to get the Mach-O libary to build. Other parties may be interested in doing it right.
Here is the diff to MacOSDefs.hpp:
[tpatton@TPatton_Mac TMXL]\$ p4 diff /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp#4 /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp#3
/Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp#4 - file(s) up-to-date.
==== //depot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp#3 - /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp ====
77a78,109
> //-- Creo Change 8/24/04
> // [ tpatton ]
> //
> // Code in <xercesc/util/platforms/MacOS/> expects some function and types
> // to be in the std:: namespace, which is where the MSL C headers put them.
> // However, the BSD header put them in global namesapce. If we're using
> // the BSD C headers, move them into std:: namespace.
>
> #if defined( _MACH_ ) && ! _MSL_USING_MW_C_HEADERS
>
> #include <cstring>
>
> namespace std
> {
> typedef unsigned long size_t;
> using ::memcpy;
> using ::memmove;
> using ::strlen;
> using ::wint_t;
>
> //-- towupper() is a macro defined in <wctype.h>
>
> static wint_t towupper(wint_t wc )
>
> }
>
> #endif
>
> //-- END Creo change.
>
[tpatton@TPatton_Mac TMXL]\$
and here is the diff to MacOSUnicodeConverter.cpp:
[tpatton@TPatton_Mac TMXL]\$ p4 diff /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp#3
/Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp - file(s) not opened on this client.
==== //depot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp#3 - /Users/tpatton/PerforceDepot/workspace.tobias_patton/oem/xerces-c/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp ====
73c73,80
< #include <cwctype>
—
>
> //-- Creo Change 8/24/04
> // [ tpatton ]
> #if _MSL_USING_MW_C_HEADERS
> #include <cwctype>
> #endif
> //
> // END Creo Change
[tpatton@TPatton_Mac TMXL]\$