From: Markus S. <mar...@gm...> - 2006-06-27 14:54:57
|
On 6/27/06, Ruslan Zasukhin <sun...@pu...> wrote: > I was in hope that I will be able add uregex.cpp into our project, and this > will work...but not so easy. > > This file contains references on C++ API of ICU ?! > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > IMHO this is not best design. > > C API must depend only on C API. This is completely unnecessary -- for normal use. Only using a C API externally ensures that you are safe from compiler mismatches of calling conventions, name mangling, and C++ class vtable layouts. Internally to a single executable, such as within the ICU library, there are no problems because all parts got compiled together. Using C++ for the implementation allows simpler, more readable, more maintainable code. In particular, we do want to be able to use UnicodeString and UnicodeSet efficiently. Now, I see that this is a problem in your case because you want to build just a piece of ICU and link it with MacOS 10.3's piece of ICU -- and there is C++ in between the pieces. This would be unsafe even if uregex were pure C: It would most likely still rely on internal functions which can change radically from one version to another. The regular expression implementation is designed to benefit from (and not duplicate) many other ICU services, not as a standalone, separately buildable library. > P.S. Now I have only 2 ways: > a) drop support of REGEX -- not acceptable > b) drop support of OS X 10.3.9 Have you tried George's suggestions for pruning ICU and for building it as static libraries linked with your app? Best regards, markus -- Opinions expressed here may not reflect my company's positions unless otherwise noted. |