2
我想在我的项目中有一个安全设置。每次我们设置东西时,我都不想搞乱安装boost和其他库。CMake:自动增强下载和构建,如果没有找到
因此,如果没有找到所需的Boost版本,cmake会下载并编译boost并将该版本用于该项目,这将非常棒。
有没有简单的可能性?
我发现this在女仆安全项目。但我对cmake并没有那么有经验,也不知道如何使用它。
我想在我的项目中有一个安全设置。每次我们设置东西时,我都不想搞乱安装boost和其他库。CMake:自动增强下载和构建,如果没有找到
因此,如果没有找到所需的Boost版本,cmake会下载并编译boost并将该版本用于该项目,这将非常棒。
有没有简单的可能性?
我发现this在女仆安全项目。但我对cmake并没有那么有经验,也不知道如何使用它。
您可以使用this查找模块我创建。
cmake
的目录中。CMAKE_MODULE_PATH
。以下是完成此操作的一种方法:list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
。BOOST_REQUESTED_VERSION
。例如,set(BOOST_REQUESTED_VERSION 1.61)
。find_package(Boost COMPONENTS system program_options)
如果升压没有安装在你的系统将是下载并编译上即时,在构建时(即当您运行make
)。如果它安装在您的系统中,则不会下载任何内容。
(可选)您可以将BOOST_ROOT_DIR
更改为系统中安装boost的位置的根目录。如果它安装在非标准位置,这很有用。
这是要走的路,对于不提供可靠cmake构建的项目。如果该项目已经基于CMake,则更容易,您可以使用[ExternalProject_Add](http://www.cmake.org/cmake/help/v3.0/module/ExternalProject.html)。这是一个[微不足道的示例](https://github.com/oblitum/operations),它从系统目录中获取gmock/gtest,但可以轻松更改为从Web下载它们。 – 2015-02-05 14:42:53
查看'ExternalProject_Add',它应该允许你下载boost的源代码并构建它。 http://www.cmake.org/cmake/help/v3.0/module/ExternalProject.html – drescherjm 2015-02-05 14:44:45
顺便说一句,看着你公布的女仆安全项目的cmake链接使用ExternalProject_Add建立提升,所以你有一个例子.. – drescherjm 2015-02-05 14:53:25