2017-01-12 18 views
7

私はCMakeLists.txtファイル次ている:私は私のプロジェクトにJSON-Cライブラリを追加したいが、私は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} 
    ) 

を:不明なCMakeのコマンドを"ExternalProject_Add"。私のCMakeバージョンはOS Xの3.6.2です

+5

で使用されています。あなたは 'include(ExternalProject)'を見逃しましたか? – usr1234567

答えて

10

必要なモジュールは、cmakeのインストールの一部でなければなりません。使用中のcmakeのインストールへ

CMAKE_ROOTポイント:externalproject_add(YOUR STUFF HERE)

説明の呼び出しの前に

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

:しかし、あなたがあなたのプロジェクトにそれを含める必要があります。すべてのモジュールはサブフォルダモジュール内にあります。

メッセージ(STATUS "CMAKE_ROOT = $ {CMAKE_ROOT}")で現在の値を印刷することができます。または、スマートマクロを使用しています。 CMake

10

cmake-modulesセクションに記載されているCMake関数は、特定のモジュールを含むが必要です。

機能ExternalProject_Addが "ExternalProject" と題しdocumentation pageに記載されているように、あなたはそれを使用する前に

include(ExternalProject) 

を使用する必要があります。


同じ戦略はFind<name>個以外のモジュールでも有効です。これらのモジュールは、

find_package(<name>) 
関連する問題