Boost logo

Boost-Build :

Subject: Re: [Boost-build] [Locale] Help Needed with Boost-Build
From: Vladimir Prus (ghost_at_[hidden])
Date: 2010-09-12 04:09:24


On Friday 10 September 2010 14:24:19 Artyom wrote:

> Hello All,
>
> Help From Community Needed
> ==========================
>
>
> Today Boost.Locale can be build only using CMake,
> I need to port it to Boost.Build. Unfortunalty It is
> very complicated task for me for two reasons:
>
> - Quite complicated build requirements
> - Lack of documentation
> - Lack of my experience with BBv2
>
> I've tried but I had no progress, even with previous,
> much simpler version of Boost.Locale which didn't depended
> on iconv and had ICU must to build option and so on.
>
> Can some body please help me with build scripts?
>
> The build requirements are generally following:
> -----------------------------------------------
>
> Input Options:
>
> - with icu - turned on by default.
> - with iconv (turned off by default in Windows and Solaris)
> - with posix-backend (turned on by default on Linux and Mac)
> - with winapi-backend (turned on on windows and cygwin)
> - with std-backend (turned off by default with SunStudio/stlport)

How those options are supposed to be specified? Only by user, in any
combination he might want? Also, by "on XXX and YYY" -- I suppose you
mean target-os, not host-os?

> Pre-Build Checks:
>
> - if with icu is on, but no icu found, turn it on

Did you mean "off" as the last word?

> Note, when building under MSVC/Debug; search for icuXXXd library
> rather then for icuXXX library.
> - if with iconv is on
> if iconv is a part of standard C library, use it
> Otherwise find libiconv, if not found, turn iconv off.

Would you please either specify code that compiles and links with
iconv and does not compile or does not link without? Alternatively,
point me at existing checks? CMake does not appear to have such
check in 2.6.

> - if not on Windows and both iconv and icu are off rise
> a error, no - charset conversion tool is given
> - if building under SunStudion make sure it uses -library=stlport4
> flag
> - Ensure threading on

I'm fairly sure you can do this last one yourself easily, no?

>
> Build Defines:
>
> - Add BOOST_ALL_NO_LIB

Why? That would make Boost.Locale different from every other compiled
library.

> - if icu is enabled:
> Define BOOST_LOCALE_WITH_ICU
> - if iconv enabled and found
> Define BOOST_LOCALE_WITH_ICONV
> else
> Define BOOST_LOCALE_NO_ICONV
> - if posix backend is NOT enabled
> Define BOOST_LOCALE_NO_POSIX_BACKEND
> - if std backend is not enabled
> Define BOOST_LOCALE_NO_STD_BACKEND
> - if winapi backend is not enabled
> Define BOOST_LOCALE_NO_WINAPI_BACKEND

You have not said anything about either posix, or std, or winapi backend,
or how they are enabled.

>
> Build:
>
> - add shared source files and tests
> - if with icu and icu found add ICU sources and tests
> - if buiding with gcc and have icu sources add
> -O0 option for test_formatting test
> - if with posix add POSIX sources and tests
> - if with std add STD sources and tests
>
> Optionally:
>
> If using boost<= 1.43 link with thread library

Why does this depend on Boost version?

> I would really appreciate any help

I can look into this, but before -- can you give me a link to "golden" sources
of Boost.Locale, or better still -- to live version control system where it
lives. Write access would be slightly better.

Thanks,

--
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build: http://boost.org/boost-build2

Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk