У меня есть библиотека C++, использующая cmake. Структура моей библиотеки выглядит следующим образом:Получение файлов с путями с CMake
src/module1/class1.h
src/module1/class1.cpp
src/module1/class2.h
src/module1/class2.cpp
src/module2/class3.h
src/module2/class3.cpp
и т.д ..
Я хочу, чтобы установить правила для моего проекта с помощью команды INSTALL. Во-первых, мне нужно, чтобы получить все мои заголовки файлов:
FILE (GLOB_RECURSE ALL_HEADERS "*.h")
Далее я пытаюсь установить их в C: \ Temp:
INSTALL(FILES {$ALL_HEADER} DESTINATION "C:\\temp")
Он работает, но в результате каталог имеет следующий вид:
temp/class1.h
temp/class2.h
temp/class3.h
но не есть:
temp/module1/class1.h
temp/module1/class2.h
temp/module2/class3.h
Как вы видите, CMake не «запоминает» пути к папке. Как я могу с этим справиться?
Он работает ... но он копирует все файлы, а не только "* .h". Кажется, что команда PATTERN не работает. – user1266334
Для этого нужен шаблон FILES_MATCHING и "/" вместо "\\": install (DIRECTORY src/module1 src/module2 DESTINATION "C:/temp" FILES_MATCHING PATTERN "* .h"). Пожалуйста, обновите свой пост, и я отвечу на свой вопрос. – user1266334