Tak, istnieje wiele sposobów, aby skopiować pliki (i katalogi) w CMake
starcie (file(COPY ...)
, configure_file(...)
i add_custom_command()
wszystkie prace *), ale jeszcze nie dowiedział się, jak zrobić plik lub katalog skopiowany ze źródła do katalogu kompilacji pojawi się w archiwum wygenerowanym przez CPack. I mimo że this SO answer by to naprawić, gdyż faktycznie łączy kopiowanie do celu, które będą wtedy miały instalacja związana z nim:Kopiowanie plików i włączenie ich w archiwum CPack
install(TARGET mytarget DESTINATION bin)
natomiast ja nie uznają, że file()
i configure_file()
polecenia nie mają oczywisty sposób dodania do celu. Ale to nie zadziałało. Tak więc, biorąc pod uwagę prosty CMakeLists.txt, taki jak ten poniżej, w jaki sposób mogę zrobić wszystkie pliki (w tym katalog exmaple
) w archiwum ?!
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)
* jeszcze nie dowiedział się, który z tych 3 metod jest rzeczywiście (większość?) Poprawne - więc każda rada na to też będzie niezwykle ceniona
Jak by to działało dla * pakietu źródłowego * zamiast dystrybucji binarnej? Generator pakietów źródłowych CPack wydaje się być raczej ograniczony pod względem możliwości konfiguracji. – kynan