This document briefly describes how the X3P Library should be portable to other operating systems and computing platforms. Porting is necessary due to the lack of standardized I/O functions, e.g. opening/closing a file handle, and because of different hardware architectures, e.g. less/big-endianess of a specific processor type.
This lists the necessary steps when adding support for a new operating system. The final goal is to come up with something analogous to the /trunk/src/ISO5436_2_XML/cxx/win32_environemt.{h,c}xx files that adapts to the operating system to be added.
Hopefully this is everything you need to do, but possibly you will encounter problems:
<tchar.h>
include may cause minor problems, specifically the use of the
_T("...")
macro within the code, but the macro can easily be duplicated and copied into our own files.
* Unicode strings when streamed to std::cout may cause problems. Especially the Info class (there may be other locations) streams string data directly to
std::cout
. On Microsoft Windows std:cout is always treated as an ANSI stream even if the compiler has the UNICODE macro set. Therefore all string data is converted using String::ToChar method before it is streamed. Other operating systems may provide a unicode std::cout.
* The xsd tool from CodeSynthesis used for generating the XML serialization class may produce slightly different code on the new platform.
The current build system is solely based on a Microsoft Visual Studio solution file. To support other operating systems than Microsoft Windows this has to be ported to cmake before the library itself can be ported.
Anonymous