[CMake] CMake tar.gz package does not include all installed files

Nicolas Mora nicolas at babelouest.org
Thu Feb 8 14:39:27 EST 2018


That was the root problem indeed!

I cleaned the code and fixed the path with ${CMAKE_INSTALL_DATAROOTDIR}:

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/glewlwyd
         DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES glewlwyd.conf.sample
         DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/glewlwyd RENAME 
glewlwyd.conf COMPONENT config)
install(DIRECTORY webapp/
         DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/glewlwyd/webapp/ 
COMPONENT runtime)

Thanks a lot for the help!

Le 2018-02-08 à 11:10, Eric Noulard a écrit :
> Hi Nicolas,
> 
> AFAIK
> CPack Archive generators (ZIP, TGZ, etc...) cannot properly handle 
> ABSOLUTE_INSTALL path.
> The 3 install statements:
> 
> install(FILES glewlwyd.service DESTINATION 
> ${CMAKE_INSTALL_PREFIX}/lib/systemd/system COMPONENT config)
> install(FILES glewlwyd-init DESTINATION 
> ${CMAKE_INSTALL_PREFIX}/etc/init.d/ RENAME glewlwyd COMPONENT config)
> install(DIRECTORY webapp/ DESTINATION 
> ${CMAKE_INSTALL_PREFIX}/share/glewlwyd/webapp/ COMPONENT runtime)
> 
> Use a DESTINATION which is absolute. Thus the issue with archive generator.
> 
> CPackDeb and CPackRPM do handle absolute install path "transparently" 
> because they internally set CPACK_SET_DESTDIR.
> 
> Have a look at
> cmake --help-variable CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
> and
> cmake --help-variable CPACK_SET_DESTDIR
> 
> 
> 
> 2018-02-08 15:47 GMT+01:00 Nicolas Mora <nicolas at babelouest.org 
> <mailto:nicolas at babelouest.org>>:
> 
>     Hello,
> 
>     I use a CMakeLists.txt script to build an application which works
>     pretty well so far, except for the tar.gz package build.
> 
>     In the install procedure, I copy the application executable, the
>     config files and, SysV init and SystemD service files, and an entire
>     directory.
> 
>     In the make install and in the .deb file generated, all those files
>     are correctly installed. But the .tar.gz package only has the
>     executable and the config file, not the rest.
> 
>     Can anyone help me point out where my mistake is?
> 
>     The script is available here:
>     https://github.com/babelouest/glewlwyd/blob/cmake/CMakeLists.txt
>     <https://github.com/babelouest/glewlwyd/blob/cmake/CMakeLists.txt>
> 
>     The install commands that are missing in the .tar.gz package are the
>     following:
>     https://github.com/babelouest/glewlwyd/blob/cmake/CMakeLists.txt#L211 <https://github.com/babelouest/glewlwyd/blob/cmake/CMakeLists.txt#L211>
>     https://github.com/babelouest/glewlwyd/blob/cmake/CMakeLists.txt#L212 <https://github.com/babelouest/glewlwyd/blob/cmake/CMakeLists.txt#L212>
>     https://github.com/babelouest/glewlwyd/blob/cmake/CMakeLists.txt#L213 <https://github.com/babelouest/glewlwyd/blob/cmake/CMakeLists.txt#L213>
> 
>     And the .tar.gz package generator commands are here:
>     https://github.com/babelouest/glewlwyd/blob/cmake/CMakeLists.txt#L252 <https://github.com/babelouest/glewlwyd/blob/cmake/CMakeLists.txt#L252>
> 
>     Thanks in advance
>     -- 
> 
>     Powered by www.kitware.com <http://www.kitware.com>
> 
>     Please keep messages on-topic and check the CMake FAQ at:
>     http://www.cmake.org/Wiki/CMake_FAQ
>     <http://www.cmake.org/Wiki/CMake_FAQ>
> 
>     Kitware offers various services to support the CMake community. For
>     more information on each offering, please visit:
> 
>     CMake Support: http://cmake.org/cmake/help/support.html
>     <http://cmake.org/cmake/help/support.html>
>     CMake Consulting: http://cmake.org/cmake/help/consulting.html
>     <http://cmake.org/cmake/help/consulting.html>
>     CMake Training Courses: http://cmake.org/cmake/help/training.html
>     <http://cmake.org/cmake/help/training.html>
> 
>     Visit other Kitware open-source projects at
>     http://www.kitware.com/opensource/opensource.html
>     <http://www.kitware.com/opensource/opensource.html>
> 
>     Follow this link to subscribe/unsubscribe:
>     https://cmake.org/mailman/listinfo/cmake
>     <https://cmake.org/mailman/listinfo/cmake>
> 
> 
> 
> 
> -- 
> Eric


More information about the CMake mailing list