
When building Boost for C++ Builder 6 and Boost 1.32, the serialization libray fails to build. The reason for this is that it attempts to use the latest Spirit header files and this does not support C++ Builder 6. What makes this doubly annoying is that the only reason that serialization needs to use Spirit is to support XML serialization. So even if I will never be using serialization for XML serialization, but will use it for the more mainstream binary serialization, I can not use this library with C++ Builder 6. Clearly this is a case for a built library to be split up into sub-libraries, so that there would be a built serialization library supporting binary serialization, which would not be dependent on Spirit, and a built serialization library supporting XML serialization, which would be dependent on Spirit. In this case I would be able to build the library that did not depend on Spirit for C++ Builder and I would not care, if I never used XML serialization, whether or not the library that was built to support XML serialization could be built for C++ Builder 6. In the serialization documentation it says that one can build serialization so that it can be used with C++ Builder 6 by downloading the standalone version of Spirit 1.6, installing that, and setting the SPIRIT_ROOT environment variable to the directory where Spirit 1.6 is installed. Despite having done this, any attempt to build serialization for C++ Builder 6 ends with error messages showing that header files for Spirit in the main Boost directory, rather in the Spirit 1.6 directory, are being used in the process to build the serialization library. The error message comes from spirit/core/config.hpp in my Boost 1.32 directory tree that C++ Builder 6 is not supported. In the Spirit 1.6 distribution there is no spirit/core/config.h. While I understand that a particular library may not want to support a particular compiler/version because that compiler is deficient in the C++ standard requirments to support that library, I feel that if a library is marked as supporting a compiler/version it should do so. In the case of serialization in Boost 1.32 it is marked as supporting C++ Builder 6 when clearly it does not according to my efforts.