diff options
Diffstat (limited to 'infra/nnfw/cmake/packages/BoostConfig.cmake')
-rw-r--r-- | infra/nnfw/cmake/packages/BoostConfig.cmake | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/infra/nnfw/cmake/packages/BoostConfig.cmake b/infra/nnfw/cmake/packages/BoostConfig.cmake new file mode 100644 index 000000000..26ad78922 --- /dev/null +++ b/infra/nnfw/cmake/packages/BoostConfig.cmake @@ -0,0 +1,58 @@ +# Let's build and install Boost libraries +function(_Boost_Build Boost_PREFIX) + nnfw_find_package(BoostSource QUIET) + + if(NOT BoostSource_FOUND) + return() + endif(NOT BoostSource_FOUND) + + #### Generic configurations + if(NOT EXISTS ${BoostSource_DIR}/b2) + execute_process(COMMAND "${BoostSource_DIR}/bootstrap.sh" + WORKING_DIRECTORY ${BoostSource_DIR} + RESULT_VARIABLE Boost_BUILD) + endif() + + set(BoostBuild_DIR ${BoostSource_DIR}) + set(BoostInstall_DIR ${Boost_PREFIX}) + + unset(Boost_Options) + + list(APPEND Boost_Options --build-dir=${BoostBuild_DIR}) + list(APPEND Boost_Options --prefix=${BoostInstall_DIR}) + list(APPEND Boost_Options --with-log) + list(APPEND Boost_Options --with-program_options) + list(APPEND Boost_Options --with-system) + list(APPEND Boost_Options --with-filesystem) + + set(JAM_FILENAME ${BoostBuild_DIR}/user-config.jam) + + file(WRITE ${JAM_FILENAME} "using gcc : local : ${CMAKE_CXX_COMPILER} ;\n") + list(APPEND Boost_Options toolset=gcc-local) + + # Install Boost libraries + execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${BoostInstall_DIR}") + execute_process(COMMAND /usr/bin/env BOOST_BUILD_PATH="${BoostBuild_DIR}" ${BoostSource_DIR}/b2 install ${Boost_Options} + WORKING_DIRECTORY ${BoostSource_DIR}) + +endfunction(_Boost_Build) + +# Find pre-installed boost library and update Boost variables. +find_package(Boost 1.58.0 QUIET COMPONENTS log program_options filesystem system) +if(Boost_FOUND) + return() +endif() + +set(Boost_PREFIX ${CMAKE_INSTALL_PREFIX}) + +if(BUILD_BOOST) + _Boost_Build("${Boost_PREFIX}") + + # Let's use locally built boost to system-wide one so sub modules + # needing Boost library and header files can search for them + # in ${Boost_PREFIX} directory + list(APPEND CMAKE_PREFIX_PATH "${Boost_PREFIX}") + + # We built boost library so update Boost variables. + find_package(Boost 1.58.0 QUIET COMPONENTS log program_options filesystem system) +endif(BUILD_BOOST) |