如何使用cmake安装de b2命令行

时间:2017-03-10 14:58:46

标签: python boost cmake

我有一个使用boost函数的c ++代码。我想安装boost并链接我的二进制文件。但是boost存储库没有cmake文件,而且我没有将此存储库用作子模块。我可以使用cmake安装boost。但要安装它,我有b2命令行。我知道b2命令行是一个python包。

我的问题:可以使用cmake文件下载这个python包吗?

修改

我知道如何使用b2命令安装de boost。但是,我只想安装de filesystem库。 boost目录包含许多我不需要的内容。我有这个cmake文件,我不知道如何精心编辑以存档我的目标。我在stackoverflow中看到一个帖子,我可以做类似的事情:

b2 tools/bcp

mkdir /tmp/interprocess

bcp interprocess /tmp/interprocess

但我不知道如何在cmake文件的一侧创建此命令行

我的cmake文件

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/google/re2.git)
SET (BOOST_BUILD ${CMAKE_BINARY_DIR}/boost/src/boost)  
get_filename_component(BOOST_STATIC_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/lib/libboost_filesystem.a ABSOLUTE)  
SET (BOOST_INCLUDES ${RE2_BUILD})

if ( UNIX )
    SET (BOOST_STATIC_LIBRARIES ${BOOST_BUILD}/libboost_filesystem.a)
endif ()

ExternalProject_Add(
boost
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/boost
GIT_REPOSITORY https://github.com/boostorg/boost.git
UPDATE_COMMAND ./bootstrap.sh --with-libraries=filesystem
CONFIGURE_COMMAND ""
BUILD_COMMAND ./b2 tools/bcp link=static install --prefix=${CMAKE_CURRENT_BINARY_DIR}/
BUILD_IN_SOURCE 1
INSTALL_COMMAND ""
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR/include/boost
})

set(Boost_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/include/boost)

set(Boost_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/lib/ibboost_filesystem.a)

修改

伙计们,我想通过使用git子模块来做到这一点。 我想使用子模块使用boost。但是boost有很多子模块,我只想从boost.filesystem

中获取boost所需的子模块。

但是当我在项目中使用boost作为子模块并尝试在cmake文件中包含boost目录时,会发生以下错误:

CMake Error at CMakeLists.txt:16 (add_subdirectory):
 The source directory
/home/lais/testeBoost/lib/boost
does not contain a CMakeLists.txt file.

0 个答案:

没有答案