2011-09-16 17 views
6

Vorrei imparare come scaricare e compilare le librerie esterne usando il modulo di progetto esterno cmake.Qual è l'utilizzo corretto di CMake EXTERNALPROJECT_ADD con un repository Git?

Ad esempio, diciamo che volevo scaricare l'origine dalla libreria SFML https://github.com/LaurentGomila/SFML.git e compilarlo. Ho provato a utilizzare qualcosa come il seguente. Purtroppo, non riesco a capire perché non è la compilazione dopo che la fonte viene clonato :(

EXTERNALPROJECT_ADD(sfml 
PREFIX ${sfml_PREFIX} 

GIT_REPOSITORY https://github.com/LaurentGomila/SFML.git 

INSTALL_DIR ${sfml_INSTALL_DIR} 
CMAKE_ARGS ${sfml_CMAKE_ARGS}) 

risposta

12

Forse le variabili non contengono i valori che si pensi che contengono ... doppio controllare il valore della vostra sfml_ * anche le variabili doppio controllo che la variabile CMake GIT_EXECUTABLE ha il valore che ci si aspetta dopo aver incluso ExternalProject ...

il seguente file CMakeLists.txt funziona per me sul mio Mac con CMake 2.8.5:.

cmake_minimum_required(VERSION 2.8) 
project(SfmlBuilder) 
include(ExternalProject) 

set(sfml_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/sfml") 
set(sfml_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/sfml") 
set(sfml_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${sfml_INSTALL_DIR}) 

message("sfml_PREFIX='${sfml_PREFIX}'") 
message("sfml_INSTALL_DIR='${sfml_INSTALL_DIR}'") 
message("sfml_CMAKE_ARGS='${sfml_CMAKE_ARGS}'") 
message("GIT_EXECUTABLE='${GIT_EXECUTABLE}'") 

ExternalProject_Add(sfml 
    PREFIX ${sfml_PREFIX} 
    GIT_REPOSITORY https://github.com/LaurentGomila/SFML.git 
    INSTALL_DIR ${sfml_INSTALL_DIR} 
    CMAKE_ARGS ${sfml_CMAKE_ARGS} 
) 

Fallisce durante l'installazione per me con un permesso negato perché non ho eseguito "make" come sudo, e cerca di installare nel percorso assoluto "/Library/Frameworks/sndfile.framework"

Un altro consiglio. Ho notato che stai installando "/ Applicazioni/CMake 2.8-5.app/Contents/share/cmake-2.8/Modules/FindSFML.cmake" direttamente nell'installazione di CMake ... Ciò è generalmente scoraggiato, come quella modifica al CMake è probabile che l'installazione scompaia se l'utente disinstalla e reinstalla CMake. O semplicemente aggiorna ad un altro CMake. O utilizza un 2 o 3 CMake installato anche nel computer.

Si dovrebbe invece creare un file di configurazione del progetto nella propria installazione, che CMake possa trovare con le sue regole incorporate per trovare pacchetti in posizioni standard. Leggere la stampa fine della documentazione find_package CMake per tutti i dettagli sul file di configurazione di progetto:

http://cmake.org/cmake/help/cmake-2-8-docs.html#command:find_package

Problemi correlati