2012-03-16 15 views
34

Jak skonfigurować CMake do rekursywnego skanowania danego katalogu i określenia listy plików źródłowych?Czy program CMake rekursywnie skanuje foldery?

Mój projekt to udostępniona biblioteka. Mam strukturę folderów podobną do tej:

/ 
    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 

chcę uniknąć:

  • zanieczyszczających src/ i include/ katalogi z niekończącymi CMakeLists.txt plików
  • konieczności zmiany i dostosowywać skrypty za każdym razem zmienić moją strukturę folderów

Dla każdego przykładu dobrze jest mieć własny skrypt kompilacji, jednak.

Odpowiedz

38

CUpewnij zapewnia następujące polecenie dla plików rekurencyjnych globing:

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

dokumentacja Command: http://www.cmake.org/cmake/help/v2.8.8/cmake.html#command:file

+11

Należy pamiętać, że w przypadku korzystania z tej metody, musisz zregenerować CUpewnij ponownie za każdym razem, dodać lub usunąć pliki źródłowe. – mrgrieves

+6

@mrgrieves jest bardziej wydajną metodą? Jeśli tak, rozważ dodanie innej odpowiedzi na to pytanie. –

Powiązane problemy