小编Lai*_*rio的帖子

如何使用 cmake 从 Boost 克隆特定子模块

我知道如何使用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)

boost cmake git-submodules

5
推荐指数
1
解决办法
1738
查看次数

标签 统计

boost ×1

cmake ×1

git-submodules ×1