2012-03-16 26 views
34

Belirli bir dizini yinelemeli olarak taramak ve kaynak dosyalarının listesini belirlemek için CMake'i nasıl kurabilirim?CMake'in klasörleri tekrar tekrar taraması yapılıyor mu?

Projem paylaşılan bir kütüphanedir.

/ 
    src/    # Source files in an arbitrary tree 
    include/   # Headers, tree mirrors that of the src/ folder 
    examples/   # Executable code examples that link against the library 
    CMakeLists.txt 

Ben önlemek istiyorum: Ben buna benzer bir klasör yapısına sahip

  • değiştirebilir ve geçiri her zaman uyum olması sonsuz CMakeLists.txt dosyaları ile src/ ve include/ dizinleri Kirletici ben Benim klasör yapısını değiştirme

Her örnek için kendi derleme betikleri olması iyidir ancak.

cevap

38

CKağıt özyinelemeli dosyalar için aşağıdaki komutu globing sağlamaktadır:

file(GLOB_RECURSE variable [RELATIVE path] 
    [FOLLOW_SYMLINKS] [globbing expressions]...) 

Komut belgeleri: http://www.cmake.org/cmake/help/v2.8.8/cmake.html#command:file

+11

Not Bu yöntemi kullanırsanız, cmake yine her defasında yeniden gerekeceğini eklemek veya kaldırmak kaynak dosyaları. – mrgrieves

+6

@mrgrieves Daha verimli bir yöntem var mı? Eğer öyleyse, lütfen bu soruya başka bir cevap eklemeyi düşünün. –