CMake:如果找不到,则自动进行Boost下载和构建

CMake: Automatic Boost download and build if not found

本文关键字:Boost 下载和 构建 如果 找不到 CMake      更新时间:2023-10-16

我希望在我的项目中有一个故障保护设置。我真的不想每次我们设置东西时都麻烦地安装boost和其他libs。

因此,如果找不到所需的Boost版本,cmake就会下载并编译Boost,并将该版本用于项目,这将是一件非常棒的事情。

有简单的可能性吗?

我在女仆保险箱项目中发现了这个。但我对cmake没有那么多经验,也不知道如何使用它。

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

  1. 下载FindBoost.cmake文件
  2. 将其保存在项目中的某个位置;例如在名为cmake的目录中
  3. 将上述目录添加到CMAKE_MODULE_PATH。以下是实现这一点的一种方法:list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
  4. 设置BOOST_REQUESTED_VERSION。例如,set(BOOST_REQUESTED_VERSION 1.61)
  5. 像使用任何其他查找模块一样使用该模块。例如:find_package(Boost COMPONENTS system program_options)

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

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