2016-03-24 23 views
1

Özel (karmaşık) Find-cmake modülüm var. Her şey gayet iyi çalışıyor.cmake: birden çok proje için kurulum/dağıtım bul-modülü

Sorunum, bir çok projede librarayımı (QT cmake öğeleri gibi) algılamak için bu bulma modülüne ihtiyacım olmasıdır.

Modemi, "bulabileceğim" bir merkezi dizine kurmak mümkün mü?

CMAKE_MODULE_PATH dizini ayarlamak zorunda olduğumu biliyorum, ancak merkezi bir yükleme konumu için bu yaklaşım garip görünüyor.

Birden çok projede bulma modülünü kullanmanın tercih edilen yolu nedir? Çalıştığım yeri aynı kutuyu hem derleme ve çapraz derleme yapmak, çünkü hiç kullanmadım

https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#user-package-registry

Not böylece biz:

+0

Bildiğim kadarıyla, "Bul" modülleri için "merkezi dizin" yoktur. Bazı projelerin cmake kurulumunda bulunmayan bir modüle ihtiyacı varsa, projenin kendisi bu modül ile gönderilmelidir. Beton makinede bir çözüm olarak, 'Find' modülünü CMake'in kendisiyle yüklü modüllerle dizine ekleyebilirsiniz. Linux üzerinde bu dizin '/ usr/share/cmake/Modules' dir. – Tsyvarev

+0

Bkz. [Diğer cmake paketleri otomatik olarak erişilebilir cmake kütüphanesi oluşturma] (http://stackoverflow.com/questions/33462209/making-cmake-library-accessible-by-other-cmake-packages-automatically) – Florian

cevap

1

Aslında CKağıt paketleri bir kayıt yoktur Farklı cmake dosyalarına sahip olmak zorundasınız

+0

sadece yapılandırma gibi görünüyor .cmake dosyaları bununla çalışır. Benim bul ... Cmake'imi yapılandırma dosyasına nasıl eşleştireceğimi söyler misin? – tonka

+1

@tonka: 'Find' ve' Config' komutları arasındaki temel fark, sonun 'find_library' ve diğer' find_ * 'komutlarını kullanmaması gerektiğidir: sadece karşılık gelen değişkenleri somut değerlere ayarlar. Sonunda 'Config' komut dosyası, _FOUND' değişkenini manuel olarak ayarlamalıdır. BTW, cevapta belirtilen [sayfa] (https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html) aynı zamanda ambalajın yaratma yönlerini de açıklar. – Tsyvarev

İlgili konular