Skip to content

Commit

Permalink
cmake: BuildBoost.cmake: use specified compiler for building boost
Browse files Browse the repository at this point in the history
* user-config.jam is the suggested way for adding toolset for Boost.Build.
* always specify toolset when running b2, so we can build boost with
specified compiler instead of the default one guessed by boost building system.

Signed-off-by: Kefu Chai <kchai@redhat.com>
  • Loading branch information
tchaikov committed Jan 10, 2018
1 parent 9d788c6 commit 9345a28
Showing 1 changed file with 12 additions and 17 deletions.
29 changes: 12 additions & 17 deletions cmake/modules/BuildBoost.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -49,24 +49,14 @@ function(do_build_boost version)
list(APPEND b2 -d0)
endif()

if(NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL CMAKE_SYSTEM_PROCESSOR)
# we are crosscompiling
if(CMAKE_CXX_COMPILER_ID STREQUAL GNU)
set(b2_cc gcc)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL Clang)
set(b2_cc clang)
else()
message(SEND_ERROR "unknown compiler: ${CMAKE_CXX_COMPILER_ID}")
endif()
# edit the config.jam so, b2 will be able to use the specified toolset
execute_process(
COMMAND
sed -i
"s|using ${b2_cc} ;|using ${b2_cc} : ${CMAKE_SYSTEM_PROCESSOR} : ${CMAKE_CXX_COMPILER} ;|"
${PROJECT_SOURCE_DIR}/src/boost/project-config.jam)
# use ${CMAKE_SYSTEM_PROCESSOR} as the version identifier of compiler
list(APPEND b2 toolset=${b2_cc}-${CMAKE_SYSTEM_PROCESSOR})
if(CMAKE_CXX_COMPILER_ID STREQUAL GNU)
set(toolset gcc)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL Clang)
set(toolset clang)
else()
message(SEND_ERROR "unknown compiler: ${CMAKE_CXX_COMPILER_ID}")
endif()
list(APPEND b2 toolset=${toolset})

set(build_command
${b2} headers stage
Expand Down Expand Up @@ -112,6 +102,11 @@ function(do_build_boost version)
BUILD_IN_SOURCE 1
INSTALL_COMMAND ${install_command}
PREFIX "${boost_root_dir}")
ExternalProject_Get_Property(Boost source_dir)
# edit the user-config.jam so, so b2 will be able to use the specified
# toolset
file(WRITE ${source_dir}/user-config.jam
"using ${toolset} : : ${CMAKE_CXX_COMPILER} ;")
endfunction()

macro(build_boost version)
Expand Down

0 comments on commit 9345a28

Please sign in to comment.