CMake:如果找不到,自动提升下载和构建

CMake: Automatic Boost download and build if not found

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

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

有没有简单的可能?

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

你可以使用 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)

如果 Boost 未安装在您的系统中,它将在构建时 下载并即时编译 (即, 当你 运行 make).如果您的系统中安装了它,则不会下载任何内容。

(可选) 你可以把BOOST_ROOT_DIR改成你系统安装boost的根目录。如果它安装在非标准位置,这将很有用。