NOTE: This description is somewhat outdated because a new implementation of the build system to cmake* and a porting to unix systems is already implemented and will be released. Please see https://svn.code.sf.net/p/open-gps/code/ISO5436_XML/branches/Kohler_LinuxPort for the current version *
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:
Probably the use of the
<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
Hello,
What is the status of the note "this description is somewhat outdated because a new implementation of the build system to cmake and a porting to unix systems is already implemented and will be released"?
I want to implement this project in unix platforms, if is possible, but I can't see this implementation in the source code.
Thanks in advance.
Please see updated text at the beginning of the article.
Ok, thanks. I will review it.