initial commit
This commit is contained in:
117
cmake/boost.cmake
Normal file
117
cmake/boost.cmake
Normal file
@@ -0,0 +1,117 @@
|
||||
set(BOOST_ADDRESS_MODEL 64)
|
||||
set(BOOST_DLL_ARCH x64)
|
||||
set(BOOST_DOWNLOAD_URL https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_DL}.tar.gz)
|
||||
|
||||
if (UNIX)
|
||||
set(BOOST_PROJECT_NAME boost_${BOOST_VERSION})
|
||||
set(BOOST_BUILD_ROOT ${EXTERNAL_BUILD_ROOT}/builds/${BOOST_PROJECT_NAME})
|
||||
if (IS_CLANG_COMPILER)
|
||||
set(BOOST_TOOLSET --with-toolset=clang)
|
||||
else ()
|
||||
set(BOOST_OPENSSL_DIR "--openssldir=${EXTERNAL_BUILD_ROOT}")
|
||||
endif()
|
||||
if (IS_ARM64)
|
||||
set (BOOST_ARCH arm)
|
||||
else()
|
||||
set (BOOST_ARCH x86)
|
||||
endif()
|
||||
set (BOOST_COMMON_ARGS
|
||||
${BOOST_OPENSSL_DIR}
|
||||
--prefix=${EXTERNAL_BUILD_ROOT}
|
||||
address-model=${BOOST_ADDRESS_MODEL}
|
||||
architecture=${BOOST_ARCH}
|
||||
cxxflags=-std=c++${CMAKE_CXX_STANDARD}
|
||||
cxxstd=${CMAKE_CXX_STANDARD}
|
||||
define=BOOST_ASIO_HAS_STD_STRING_VIEW
|
||||
define=BOOST_SYSTEM_NO_DEPRECATED
|
||||
link=static
|
||||
linkflags=-std=c++${CMAKE_CXX_STANDARD}
|
||||
threading=multi
|
||||
)
|
||||
|
||||
ExternalProject_Add(boost_project
|
||||
DOWNLOAD_NO_PROGRESS 1
|
||||
URL ${BOOST_DOWNLOAD_URL}
|
||||
PREFIX ${BOOST_BUILD_ROOT}
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND
|
||||
./bootstrap.sh
|
||||
${BOOST_TOOLSET}
|
||||
--with-libraries=atomic,chrono,date_time,filesystem,random,regex,serialization,system,thread
|
||||
BUILD_COMMAND
|
||||
./b2
|
||||
${BOOST_COMMON_ARGS}
|
||||
INSTALL_COMMAND
|
||||
./b2
|
||||
install
|
||||
${BOOST_COMMON_ARGS}
|
||||
)
|
||||
|
||||
add_dependencies(boost_project openssl_project)
|
||||
|
||||
set(BOOST_ROOT ${BOOST_BUILD_ROOT}/src/boost_project)
|
||||
|
||||
set(Boost_LIBRARIES
|
||||
libboost_system.a
|
||||
libboost_atomic.a
|
||||
libboost_chrono.a
|
||||
libboost_date_time.a
|
||||
libboost_filesystem.a
|
||||
libboost_random.a
|
||||
libboost_regex.a
|
||||
libboost_serialization.a
|
||||
libboost_thread.a
|
||||
)
|
||||
elseif(MSVC)
|
||||
set(BOOST_PROJECT_NAME boost_${BOOST_VERSION})
|
||||
set(BOOST_BUILD_ROOT ${EXTERNAL_BUILD_ROOT}/builds/${BOOST_PROJECT_NAME})
|
||||
set (BOOST_COMMON_ARGS
|
||||
--with-date_time
|
||||
--with-regex
|
||||
--with-serialization
|
||||
--with-system
|
||||
--with-filesystem
|
||||
--prefix=${EXTERNAL_BUILD_ROOT}
|
||||
runtime-link=shared
|
||||
threading=multi
|
||||
address-model=${BOOST_ADDRESS_MODEL}
|
||||
architecture=x86
|
||||
toolset=${BOOST_MSVC_TOOLSET}
|
||||
variant=${CMAKE_BUILD_TYPE_LOWER}
|
||||
-sZLIB_BINARY=zlibstatic${DEBUG_EXTRA}
|
||||
-sZLIB_LIBPATH="${EXTERNAL_BUILD_ROOT}/lib"
|
||||
-sZLIB_INCLUDE="${EXTERNAL_BUILD_ROOT}/include"
|
||||
)
|
||||
|
||||
ExternalProject_Add(boost_project
|
||||
DOWNLOAD_NO_PROGRESS 1
|
||||
URL ${BOOST_DOWNLOAD_URL}
|
||||
PREFIX ${BOOST_BUILD_ROOT}
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND
|
||||
bootstrap.bat
|
||||
--with-date_time
|
||||
--with-regex
|
||||
--with-system
|
||||
--with-serialization
|
||||
--with-filesystem
|
||||
BUILD_COMMAND
|
||||
b2.exe
|
||||
${BOOST_COMMON_ARGS}
|
||||
INSTALL_COMMAND
|
||||
b2.exe
|
||||
install
|
||||
${BOOST_COMMON_ARGS}
|
||||
)
|
||||
|
||||
add_dependencies(boost_project zlib_project)
|
||||
set(BOOST_ROOT ${BOOST_BUILD_ROOT}/src/boost_project)
|
||||
set(Boost_INCLUDE_DIR ${EXTERNAL_BUILD_ROOT}/include/boost-${BOOST_VERSION_DLL})
|
||||
set(Boost_LIBRARIES
|
||||
${EXTERNAL_BUILD_ROOT}/lib/libboost_date_time-vc${BOOST_MSVC_TOOLSET_DLL}-mt-${BOOST_DEBUG_EXTRA}${BOOST_DLL_ARCH}-${BOOST_VERSION_DLL}.lib
|
||||
${EXTERNAL_BUILD_ROOT}/lib/libboost_filesystem-vc${BOOST_MSVC_TOOLSET_DLL}-mt-${BOOST_DEBUG_EXTRA}${BOOST_DLL_ARCH}-${BOOST_VERSION_DLL}.lib
|
||||
${EXTERNAL_BUILD_ROOT}/lib/libboost_regex-vc${BOOST_MSVC_TOOLSET_DLL}-mt-${BOOST_DEBUG_EXTRA}${BOOST_DLL_ARCH}-${BOOST_VERSION_DLL}.lib
|
||||
${EXTERNAL_BUILD_ROOT}/lib/libboost_serialization-vc${BOOST_MSVC_TOOLSET_DLL}-mt-${BOOST_DEBUG_EXTRA}${BOOST_DLL_ARCH}-${BOOST_VERSION_DLL}.lib
|
||||
${EXTERNAL_BUILD_ROOT}/lib/libboost_system-vc${BOOST_MSVC_TOOLSET_DLL}-mt-${BOOST_DEBUG_EXTRA}${BOOST_DLL_ARCH}-${BOOST_VERSION_DLL}.lib
|
||||
)
|
||||
endif()
|
Reference in New Issue
Block a user