summaryrefslogtreecommitdiff
path: root/infra/cmake/packages/BoostConfig.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'infra/cmake/packages/BoostConfig.cmake')
-rw-r--r--infra/cmake/packages/BoostConfig.cmake29
1 files changed, 24 insertions, 5 deletions
diff --git a/infra/cmake/packages/BoostConfig.cmake b/infra/cmake/packages/BoostConfig.cmake
index 0023b6b20..c4d7d5857 100644
--- a/infra/cmake/packages/BoostConfig.cmake
+++ b/infra/cmake/packages/BoostConfig.cmake
@@ -27,8 +27,16 @@ function(_Boost_Build Boost_PREFIX)
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)
+ if(ANDROID)
+ set(NDK_CXX ${NDK_DIR}/toolchains/llvm/prebuilt/linux-x86_64/bin/${TARGET_ARCH}-linux-android${ANDROID_API_LEVEL}-clang++)
+ file(WRITE ${JAM_FILENAME} "using clang : arm64v8a : ${NDK_CXX} ;")
+ list(APPEND Boost_Options toolset=clang-arm64v8a)
+ # without target-os=android, it complains it cannot find -lrt.
+ list(APPEND Boost_Options target-os=android)
+ else()
+ file(WRITE ${JAM_FILENAME} "using gcc : local : ${CMAKE_CXX_COMPILER} ;\n")
+ list(APPEND Boost_Options toolset=gcc-local)
+ endif(ANDROID)
# Install Boost libraries
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${BoostInstall_DIR}")
@@ -38,9 +46,13 @@ function(_Boost_Build Boost_PREFIX)
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()
+if (NOT BUILD_BOOST)
+ # BoostConfig.cmake does not honor QUIET argument at least till cmake 1.70.0.
+ # Thus, don't try to find_package if you're not entirely sure you have boost.
+ find_package(Boost 1.58.0 QUIET COMPONENTS log program_options filesystem system)
+ if(Boost_FOUND)
+ return()
+ endif()
endif()
set(Boost_PREFIX ${CMAKE_INSTALL_PREFIX})
@@ -53,6 +65,13 @@ if(BUILD_BOOST)
# in ${Boost_PREFIX} directory
list(APPEND CMAKE_PREFIX_PATH "${Boost_PREFIX}")
+ # Without Boost_INCLUDE_DIR, it complains the variable is missing during find_package.
+ set(Boost_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/include)
+
+ # 1) without static build, it will complain it cannot find libc++_shared.so.
+ # 2) We uses static libraries for other libraries.
+ set(Boost_USE_STATIC_LIBS ON)
+
# We built boost library so update Boost variables.
find_package(Boost 1.58.0 QUIET COMPONENTS log program_options filesystem system)
endif(BUILD_BOOST)