Boost logo

Boost :

Subject: Re: [boost] [regex] "I want everything" should build "out of the box"(onWindows)
From: KTC (ktc_at_[hidden])
Date: 2009-07-29 17:06:40


John Maddock wrote:
>>> Sorry I must have missed that, what's the problem/fix?
>>
>> The "error: link=shared together with runtime-link=static is not
>> allowed" problem is the newest problem I have, appeared in recent
>> versions, prevents us from doing a complete build.
>
> You simply can not mix dll's with the static runtime - doing so will in
> almost all circumstances cause your application to crash.

My complaint here wasn't that this was fixed, but rather that I think
someone should be able to do a --build-type=complete and have all the
supported variant of the libraries built. In the case of with ICU it
would only build the shared versions. It shouldn't still try to build
both when building with ICU thus causing the error and not building
anything at all.

> Well... As of ICU-4.2, the names of the libraries are documented here:
> http://userguide.icu-project.org/icufaq#TOC-How-do-I-install-the-binary-version
> and match what the Jamfile assumes (and what I downloaded in the binary
> package), this information:
> http://source.icu-project.org/repos/icu/icu/tags/release-4-2-1/readme.html#HowToPackage
> also uses the same filenames, for example icuin.lib/dll and not
> icui18n.lib/dll.

Um, the problem isn't that the build system wanted icuin and got given
icui18n etc, it's the other way round. It wants icu18n & icudata, and is
given icuin & icudt instead.
       if $(HAVE_ICU)
       {
          gHAS_ICU = true ;
          gICU_CORE_LIB = icuuc ;
          gICU_IN_LIB = icui18n ;
          gICU_DATA_LIB = icudata ;
          gICU_CONFIG_CHECKED = true ;
       }

The else if clause right below that is kinda complicated and I'm not
entirely following it, but it seems the build system is following two
different path both building with ICU when ICU_PATH is set depending on
whether HAVE_ICU is set. (My reading of the documentation suggest
setting -sHAVE_ICU=1 to build with ICU.)

As a test, I just downloaded the latest ICU 4.2 binary on Windows with
VC9 and attempting to build using trunk, setting -sHAVE_ICU=1
-sICU_PATH="...".
     ...failed updating 5 targets...
     ...skipped 6 targets...
     ...updated 47 targets...
When only ICU_PATH is set, it builds fine.
     ...updated 58 targets...

KTC

-- 
Only two things are infinite,
  the Universe and Stupidity.
And I'm not quite sure about the former.
         - Albert Einstein

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk