2011-09-16 4 views
6

मैं सीखना चाहता हूं कि cmake बाहरी प्रोजेक्ट मॉड्यूल का उपयोग करके बाह्य पुस्तकालयों को डाउनलोड और संकलित कैसे करें।एक गिट भंडार के साथ सीएमके EXTERNALPROJECT_ADD का सही उपयोग क्या है?

उदाहरण के लिए, मान लें कि मैं एसएफएमएल लाइब्रेरी https://github.com/LaurentGomila/SFML.git से स्रोत डाउनलोड करना चाहता हूं और इसे संकलित करना चाहता हूं। मैंने निम्नलिखित की तरह कुछ उपयोग करने की कोशिश की है। दुर्भाग्य से, मैं समझ नहीं के बाद स्रोत क्लोन हो जाता है :(

EXTERNALPROJECT_ADD(sfml 
PREFIX ${sfml_PREFIX} 

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

INSTALL_DIR ${sfml_INSTALL_DIR} 
CMAKE_ARGS ${sfml_CMAKE_ARGS}) 

उत्तर

12

कारण है कि यह संकलन नहीं है शायद आपके चर मान आपको लगता है उनमें शामिल शामिल नहीं है ... डबल अपने sfml_ के मान की जाँच * चर भी दोहरी जांच CMake चर GIT_EXECUTABLE मूल्य आप ExternalProject सहित के बाद उम्मीद ...

निम्नलिखित CMakeLists.txt फ़ाइल CMake 2.8.5 का उपयोग कर अपने Mac पर मेरे लिए काम करता है:।

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} 
) 

यह एक अनुमति के साथ मेरे लिए स्थापित करने के दौरान विफल रहता है आयन ने इनकार कर दिया क्योंकि मैंने सूडो के रूप में "मेक" नहीं चलाया, और यह पूर्ण पथ "/Library/Frameworks/sndfile.framework"

सलाह का एक और टुकड़ा भी स्थापित करने का प्रयास करता है। मुझे लगता है कि आप सीधे इंस्टॉल कर रहे हैं "/ एप्लीकेशन/सीएमके 2.8-5.app/Contents/share/cmake-2.8/Modules/FindSFML.cmake" सीधे सीएमके स्थापना में ... यह आम तौर पर निराश होता है, क्योंकि सीएमके में यह संशोधन अगर उपयोगकर्ता सीमैक को अनइंस्टॉल और पुनः इंस्टॉल करता है तो इंस्टॉलेशन गायब होने की संभावना है। या बस एक और सीएमके में उन्नयन। या कंप्यूटर पर स्थापित एक दूसरे या तीसरे सीमेक का उपयोग करता है।

आपको अपनी स्थापना में एक प्रोजेक्ट कॉन्फ़िगरेशन फ़ाइल बनाना चाहिए, कि सीएमके मानक स्थानों पर पैकेज ढूंढने के लिए इसके अंतर्निहित नियमों के साथ मिल सकता है। परियोजना config फ़ाइलों पर पूर्ण विवरण के लिए CMake find_package प्रलेखन के ठीक प्रिंट पढ़ें:

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

संबंधित मुद्दे