我有以下CMakeLists.txt文件:
cmake_minimum_required (VERSION 3.2 FATAL_ERROR) project (utils VERSION 1.0.0 LANGUAGES CXX) ExternalProject_Add(json-c GIT_REPOSITORY "https://github.com/json-c/json-c.git" UPDATE_COMMAND git pull "https://github.com/json-c/json-c.git" CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/SDL_image/./configure --prefix=${SDL_INSTALL_DIR} SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/json-c INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR} )
我想将json-c库添加到我的项目中,但是当我运行cmake时,我收到错误:未知的CMake命令"ExternalProject_Add".我的CMake版本在OS X上是3.6.2
所需模块应该是cmake安装的一部分.但是你必须将它包含在你的项目中:
include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)
在电话会议之前 externalproject_add(YOUR STUFF HERE)
说明:
CMAKE_ROOT指向正在使用的cmake安装.所有模块都在子文件夹模块中.
您可以打印出当前值message(STATUS "CMAKE_ROOT=${CMAKE_ROOT}")
.或者你正在使用智能宏.见CMake
虽然它不直接写在文档页面中,但cmake-modules部分描述的CMake函数需要包含特定的模块.
由于功能ExternalProject_Add
在标题为"ExternalProject" 的文档页面中描述,您需要使用
include(ExternalProject)
在使用它之前.
相同的策略适用于除Find
1 之外的任何其他模块.这些模块通过使用
find_package()