@ -4,8 +4,8 @@
, enableDebug ? false
, enableSingleThreaded ? false
, enableMultiThreaded ? true
, enableShared ? true
, enableStatic ? false
, enableShared ? ! ( stdenv . cross . libc or null == " m s v c r t " ) # problems for now
, enableStatic ? ! enableShared
, enablePIC ? false
, enableExceptions ? false
, taggedLayout ? ( ( enableRelease && enableDebug ) || ( enableSingleThreaded && enableMultiThreaded ) || ( enableShared && enableStatic ) )
@ -76,11 +76,11 @@ let
" - - u s e r - c o n f i g = u s e r - c o n f i g . j a m "
" t o o l s e t = g c c - c r o s s "
" - - w i t h o u t - p y t h o n "
] ++ optionals stdenv . isCrossWin [
] ++ optionals ( stdenv . cross . libc == " m s v c r t " ) [
" t a r g e t - o s = w i n d o w s "
" t h r e a d a p i = w i n 3 2 "
" b i n a r y - f o r m a t = p e "
" a d d r e s s - m o d e l = ${ if stdenv . isCross64 then " 6 4 " else " 3 2 " } "
" a d d r e s s - m o d e l = ${ if hasPrefix " x 8 6 _ 6 4 - " stdenv . cross . config then " 6 4 " else " 3 2 " } "
" a r c h i t e c t u r e = x 8 6 "
] ;
crossB2Args = concatStringsSep " " ( genericB2Flags ++ crossB2Flags ) ;
@ -114,6 +114,8 @@ let
find include \ ( - name ' * . hpp' - or - name ' * . h' - or - name ' * . ipp' \ ) \
- exec sed ' 1 i #line 1 "{}"' -i '{}' \;
)
'' + o p t i o n a l S t r i n g ( s t d e n v . c r o s s . l i b c o r n u l l = = " m s v c r t " ) ''
$ { stdenv . cross . config } - ranlib " $ l i b " /lib /* . a
'' ;
in
@ -149,14 +151,15 @@ stdenv.mkDerivation {
enableParallelBuilding = true ;
buildInputs = [ icu expat zlib bzip2 python ]
buildInputs = [ expat zlib bzip2 ]
++ stdenv . lib . optionals ( ! stdenv ? cross ) [ python icu ]
++ stdenv . lib . optional stdenv . isDarwin fixDarwinDylibNames ;
configureScript = " . / b o o t s t r a p . s h " ;
configureFlags = commonConfigureFlags ++ [
"- - w i t h - i c u = ${ icu . dev } "
"- - w i t h - p y t h o n = ${ python . interpreter } "
] ++ optional ( toolset != null ) " - - w i t h - t o o l s e t = ${ toolset } " ;
configureFlags = commonConfigureFlags
++ [ "- - w i t h - p y t h o n = ${ python . interpreter } " ]
++ optional ( ! stdenv ? cross ) "- - w i t h - i c u = ${ icu . dev } "
++ optional ( toolset != null ) " - - w i t h - t o o l s e t = ${ toolset } " ;
buildPhase = builder nativeB2Args ;
@ -168,10 +171,6 @@ stdenv.mkDerivation {
setOutputFlags = false ;
crossAttrs = rec {
buildInputs = [ expat . crossDrv zlib . crossDrv bzip2 . crossDrv ] ;
# all buildInputs set previously fell into propagatedBuildInputs, as usual, so we have to
# override them.
propagatedBuildInputs = buildInputs ;
# We want to substitute the contents of configureFlags, removing thus the
# usual --build and --host added on cross building.
preConfigure = ''
@ -183,7 +182,7 @@ stdenv.mkDerivation {
buildPhase = builder crossB2Args ;
installPhase = installer crossB2Args ;
postFixup = fixup ;
} // optionalAttrs stdenv . isCrossWin {
} // optionalAttrs ( stdenv . cross . libc == " m s v c r t " ) {
patches = fetchurl {
url = " h t t p s : / / s v n . b o o s t . o r g / t r a c / b o o s t / r a w - a t t a c h m e n t / t i c k e t / 7 2 6 2 / "
+ " b o o s t - m i n g w . p a t c h " ;