如何让 CMake 下载外部软件包并使用它



CMakeLists.txt:

cmake_minimum_required(VERSION 3.3)
project(CMakeTest)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
find_package(event-cmake REQUIRED)
file(GLOB SOURCES "*.cpp" )
add_executable(test ${SOURCES})

cmake/Findevent-cmake.cmake:

ExternalProject_Add(event-cmake
  GIT_REPOSITORY https://github.com/libevent/libevent.git
  UPDATE_COMMAND ""
  INSTALL_COMMAND ""
)

我知道这里的 CMakeList 没有机会包含解析的包,但我什至无法让 CMake 下载外部存储库。它错误如下:

CMake Error at cmake/Findevent-cmake.cmake:3 (ExternalProject_Add):
  Unknown CMake command "ExternalProject_Add".
Call Stack (most recent call first):
  CMakeLists.txt:4 (find_package)

有没有办法让它让 cmake 下载项目并链接到它?

虽然它不是直接写在文档中的,但 cmake-modules 部分描述的 CMake 函数需要包含特定的模块

由于函数ExternalProject_Add在标题为"外部项目"的文档页面中描述,因此您需要使用

include(ExternalProject)

在使用之前。


相同的策略适用于除Find<name>模块以外的任何其他模块。这些模块通过以下方式使用

find_package(<name>)

最新更新