So gibt es zahlreiche Möglichkeiten, um Dateien (und Verzeichnisse) auf CMake
Laufzeit zu kopieren (file(COPY ...)
, configure_file(...)
und add_custom_command()
alle Arbeit *), aber ich habe noch nicht herausgefunden, wie man Eine Datei oder ein Verzeichnis, das vom Verzeichnis "Quelle zum Erstellen" kopiert wurde, wird in einem von CPack generierten Archiv angezeigt. Ich dachte, dass this SO answer würde es beheben, wie sie tatsächlich das Kopieren auf eine Ziel verknüpft, die dann mit ihm verbunden eine Installation haben:Dateien kopieren und sie in einem CPack Archiv einschließlich
install(TARGET mytarget DESTINATION bin)
während ich erkannte, dass die file()
und configure_file()
Befehle haben keine offensichtliche Möglichkeit, einem Ziel hinzugefügt zu werden. Aber das hat nicht funktioniert. Also, mit einer einfachen CMakeLists.txt, wie die unten, wie mache ich alle Dateien (einschließlich der exmaple
Verzeichnis) im Archiv erscheinen ?!
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 aus nicht gefunden, welche dieser drei Methoden tatsächlich ist (die meisten?) Richtig - so eine Beratung zu diesem Thema wird auch enorm
Wie würde dies für ein * Quellpaket * und nicht für eine Binärdistribution funktionieren? Der CPack-Quellpaketgenerator scheint in seiner Konfigurierbarkeit ziemlich begrenzt zu sein. – kynan