2017-01-12 1 views
7

나는 다음과 같은 한 CMakeLists.txt 파일 : 알 수없는 CMake 명령 :알 수없는 CMake 명령 "ExternalProject_Add"

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를 실행할 때 "ExternalProject_Add". 내 CMake 버전은 OS X에서 3.6.2입니다

+5

'include (ExternalProject) '가 누락 되었습니까? – usr1234567

답변

10

필수 모듈은 cmake 설치의 일부 여야합니다. externalproject_add(YOUR STUFF HERE)

설명의 호출 전에

include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) 

:

CMAKE_ROOT 사용중인 cmake 설치에 포인트 그러나 당신은 귀하의 프로젝트에 포함해야합니다. 모든 모듈은 하위 폴더 모듈 내에 있습니다.

메시지 (STATUS "CMAKE_ROOT = $ {CMAKE_ROOT}")와 함께 현재 값을 인쇄 할 수 있습니다. 또는 스마트 매크로를 사용하고 있습니다. CMake

10

cmake-modules 섹션에 설명 된 CMake 함수는 특정 모듈을 포함하여 이 필요합니다. 기능 ExternalProject_Add는 "ExternalProject"로 제목의 documentation page에 설명되어있는 것처럼

, 당신은 그것을 사용하기 전에

include(ExternalProject) 

를 사용해야합니다.


동일 전략은 Find<name> 개를 제외한 다른 모든 모듈에서 작동합니다. 해당 모듈은 다음을 통해 사용됩니다.

find_package(<name>) 
관련 문제