CMake:自动升级下载和构建,如果没有找到

时间:2015-02-05 14:29:04

标签: c++ boost cmake

我想在我的项目中进行故障安全设置。每次我们设置内容时,我都不想安装boost和其他库。

所以如果找不到所需的Boost版本会很棒,cmake会下载并编译boost并将该版本用于该项目。

有可能吗?

我在maid-safe项目中找到了this。但我对cmake没有经验,也不知道如何使用它。

1 个答案:

答案 0 :(得分:3)

您可以使用我创建的this 查找模块

  1. 下载FindBoost.cmake文件。
  2. 将它保存在项目中的某个位置;例如,在名为cmake
  3. 的目录中
  4. 将上述目录添加到CMAKE_MODULE_PATH。以下是实现此目的的一种方法:list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
  5. 设置BOOST_REQUESTED_VERSION。例如,set(BOOST_REQUESTED_VERSION 1.61)
  6. 像使用任何其他查找模块一样使用模块。例如:find_package(Boost COMPONENTS system program_options)
  7. 如果您的系统中未安装 Boost ,则会在构建时(即运行{{1}时下载并动态编译) })。如果它已安装在您的系统中,则不会下载任何内容。

    可选)您可以将make更改为系统中安装了boost的位置的根目录。如果它安装在非标准位置,这将非常有用。