CMake kullanarak çalışan bir çapraz platform oluşturma sistemi elde etmeye çalışıyorum. Şimdi yazılımın birkaç bağımlılığı var. Onları kendim derledim ve sistemime kurdum.
Yüklü bazı örnek dosyalar:
-- Installing: /usr/local/share/SomeLib/SomeDir/somefile
-- Installing: /usr/local/share/SomeLib/SomeDir/someotherfile
-- Installing: /usr/local/lib/SomeLib/somesharedlibrary
-- Installing: /usr/local/lib/SomeLib/cmake/FindSomeLib.cmake
-- Installing: /usr/local/lib/SomeLib/cmake/HelperFile.cmake
Şimdi CMake, bir dosyayı find_package()
açan Find*.cmake
ve sistemdeki kütüphaneyi arayan ve SomeLib_FOUND
vb. Gibi bazı değişkenleri tanımlayan bir dosyaya sahiptir .
CMakeLists.txt dosyamda şöyle bir şey var:
set(CMAKE_MODULE_PATH "/usr/local/lib/SomeLib/cmake/;${CMAKE_MODULE_PATH}")
find_package(SomeLib REQUIRED)
İlk komut, CMake'in nerede aradığını tanımlar ve bulunabileceği Find*.cmake
dizini ekledim , bu yüzden beklendiği gibi çalışır.SomeLib
FindSomeLib.cmake
find_package()
Ancak bu biraz gariptir, çünkü find_package()
var olmanın nedenlerinden biri, platforma olmayan sabit kodlu yollardan uzaklaşmaktır.
Bu genellikle nasıl yapılır? Ben kopya mı cmake/
dizinini SomeLib
benim projeye ve set CMAKE_MODULE_PATH
nispeten?