$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] Fwd: Boost.Locale - Help linking to ICU static libraries please
From: Brad Keifenheim (betrue82_at_[hidden])
Date: 2013-02-27 16:54:19
Hello,
I'm building Boost 1.53.0 on FreeBSD using GCC. I wish to provide the ICU
back-end to Boost.Locale using the static implementation only.
This is the command line I used to configure and build ICU 49.1.2:
runConfigureICU FreeBSD --prefix=/3rdParty/icu4c/release
 --bindir=/3rdParty/icu4c/release/bin64
 --sbindir=/3rdParty/icu4c/release/sbin64
 --libdir=/3rdParty/icu4c/release/lib64
                                       --enable-static=yes
                                       --enable-shared=no
                                       --with-library-bits=64
                                       CPPFLAGS=-DU_TIMEZONE=0
The DU_TIMEZONE flag is a workaround for ICU on FreeBSD for that particular
version. For
this discussion it may safely be ignored.
The ICU build results as follows:
/3rdParty/icu4c/release
                           |_ bin64
                           |_ include
                           |_ lib64
                           |_ sbin64
                           |_ share
As intended, the shared (*.so) libraries are not built. Only static (*.a)
libraries are present in lib64:
libsicudata.a, libsicui18n.a, libsicuio.a, etc...
I then attempt the following command to build Boost:
b2 toolset=gcc
     link=static
     variant=release
     threading=multi
     address-model=64
     --build-dir=obj
     --stagedir=bin/64
     --without-python
     -sICU_PATH=/3rdParty/icu4c/release/
     --layout=versioned
     -a
     -j8
With this setup the build reports as follows:
*...*
*
*
*Performing configuration checks*
*
*
*    - x86                      : yes*
*    - has_icu builds           : no*
*warning: Graph library does not contain MPI-based parallel components.*
*note: to enable them, add "using mpi ;" to your user-config.jam*
*    - iconv (libc)             : no*
*    - iconv (separate)         : no*
*    - icu                      : no*
*    - icu (lib64)              : no*
*- Boost.Locale needs either iconv or ICU library to be built.*
*
*
*...*
I do not have this problem when -sICU_PATH points to a directory containing
the shared versions of the ICU libraries:
libicudata.so, libicui18n.so, libicuio.so ...
Unfortunately the constraints of the end product restrict me from
delivering ICU as a shared library.
Will Boost.Locale accept the ICU back-end as a static library
implementation? If so, what have I configured improperly?
Thank you in advance for your assistance.
Brad