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

时间:2017-01-15 02:59:36

标签: c++ c 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 ""
)

我知道这里的CMakeLists没有机会包含已解析的软件包,但我甚至无法让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下载项目并链接到它?

1 个答案:

答案 0 :(得分:1)

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

由于函数ExternalProject_Add在标题为“ExternalProject”的documentation page中描述,您需要使用

include(ExternalProject)

使用前。

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

使用
find_package(<name>)