Установка определенных файлов с помощью CMake - PullRequest
5 голосов
/ 19 декабря 2011

У меня есть исходная структура каталогов:

projectSource
|---src
|---include
|---CMakeLists.txt

и хотел бы установить структуру каталогов

projectInstall
|---bin
|---include
|---lib

Все дерево исходных каталогов находится под контролем версий, поэтому каждая исходная папка содержит дополнительный каталог .svn/. Какой самый простой способ установить все заголовочные файлы от projectSource/include до projectInstall/include, пропуская при этом каталоги .svn?

Я бы хотел использовать что-то вроде:

set( PROJECT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include )
include_directories( ${PROJECT_INCLUDE_DIR} )
install(DIRECTORY ${PROJECT_INCLUDE_DIR}/
    DESTINATION "include"
    FILES_MATCHING PATTERN "*.h"
    PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)

но, хотя я (пытаюсь) установить только файлы, соответствующие *.h, я все равно собираю каталог и содержимое .svn/.

1 Ответ

13 голосов
/ 19 декабря 2011

Вы можете добавить ключевое слово EXCLUDE к ШАБЛОНУ:

install(DIRECTORY ${PROJECT_INCLUDE_DIR}/
    DESTINATION "include"
    FILES_MATCHING
    PATTERN "*.h"
    PATTERN ".svn" EXCLUDE
    PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...