我知道如何使用b2命令安装 Boost 并指定仅安装文件系统库。Boost 目录有很多我不需要的内容,而且克隆所有子模块需要很长时间。我有这个 cmake 文件可以下载、构建和安装 Boost。但我不知道如何指定要在CMakeLists.txt. 我用来ExternalProject_add下载、构建和安装 Boost。
cmake_minimum_required(VERSION 2.8)
include(ExternalProject)
# Download boost from git
SET (BOOST_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/boost/src/boost/lib/filesystem/include/boost/)
SET (BOOST_URL https://github.com/boostorg/boost.git )
get_filename_component(BOOST_STATIC_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/lib/libboost_filesystem.a ABSOLUTE)
if ( UNIX )
SET (BOOST_STATIC_LIBRARIES ${BOOST_BUILD}/libboost_filesystem.a)
endif ()
ExternalProject_Add(
boost
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/boost
GIT_REPOSITORY ${BOOST_URL}
UPDATE_COMMAND ./bootstrap.sh --with-libraries=filesystem,system
CONFIGURE_COMMAND ""
BUILD_COMMAND ./b2 link=static install --exec-prefix=${CMAKE_BINARY_DIR}/lib/ --includedir=${CMAKE_BINARY_DIR}/include/boost/
BUILD_IN_SOURCE 1
INSTALL_COMMAND ""
)
set(BOOST_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/lib)
message ("${BOOST_STATIC_LIBRARIES}")
Run Code Online (Sandbox Code Playgroud)
编辑
我现在有以下CMakeLists.txt文件:
cmake_minimum_required(VERSION 2.8)
include(ExternalProject)
# Download boost from git …Run Code Online (Sandbox Code Playgroud)