So far here is what I understand from Murray's proposal:
Proposed changes to be made in the Xerces-C Project
=====================================
1. Xerces-C source code: all #include insides the headers (e.g. DOMParser.hpp) and
the source files (e.g. DOMParser.cpp) will be modified with 'xercesc' added, e.g.
#include <xercesc/dom/DOM.hpp>
And the samples, build instruction, perl script, Makefiles, project files that part of
the Xerces-C will all be modified together.
2. Binary distribution: include folder rename from $XERCESCROOT/include/<subfolders>
to $XERCESCROOT/include/xercesc/<subfolders>
3. CVS tree and thus source distribution: src folder rename from
$XERCESCROOT/src/<subfolders> to $XERCESCROOT/xercesc/<subfolders>
For the solution to work for ALL different builds (windows or unix build; build from
CVS directly or build from binary distribution or build from source distribution), all
3 of the above must all be done,
we cannot just do # 1 and #3 without doing #2, nor just #1 and #2 without doing #3.
User migration required after the changes
============================
1. Either modify all the #include in the user application with 'xercesc' added
Or modify the include search path (-I) in the Makefile or project files
2. And for users who build from CVS or src path directly must modify the include
search path to change from '-I {prefix}/src' to '-I {prefix}/xercesc'
But a long term recommendation is to use "#include <xercesc/parsers/DOM.hpp>" in the
Apps
Murray, please correct me if I missed anything.
And so far here is what I understand about the pros and cons:
Good:
====
1. It helps addressing the name collisions between header files from various
libraries that, unfortunately(but realistically), have the same names. Different
products (3rd party or user applications) can
also have e.g. <util/Base64.hpp> or <util/Mutexes.hpp>. So, why not have the Xerces
include paths start with <xercesc/...> which makes things more obvious and can help
avoid some problems.
2. Besides it would make the include directory inside the distribution resemble the
include directory created by 'make install'. Since make install is already placing
the header files under
<prefix>/include/xercesc/* it's silly that user apps have to reference both
-I<prefix>/include and -I<prefix>/include/xercesc just because the header files don't
use #include <xercesc/header.h>. Changing
the internal #includes to <xercesc/whateverwastherebefore> would make the client code
build with just -I<prefix>/include (or maybe no -I at all if that's the default gcc
include path). Xerces-C would
then seem a little bit more sane.
Against:
======
1. Users migration is required. Although Murray keeps mentioning modifying Makefile /
Project file is not a big deal, still there is impact to user build environment and
documentation which can be big.
2. Rename folder in CVS is not straight forward as outlined by Arnaud. We will either
lose the revision history or break user CVS checkouts.
Based on above summary, how about we call for vote? ALL active Xerces-C users have
the right to vote, since this impact each and every user. +1 agree, -1 against, 0 no
comment
I will start 0. I don't think it worths the effort and worths to break users'
environment/documentation, but well, if this is something that really helps the UNIX
users and achieve sane build behavior, I
am not against it ... so my vote is 0.
Tinny
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]