Hi, I'm generating deb packages for a project using CPack. This project contains a lot of libraries which are used the build the final applications. Because I don't want to distribute the headers and static libraries in the package, but only the executable I tried to use the components to filter what should be included in the package. (like documented here: http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack)
However it doesn't work for me. CPack always includes all components. For reproducing this I created a every simple project with just two dummy install targets (no source, no compilation necessary). To reproduce this please do the following: mkdir cpacktest cd cpacktest touch foo.txt touch bar.txt and create the following CMakeLists.txt: project(cpacktest) cmake_minimum_required(VERSION 2.8) # project version info set(MAJOR_VERSION 1) set(MINOR_VERSION 0) set(PATCH_VERSION 0) # create some dummy install targets for testing components install(FILES foo.txt DESTINATION bin COMPONENT applications) install(FILES bar.txt DESTINATION bin COMPONENT libraries) #{{{ Debian package generation ############################################### ################################# IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") INCLUDE(InstallRequiredSystemLibraries) SET(CPACK_SET_DESTDIR "on") SET(CPACK_PACKAGING_INSTALL_PREFIX "/tmp") SET(CPACK_GENERATOR "DEB") SET(CPACK_PACKAGE_DESCRIPTION "CPack Component Test") SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Testing filtering for CPack components") SET(CPACK_PACKAGE_VENDOR "ACME Inc.") SET(CPACK_PACKAGE_CONTACT "i...@acme.com") SET(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}") SET(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}") SET(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}") SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}_${MAJOR_VERSION}.${MINOR_VERSION}. ${CPACK_PACKAGE_VERSION_PATCH}") SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}_${MAJOR_VERSION}.${MINOR_VERSION}. ${CPACK_PACKAGE_VERSION_PATCH}") SET(CPACK_DEBIAN_COMPONENT_INSTALL ON) SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libcrack2 (>= 2.9.1), libqt5core5a (>= 5.3.0), libqt5widgets5 (>= 5.3.0), libqt5gui5 (>= 5.3.0)") SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") SET(CPACK_DEBIAN_PACKAGE_SECTION "kde") SET(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) # only pack the applications component, leave out all other components SET(CPACK_COMPONENTS_ALL applications) INCLUDE(CPack) ENDIF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") ############################################### ################################# #}}} Building the package: mkdir bld cd bld cmake -DCMAKE_INSTALL_PREFIX=/usr .. cpack This will build the deb package. Or alternatively use this for creating a TGZ cpack -G TGZ Result: The created packages contain both foo.txt and bar.txt. Expected Result: The package should contain only foo.txt I don't know if this is a bug, or if something is missing here in my CMakeLists.txt. I hope you can help me. -- mit freundlichen Grüßen / best regards Gerhard Gappmeier ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-KeyId: 5AAC50C4 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4 -- ascolab GmbH Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany Registernummer: HRB 9360 Registergericht: Amtsgericht Fürth
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: 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 CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake