diff --git a/SuperBuild/CMake/External_boost.cmake b/SuperBuild/CMake/External_boost.cmake index 5956a83b107800fa1c0877e1a97aeaaacc202b00..2abae429c2b047e23be54fadc40cfb8720ffb9c3 100644 --- a/SuperBuild/CMake/External_boost.cmake +++ b/SuperBuild/CMake/External_boost.cmake @@ -22,52 +22,52 @@ INCLUDE_ONCE_MACRO(BOOST) SETUP_SUPERBUILD(BOOST) -set(_SB_BOOST_LIBRARYDIR ${SB_INSTALL_PREFIX}/lib) +# set(_SB_BOOST_LIBRARYDIR ${SB_INSTALL_PREFIX}/lib) +# Libraries we need from boost +set( boost_libraries_to_build "system;serialization;filesystem;test;date_time;program_options;thread") -set(BOOST_SB_CONFIG) -if(OTB_TARGET_SYSTEM_ARCH_IS_X64) - set(BOOST_SB_CONFIG address-model=64) -endif() - -set(BOOST_SB_CONFIG - ${BOOST_SB_CONFIG} - variant=release - link=shared - threading=multi - runtime-link=shared - --prefix=${SB_INSTALL_PREFIX} - --includedir=${SB_INSTALL_PREFIX}/include - --libdir=${_SB_BOOST_LIBRARYDIR} - --with-system - --with-serialization - --with-filesystem - --with-test - --with-date_time - --with-program_options - --with-thread - ) - -set(BOOST_BOOTSTRAP_OPTIONS "") +# add libraries to bootstrap option +set(BOOST_BOOTSTRAP_OPTIONS "--with-libraries=") +foreach(lib ${boost_libraries_to_build}) + set(BOOST_BOOTSTRAP_OPTIONS "${BOOST_BOOTSTRAP_OPTIONS}${lib},") +endforeach(lib) if(UNIX) set(BOOST_BOOTSTRAP_FILE "./bootstrap.sh") set(BOOST_B2_EXE "./b2") if(NOT APPLE AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - set(BOOST_SB_CONFIG - ${BOOST_SB_CONFIG} - toolset=clang) - set(BOOST_BOOTSTRAP_OPTIONS "--with-toolset=clang") + set(BOOST_BOOTSTRAP_OPTIONS "${BOOST_BOOTSTRAP_OPTIONS} --with-toolset=clang") endif() else() set(BOOST_BOOTSTRAP_FILE "bootstrap.bat") set(BOOST_B2_EXE "b2.exe") endif() +set( BOOST_BOOTSTRAP_OPTIONS "${BOOST_BOOTSTRAP_OPTIONS} --prefix=${SB_INSTALL_PREFIX}") + set(BOOST_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E chdir ${BOOST_SB_SRC} ${BOOST_BOOTSTRAP_FILE} ${BOOST_BOOTSTRAP_OPTIONS} + ) + +set(BOOST_SB_CONFIG) + +# I think that this is already handled by boost. +if(OTB_TARGET_SYSTEM_ARCH_IS_X64) + set(BOOST_SB_CONFIG address-model=64) +endif() + +set(BOOST_SB_CONFIG + ${BOOST_SB_CONFIG} + variant=release + link=shared + threading=multi + runtime-link=shared --prefix=${SB_INSTALL_PREFIX} ) + # --includedir=${SB_INSTALL_PREFIX}/include #This is the default in boost + # --libdir=${_SB_BOOST_LIBRARYDIR} # same here + set(BOOST_BUILD_COMMAND ${CMAKE_COMMAND} -E chdir ${BOOST_SB_SRC}