[CMake] Copying files and including them in a CPack archive

Eric Noulard eric.noulard at gmail.com
Sat Jul 6 13:45:53 EDT 2013


2013/7/6 Chris Wood <c.c.wood at gmail.com>:
> So, there are numerous ways to copy files (and directories) at CMake
> runtime (file(COPY ...), configure_file(...) and add_custom_command()
> all work*), but I haven't yet found out how to make a file or
> directory copied from the source to build directory appear in an
> archive generated by CPack. I thought that this Stack Overflow answer
> [1] would fix it, as it actually links the copying to a target which
> will then have an install linked to it:
>
> install(TARGET mytarget DESTINATION bin)
>
> whereas I did recognise that the file() and configure_file() commands
> don't have an obvious way to be added to a target. But, this didn't
> work. So, given a simple CMakeLists.txt, such as the one below, how do
> I make all of the files (including the exmaple directory) appear in
> the archive?!

Did you try something like:

install(DIRECTORY ${PROJECT_SOURCE_DIR}/examplefiles DESTINATION share
                 PATTERN "CVS" EXCLUDE)

this will install the directory either with CPack or if you build the
"install" target.

Another to make it appear only for CPack is to use CPACK_INSTALLED_DIRECTORIES
set(CPACK_INSTALLED_DIRECTORIES
"${PROJECT_SOURCE_DIR}/examplefiles;examplefiles")



>
> 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)
>
> * I haven't yet found out which one of these 3 methods is actually
> (most?) correct - so any advice on this too will be hugely appreciated
>
> [1]: http://stackoverflow.com/a/10672739/889604
> --
>
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake



--
Erk
L'élection n'est pas la démocratie -- http://www.le-message.org


More information about the CMake mailing list