@ -37,26 +37,24 @@ set( BOOST_MD5 15cb8c0803064faef0c4ddf5bc5ca279 ) # re-calc this on every RELE
set ( BOOST_ROOT "${PROJECT_SOURCE_DIR}/boost_root" )
if ( BUILD_GITHUB_PLUGIN )
# S p a c e s e p a r a t e d l i s t w h i c h i n d i c a t e s t h e s u b s e t o f b o o s t l i b r a r i e s t o c o m p i l e .
# C h o s e n l i b r a r i e s a r e b a s e d o n A V H T T P r e q u i r e m e n t s , a n d p o s s i b l y
# u n i t _ t e s t _ f r a m e w o r k f o r i t s o w n w o r t h .
set ( BOOST_LIBS_BUILT
# c o n t e x t
# c o r o u t i n e
d a t e _ t i m e
# e x c e p t i o n
f i l e s y s t e m
i o s t r e a m s
l o c a l e
p r o g r a m _ o p t i o n s
r e g e x
# s i g n a l s
s y s t e m
t h r e a d
# u n i t _ t e s t _ f r a m e w o r k
)
endif ( )
# S p a c e s e p a r a t e d l i s t w h i c h i n d i c a t e s t h e s u b s e t o f b o o s t l i b r a r i e s t o c o m p i l e .
# C h o s e n l i b r a r i e s a r e b a s e d o n A V H T T P r e q u i r e m e n t s , a n d p o s s i b l y
# u n i t _ t e s t _ f r a m e w o r k f o r i t s o w n w o r t h .
set ( BOOST_LIBS_BUILT
# c o n t e x t
# c o r o u t i n e
d a t e _ t i m e
# e x c e p t i o n
f i l e s y s t e m
i o s t r e a m s
l o c a l e
p r o g r a m _ o p t i o n s
r e g e x
# s i g n a l s
s y s t e m
t h r e a d
# u n i t _ t e s t _ f r a m e w o r k
)
# - - - - - < / c o n f i g u r e > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -85,133 +83,100 @@ function( set_boost_lib_names libs output )
endfunction ( )
if ( BUILD_GITHUB_PLUGIN )
# I t w i l l p r o b a b l y b e s i m p l e r t o m a k e t h i s t h e o n l y p a t h i n t h e f u t u r e .
# ( B T W " t e s t " y i e l d s " u n i t _ t e s t _ f r a m e w o r k " w h e n p a s s e d t o b o o t s t r a p . s h ) .
# message ( STATUS "BOOST_LIBS_BUILT:${BOOST_LIBS_BUILT}" )
string ( REPLACE "unit_test_framework" "test" boost_libs_list "${BOOST_LIBS_BUILT}" )
# message ( STATUS "REPLACE libs_csv:${boost_libs_list}" )
# ( B T W " t e s t " y i e l d s " u n i t _ t e s t _ f r a m e w o r k " w h e n p a s s e d t o b o o t s t r a p . s h ) .
# message ( STATUS "BOOST_LIBS_BUILT:${BOOST_LIBS_BUILT}" )
string ( REPLACE "unit_test_framework" "test" boost_libs_list "${BOOST_LIBS_BUILT}" )
# message ( STATUS "REPLACE libs_csv:${boost_libs_list}" )
if ( MINGW )
if ( MSYS )
# T h e B o o s t s y s t e m d o e s n o t b u i l d p r o p e r l y o n M S Y S u s i n g b o o t s t r a p . s h . R u n n i n g
# b o o t s t r a p . b a t w i t h c m d . e x e d o e s . I t ' s u g l y b u t i t w o r k s . A t l e a s t f o r B o o s t
# v e r s i o n 1 . 5 4 .
set ( bootstrap cmd.exe /c "bootstrap.bat mingw" )
else ( )
set ( bootstrap ./bootstrap.bat mingw )
endif ( )
foreach ( lib ${ boost_libs_list } )
set ( b2_libs ${ b2_libs } --with- ${ lib } )
endforeach ( )
unset ( PIC_STUFF )
if ( MINGW )
if ( MSYS )
# T h e B o o s t s y s t e m d o e s n o t b u i l d p r o p e r l y o n M S Y S u s i n g b o o t s t r a p . s h . R u n n i n g
# b o o t s t r a p . b a t w i t h c m d . e x e d o e s . I t ' s u g l y b u t i t w o r k s . A t l e a s t f o r B o o s t
# v e r s i o n 1 . 5 4 .
set ( bootstrap cmd.exe /c "bootstrap.bat mingw" )
else ( )
string ( REGEX REPLACE "\\;" "," libs_csv "${boost_libs_list}" )
# message ( STATUS "libs_csv:${libs_csv}" )
set ( bootstrap ./bootstrap.sh --with-libraries= ${ libs_csv } )
# p a s s t o * b o t h * C a n d C + + c o m p i l e r s
set ( PIC_STUFF "cflags=${PIC_FLAG}" )
set ( BOOST_INCLUDE "${BOOST_ROOT}/include" )
unset ( b2_libs )
endif ( )
ExternalProject_Add ( boost
P R E F I X " $ { P R E F I X } "
D O W N L O A D _ D I R " $ { D O W N L O A D _ D I R } "
I N S T A L L _ D I R " $ { B O O S T _ R O O T } "
U R L h t t p : / / d o w n l o a d s . s o u r c e f o r g e . n e t / p r o j e c t / b o o s t / b o o s t / $ { B O O S T _ R E L E A S E } / b o o s t _ $ { B O O S T _ V E R S } . t a r . b z 2
U R L _ M D 5 $ { B O O S T _ M D 5 }
# T h e p a t c h c o m m a n d e x e c u t e s w i t h t h e w o r k i n g d i r e c t o r y s e t t o < S O U R C E _ D I R >
P A T C H _ C O M M A N D b z r p a t c h - p 0 " $ { P R O J E C T _ S O U R C E _ D I R } / p a t c h e s / b o o s t . p a t c h "
# [ M i s - ] u s e t h i s s t e p t o e r a s e a l l t h e b o o s t h e a d e r s a n d l i b r a r i e s b e f o r e
# r e p l a c i n g t h e m b e l o w .
U P D A T E _ C O M M A N D $ { C M A K E _ C O M M A N D } - E r e m o v e _ d i r e c t o r y " $ { B O O S T _ R O O T } "
B I N A R Y _ D I R " $ { P R E F I X } / s r c / b o o s t / "
C O N F I G U R E _ C O M M A N D $ { b o o t s t r a p }
B U I L D _ C O M M A N D . / b 2
v a r i a n t = r e l e a s e
t h r e a d i n g = m u l t i
t o o l s e t = g c c
$ { P I C _ S T U F F }
$ { b 2 _ l i b s }
# l i n k = s t a t i c
- - p r e f i x = < I N S T A L L _ D I R >
i n s t a l l
I N S T A L L _ C O M M A N D " "
)
if ( MINGW )
execute_process ( COMMAND ${ CMAKE_C_COMPILER } -dumpversion
O U T P U T _ V A R I A B L E G C C _ V E R S I O N
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.[0-9]+.*" "\\1\\2" BOOST_GCC_VERSION ${ GCC_VERSION } )
# message ( STATUS "BOOST_GCC_VERSION: ${BOOST_GCC_VERSION}" )
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9])" "\\1_\\2" BOOST_LIB_VERSION ${ BOOST_RELEASE } )
# message ( STATUS "BOOST_LIB_VERSION: ${BOOST_LIB_VERSION}" )
# a d j u s t t h e n a m e s o f t h e l i b r a r i e s t o s u i t t h e b u i l d . T h e r e ' s n o
# s y m b o l i c l i n k s p r o v i d e d o n t h e M i n G W b u i l d t o a l l o w u s t o u s e
# g e n e r i c n a m e s f o r t h e l i b s
foreach ( lib ${ BOOST_LIBS_BUILT } )
set ( mingw_boost_libs ${ mingw_boost_libs } ${ lib } -mgw ${ BOOST_GCC_VERSION } -mt- ${ BOOST_LIB_VERSION } )
endforeach ( )
set ( BOOST_LIBS_BUILT ${ mingw_boost_libs } )
set ( BOOST_INCLUDE "${BOOST_ROOT}/include/boost-${BOOST_LIB_VERSION}" )
unset ( mingw_boost_libs )
set ( bootstrap ./bootstrap.bat mingw )
endif ( )
set ( boost_libs "" )
set_boost_lib_names ( "${BOOST_LIBS_BUILT}" boost_libs )
set ( Boost_LIBRARIES ${ boost_libs } CACHE FILEPATH "Boost libraries directory" )
set ( Boost_INCLUDE_DIR "${BOOST_INCLUDE}" CACHE FILEPATH "Boost include directory" )
foreach ( lib ${ boost_libs_list } )
set ( b2_libs ${ b2_libs } --with- ${ lib } )
endforeach ( )
unset ( PIC_STUFF )
else ( )
string ( REGEX REPLACE "\\;" "," libs_csv "${boost_libs_list}" )
# message ( STATUS "libs_csv:${libs_csv}" )
set ( bootstrap ./bootstrap.sh --with-libraries= ${ libs_csv } )
# p a s s t o * b o t h * C a n d C + + c o m p i l e r s
set ( PIC_STUFF "cflags=${PIC_FLAG}" )
set ( BOOST_INCLUDE "${BOOST_ROOT}/include" )
unset ( b2_libs )
endif ( )
mark_as_advanced ( Boost_LIBRARIES Boost_INCLUDE_DIR )
ExternalProject_Add ( boost
P R E F I X " $ { P R E F I X } "
D O W N L O A D _ D I R " $ { D O W N L O A D _ D I R } "
I N S T A L L _ D I R " $ { B O O S T _ R O O T } "
U R L h t t p : / / d o w n l o a d s . s o u r c e f o r g e . n e t / p r o j e c t / b o o s t / b o o s t / $ { B O O S T _ R E L E A S E } / b o o s t _ $ { B O O S T _ V E R S } . t a r . b z 2
U R L _ M D 5 $ { B O O S T _ M D 5 }
# T h e p a t c h c o m m a n d e x e c u t e s w i t h t h e w o r k i n g d i r e c t o r y s e t t o < S O U R C E _ D I R >
P A T C H _ C O M M A N D b z r p a t c h - p 0 " $ { P R O J E C T _ S O U R C E _ D I R } / p a t c h e s / b o o s t . p a t c h "
# [ M i s - ] u s e t h i s s t e p t o e r a s e a l l t h e b o o s t h e a d e r s a n d l i b r a r i e s b e f o r e
# r e p l a c i n g t h e m b e l o w .
U P D A T E _ C O M M A N D $ { C M A K E _ C O M M A N D } - E r e m o v e _ d i r e c t o r y " $ { B O O S T _ R O O T } "
B I N A R Y _ D I R " $ { P R E F I X } / s r c / b o o s t / "
C O N F I G U R E _ C O M M A N D $ { b o o t s t r a p }
B U I L D _ C O M M A N D . / b 2
v a r i a n t = r e l e a s e
t h r e a d i n g = m u l t i
t o o l s e t = g c c
$ { P I C _ S T U F F }
$ { b 2 _ l i b s }
# l i n k = s t a t i c
- - p r e f i x = < I N S T A L L _ D I R >
i n s t a l l
I N S T A L L _ C O M M A N D " "
)
# message ( STATUS "BOOST_ROOT:${BOOST_ROOT} BOOST_LIBRARIES:${BOOST_LIBRARIES}" )
# message ( STATUS "Boost_INCLUDE_DIR: ${Boost_INCLUDE_DIR}" )
if ( MINGW )
execute_process ( COMMAND ${ CMAKE_C_COMPILER } -dumpversion
O U T P U T _ V A R I A B L E G C C _ V E R S I O N
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
else ( BUILD_GITHUB_PLUGIN )
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.[0-9]+.*" "\\1\\2" BOOST_GCC_VERSION ${ GCC_VERSION } )
# message ( STATUS "BOOST_GCC_VERSION: ${BOOST_GCC_VERSION}" )
ExternalProject_Add ( boost
P R E F I X " $ { P R E F I X } "
D O W N L O A D _ D I R " $ { D O W N L O A D _ D I R } "
U R L h t t p : / / d o w n l o a d s . s o u r c e f o r g e . n e t / p r o j e c t / b o o s t / b o o s t / $ { B O O S T _ R E L E A S E } / b o o s t _ $ { B O O S T _ V E R S } . t a r . b z 2
U R L _ M D 5 $ { B O O S T _ M D 5 }
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9])" "\\1_\\2" BOOST_LIB_VERSION ${ BOOST_RELEASE } )
# message ( STATUS "BOOST_LIB_VERSION: ${BOOST_LIB_VERSION}" )
# T h e p a t c h c o m m a n d e x e c u t e s w i t h t h e w o r k i n g d i r e c t o r y s e t t o < S O U R C E _ D I R >
P A T C H _ C O M M A N D b z r p a t c h - p 0 " $ { P R O J E C T _ S O U R C E _ D I R } / p a t c h e s / b o o s t . p a t c h "
# a d j u s t t h e n a m e s o f t h e l i b r a r i e s t o s u i t t h e b u i l d . T h e r e ' s n o
# s y m b o l i c l i n k s p r o v i d e d o n t h e M i n G W b u i l d t o a l l o w u s t o u s e
# g e n e r i c n a m e s f o r t h e l i b s
foreach ( lib ${ BOOST_LIBS_BUILT } )
set ( mingw_boost_libs ${ mingw_boost_libs } ${ lib } -mgw ${ BOOST_GCC_VERSION } -mt- ${ BOOST_LIB_VERSION } )
endforeach ( )
# D i c k 1 8 - A u g - 2 0 1 3 :
# [ m i s - ] u s e t h i s U P D A T E _ C O M M A N D o p p o r t u n i t y t o r e m o v e t h e o l d p l a c e o f b o o s t h e a d e r s .
# C a n e v e n t u a l l y r e m o v e t h i s s t e p a f t e r h e a d e r s a r e m o v e d f r o m < k i c a d _ s r c > / i n c l u d e / b o o s t
# t o < k i c a d _ s r c > / b o o s t _ r o o t / i n c l u d e / b o o s t o v e r t h e n e x t s e v e r a l m o n t h s .
U P D A T E _ C O M M A N D $ { C M A K E _ C O M M A N D } - E r e m o v e _ d i r e c t o r y " $ { P R O J E C T _ S O U R C E _ D I R } / i n c l u d e / b o o s t "
set ( BOOST_LIBS_BUILT ${ mingw_boost_libs } )
set ( BOOST_INCLUDE "${BOOST_ROOT}/include/boost-${BOOST_LIB_VERSION}" )
unset ( mingw_boost_libs )
endif ( )
C O N F I G U R E _ C O M M A N D " "
set ( boost_libs "" )
set_boost_lib_names ( "${BOOST_LIBS_BUILT}" boost_libs )
# r e m o v e t h e n r e - c o p y i n t o t h e i n c l u d e / b o o s t d i r e c t o r y d u r i n g n e x t t w o s t e p s :
B U I L D _ C O M M A N D $ { C M A K E _ C O M M A N D } - E r e m o v e _ d i r e c t o r y $ { B O O S T _ R O O T }
I N S T A L L _ C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y _ d i r e c t o r y " $ { h e a d e r s _ s r c } " " $ { B O O S T _ R O O T } / i n c l u d e / b o o s t "
)
set ( Boost_LIBRARIES ${ boost_libs } CACHE FILEPATH "Boost libraries directory" )
set ( Boost_INCLUDE_DIR "${BOOST_INCLUDE}" CACHE FILEPATH "Boost include directory" )
# U n t i l m y find_package ( ) s u p p o r t i s d o n e f o r m y b o o s t .
set ( Boost_INCLUDE_DIR "${BOOST_ROOT}/include" CACHE FILEPATH "Boost include directory" )
mark_as_advanced ( Boost_LIBRARIES Boost_INCLUDE_DIR )
# message ( STATUS "BOOST_ROOT:${BOOST_ROOT} BOOST_LIBRARIES:${BOOST_LIBRARIES}" )
# message ( STATUS "Boost_INCLUDE_DIR: ${Boost_INCLUDE_DIR}" )
endif ( BUILD_GITHUB_PLUGIN )
ExternalProject_Add_Step ( boost bzr_commit_boost