J'ai le fichier CMakeLists.txt suivant:
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}
)
Je veux ajouter la bibliothèque json-c à mon projet, mais lorsque j'exécute cmake, j'obtiens une erreur: commande CMake inconnue "ExternalProject_Add". Ma version de CMake est 3.6.2 sur OS X
Le module requis doit faire partie de votre installation cmake. Mais vous devez l'inclure dans votre projet avec:
include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)
avant l'appel de externalproject_add(YOUR STUFF HERE)
Explication:
CMAKE_ROOT pointe vers l'installation de cmake en cours d'utilisation. Tous les modules sont dans le sous-dossier Modules .
Vous pouvez imprimer la valeur actuelle avec message(STATUS "CMAKE_ROOT=${CMAKE_ROOT}")
. Ou vous utilisez des macros intelligentes pour cela. Voir CMake
Bien qu'elle ne soit pas directement écrite dans les pages de documentation, les fonctions CMake décrites dans la section cmake-modules nécessitent y compris un module spécifique .
Comme fonction ExternalProject_Add
est décrit dans la page de documentation intitulée "ExternalProject", vous devez utiliser
include(ExternalProject)
avant de l'utiliser.
La même stratégie fonctionne pour tous les autres modules sauf Find<name>
ceux. Ces modules sont utilisés via
find_package(<name>)