CMake:如果找不到,自动提升下载和构建
CMake: Automatic Boost download and build if not found
我想在我的项目中进行故障安全设置。我真的不想在每次设置时都安装 boost 和其他库。
如果找不到所需的 Boost 版本,cmake 会下载并编译 boost 并将该版本用于项目。
有没有简单的可能?
我在maid-safe项目中找到了this。但是我对 cmake 没有那么多经验,不知道如何使用它。
你可以使用 this 找到我创建的模块。
- 下载 FindBoost.cmake 文件。
- 将其保存在项目中的某处;例如,在名为
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)
如果 Boost 未安装在您的系统中,它将在构建时 下载并即时编译 (即, 当你 运行 make
).如果您的系统中安装了它,则不会下载任何内容。
(可选) 你可以把BOOST_ROOT_DIR
改成你系统安装boost的根目录。如果它安装在非标准位置,这将很有用。
我想在我的项目中进行故障安全设置。我真的不想在每次设置时都安装 boost 和其他库。
如果找不到所需的 Boost 版本,cmake 会下载并编译 boost 并将该版本用于项目。
有没有简单的可能?
我在maid-safe项目中找到了this。但是我对 cmake 没有那么多经验,不知道如何使用它。
你可以使用 this 找到我创建的模块。
- 下载 FindBoost.cmake 文件。
- 将其保存在项目中的某处;例如,在名为
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)
如果 Boost 未安装在您的系统中,它将在构建时 下载并即时编译 (即, 当你 运行 make
).如果您的系统中安装了它,则不会下载任何内容。
(可选) 你可以把BOOST_ROOT_DIR
改成你系统安装boost的根目录。如果它安装在非标准位置,这将很有用。