2016-09-28 5 views
1

Ich versuche ein Installationspaket mit CMake und CPack zu erstellen. Alles funktioniert gut, aber ich möchte die Menge an Code drastisch reduzieren, indem ich meinen Ressourcenordner komplett mit einem Aufruf anstelle eines für jeden Unterordner kopiere.CMake + CPack: Gesamtes Verzeichnis (einschließlich Unterordner) installieren

Bisher ich Komponente weise Installation der folgenden Art und Weise:

set(RESOURCES_CALIBRATION_DIR resources/calibration) 
file(GLOB RESOURCES_CALIBRATION "${CMAKE_SOURCE_DIR}/${RESOURCES_CALIBRATION_DIR}/*") 
install(FILES ${RESOURCES_CALIBRATION} DESTINATION ${RESOURCES_CALIBRATION_DIR} COMPONENT ResourcesCalibration) 

set(RESOURCES_CURSORS_DIR resources/cursors) 
file(GLOB RESOURCES_CURSORS "${CMAKE_SOURCE_DIR}/${RESOURCES_CURSORS_DIR}/*") 
install(FILES ${RESOURCES_CURSORS} DESTINATION ${RESOURCES_CURSORS_DIR} COMPONENT ResourcesCursors) 

... 
    ... (repeat for every folder of my resources folder) 

set(CPACK_COMPONENTS_ALL applications ResourcesCalibration ResourcesCursors ...) 
set(CPACK_COMPONENT_RESOURCESCALIBRATION_GROUP "resources") 
set(CPACK_COMPONENT_RESOURCESCURSORS_GROUP "resources") 
... 
    ... 

Gibt es eine saubere Art und Weise den gesamten Ressourcen-Ordner einschließlich aller Unterordner zu kopieren/installieren?

Antwort

1

Der Befehlsfluss install(DIRECTORY) existiert speziell für die Installation des Verzeichnisses mit seinen Unterverzeichnissen und Dateien.

install(DIRECTORY ${CMAKE_SOURCE_DIR}/resources/ 
     DESTINATION resources 
     COMPONENT ResourcesCursors) 

oder sogar

install(DIRECTORY ${CMAKE_SOURCE_DIR}/resources 
     DESTINATION . 
     COMPONENT ResourcesCursors) 

wird resource Verzeichnis im Quellbaum in das Installationsverzeichnis kopieren. Siehe documentation on install für weitere Informationen.

Verwandte Themen