2011-04-03 17 views
14

Bir Linux sisteminde el ile (/ usr/local) kurduğum bir lib bilgisayarım var (bu arada Eigen3). Lib ile paketlenmiş bir FindEigen3.cmake vardır, ancak varsayılan olarak herhangi bir yere yüklenmez.Yerel olarak derlenmiş kütüphaneler için FindXXX.cmake dosyaları için doğru yer neresidir?

CMake'in ek modüller aradığı /usr/share/cmake-x.y/Modules var, ancak bu dosyaları koymanın bir yolu yok gibi görünüyor./Usr/local altında da varsayılan olarak taranan eşdeğer bir yer var mı? Veya özel kütüphane modülleri oluşturmanın standart yolu nedir?

(soru kesinlikle programlama bağlı olmasa da, ben kütüphane yazarlar ayrıca diğer taraftan aynı soruyu karşılaşabilir düşünüyorum. Nerede elle yüklerken bu dosyaları koymak için) Sen ayarlamanız gerekir

cevap

6

"find_package" komutu için CKağıt belgelerinde yorumlarına bakın:

http://cmake.org/cmake/help/v2.8.8/cmake.html#command:find_package

Bu bir "proje-config" dosyasını yazma bilen ve nereye yüklemek için, öyle ki find_package (Eigen3) FindEigen3.cmake modülü bulunmadan çalışacak ... Bu ayrıntılı, ancak bilgi içeride. Projemizde

http://cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file

+0

: bu/CMakeLists.txt (DLRdave zaten söylediklerini similiar) proje kök dir belirtmek zorunda çalışması için Bunu yapmak için zamanım var (son iki hafta içinde: P), bu eylemi kontrol etmek için aradım, teşekkürler! – Latanius

3

CMAKE_MODULE_PATH, find_package çağrılmadan önce FindEigen3.cmake dosyasının bulunduğu dizini içerecek şekilde.

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} <your path>) 

hile olacaktır, ancak bu tekniktir biraz masaj yapmak gerekebilir yüzden şu anda kullanıma test etmek için bir kurulum yok: buna inanıyorum.

3

biz klasör proje kök dir/cmake/modüllerin yılında FIndXXX.cmake modüllerini yerleştirin:

Ayrıca bkz kullanıcı bu gibi wiki sayfaları katkıda bulunmuştur. Ben yapmadım rağmen

seti (CMAKE_MODULE_PATH $ {CMAKE_SOURCE_DIR}/cmake/modüller)

İlgili konular