2011-09-16 13 views
6

Chciałbym nauczyć się, jak pobierać i kompilować biblioteki zewnętrzne za pomocą zewnętrznego modułu projektu cmake.Jakie jest prawidłowe użycie CMake EXTERNALPROJECT_ADD z repozytorium Git?

Na przykład, powiedzmy, że chciałem pobrać źródło z biblioteki SFML https://github.com/LaurentGomila/SFML.git i skompilować ją. Próbowałem użyć czegoś podobnego. Niestety, nie mogę zrozumieć, dlaczego to nie jest po kompilacji źródłem dostaje sklonowany :(

EXTERNALPROJECT_ADD(sfml 
PREFIX ${sfml_PREFIX} 

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

INSTALL_DIR ${sfml_INSTALL_DIR} 
CMAKE_ARGS ${sfml_CMAKE_ARGS}) 

Odpowiedz

12

Być może twoi zmienne nie zawierają wartości Myślisz, że zawierają ... Double sprawdzić wartość swojego sfml_ * zmienne również dokładnie sprawdzić, że CUpewnij zmienna GIT_EXECUTABLE ma wartość można oczekiwać po tym ExternalProject ...

następujący plik CMakeLists.txt pracuje dla mnie na moim Mac przy użyciu 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} 
) 

Podczas instalacji dla mnie kończy się niepowodzeniem Odmowa jonu, ponieważ nie uruchomiłem "make" jako sudo i próbuje zainstalować na ścieżce absolutnej "/Library/Frameworks/sndfile.framework"

Jeszcze jedna porada. Zauważyłem, że instalujesz "/ Applications/CMake 2.8-5.app/Contents/share/cmake-2.8/Modules/FindSFML.cmake" bezpośrednio w CMake instalacji ... To jest ogólnie odradzane, ponieważ ta modyfikacja do CMake instalacja prawdopodobnie zniknie, jeśli użytkownik odinstaluje i ponownie zainstaluje CMake. Lub po prostu uaktualnienia do innego CMake. Lub używa 2. lub 3. CMake, który jest również zainstalowany na komputerze.

Zamiast tego należy utworzyć plik konfiguracji projektu we własnej instalacji, którą CMake może znaleźć za pomocą wbudowanych reguł wyszukiwania pakietów w standardowych lokalizacjach. Przeczytać drobnym drukiem dokumentacji find_package CMake do pełnych informacji o plikach konfiguracyjnych projektu:

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

Powiązane problemy