Kopieren von Dateien und bindet diese in eine CPack-Archiv

So, es gibt zahlreiche Möglichkeiten zum kopieren von Dateien (und Verzeichnisse) CMake Laufzeit (file(COPY ...), configure_file(...) und add_custom_command() alle arbeiten*), aber ich habe noch nicht herausgefunden, wie man eine Datei oder ein Verzeichnis kopiert, aus der Quelle zu bauen, die Ordner erscheinen in ein Archiv erzeugt, die von CPack. Ich dachte, dass diese SO beantworten würde es zu beheben, als es tatsächlich links das kopieren auf ein target, die dann eine Installation verknüpft sein:

install(TARGET mytarget DESTINATION bin)

in der Erwägung, dass habe ich erkennen, dass die file() und configure_file() Befehle, die nicht über eine offensichtliche Art und Weise Hinzugefügt werden, um ein Ziel. Aber, das hat nicht funktioniert. Also, eine einfache CMakeLists.txt, wie unten angezeigt, wie bekomme ich alle Dateien (einschließlich der exmaple Verzeichnis), werden in das Archiv?!

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
enable_language(FORTRAN)
add_executable(mytarget ${PROJECT_SOURCE_DIR}/myprog.for)
install(TARGETS mytarget DESTINATION bin)

add_custom_command(TARGET mytarget PREBUILD
                COMMAND ${CMAKE_COMMAND} -E copy_directory
                  ${PROJECT_SOURCE_DIR}/examplefiles ${PROJECT_BINARY_DIR}/examplefiles)

set(CPACK_GENERATOR "TGZ")
include(CPack)

* Ich habe noch nicht herausgefunden, welches eine dieser 3 Methoden ist eigentlich (die meisten?) korrekt - so ist jede Beratung über diese zu werden enorm geschätzt

  • Wie würde diese Arbeit für ein source-Paket statt binary-distribution? Die CPack-source-Paket-generator scheint eher begrenzt zu sein in Ihrer Konfigurierbarkeit.
InformationsquelleAutor ChrisW | 2013-07-05
Schreibe einen Kommentar