It's possible to invoke several CPack generators with one call of 'make package' by configuring in CMakeLists.txt: set(CPACK_GENERATOR "STGZ;TGZ;TZ;RPM;DEB") So far, so good!
A generated package can and shall be relocatable. In other words: You can determine at package install time, **where** in the file system the content of the package shall be installed to. If you install the package without an explicit target location, the default value is used. Each CPack generator has it's own individual predefined default value (/usr for RPM, ...). " This default value may be overwritten from the CMakeLists.txt or the cpack command line by setting an alternative value. e.g. set(CPACK_PACKAGING_INSTALL_PREFIX “/opt”) " ( ->doc of CPACK_PACKAGING_INSTALL_PREFIX) My question: It's not unusual that one package has different default locations for different distributions. So, is it possible to configure different default locations for RPM and DEB, so that one call of 'make package' can generate a .rpm package with default location '/opt/kde3' and a .deb package with default location '/usr/local/kde' ? My problem: When I tried set(CPACK_PACKAGING_INSTALL_PREFIX “/opt/kde3”), 'cmake -DCMAKE_INSTALL_PREFIX=/opt/kde3 ..' ran normal, but 'make package' aborted with an error messages (repeated several times): CMake Error at /usr/share/cmake/Modules/CPackRPM.cmake:623 (file): file RELATIVE_PATH must be passed a full path to the directory: “/opt/kde3” Call Stack (most recent call first): /usr/share/cmake/Modules/CPackRPM.cmake:1282 (cpack_rpm_prepare_relocation_paths) /usr/share/cmake/Modules/CPackRPM.cmake:1770 (cpack_rpm_generate_package) The code: # CPACK include(InstallRequiredSystemLibraries) set(CPACK_GENERATOR "STGZ;TGZ;TZ;RPM;DEB") set(CPACK_PACKAGING_INSTALL_PREFIX “/opt/kde3”) #set(CPACK_SET_DESTDIR "ON") set(CPACK_PACKAGE_VERSION "${TuxMinds_VERSION}") set(CPACK_PACKAGE_VERSION_MAJOR "${TuxMinds_VERSION_MAJOR}") set(CPACK_PACKAGE_VERSION_MINOR "${TuxMinds_VERSION_MINOR}") set(CPACK_PACKAGE_VERSION_PATCH "${TuxMinds_VERSION_PATCH}") set(CPACK_PACKAGE_NAME "${P_NAME}") set(CPACK_PACKAGE_FILE_NAME "${P_NAME}-${CPACK_PACKAGE_VERSION}-1.x86_64") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "An easy to use GUI for robot programming and remote control tool") set(CPACK_PACKAGE_VENDOR "Winfried <manjaro...@users.sourceforge.net>") set(CPACK_PACKAGE_DESCRIPTION_FILE "${TuxMinds_SOURCE_DIR}/DESCRIPTION") set(CPACK_RESOURCE_FILE_LICENSE "${TuxMinds_SOURCE_DIR}/COPYING") # RPM #set(CPACK_RPM_PACKAGE_NAME "${CPACK_PACKAGE_NAME}") done by default! #set(CPACK_RPM_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}") done by default! #set(CPACK_RPM_PACKAGE_RELEASE "1") done by default, do alter if packaging errors have to be fixed! #set(CPACK_RPM_PACKAGE_RELEASE "2") activate, if the previous packaging was buggy and/or for fancy Linux distro specific numbering! #set(CPACK_RPM_PACKAGE_SUMMARY "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}") done by default! #set(CPACK_RPM_PACKAGE_VENDOR "${CPACK_PACKAGE_VENDOR}") done by default! if(BUILD_X64) set(CPACK_RPM_PACKAGE_ARCH "x86_64") else(BUILD_X64) set(CPACK_RPM_PACKAGE_ARCH "i386") endif(BUILD_X64) set(CPACK_RPM_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCH}.rpm") set(CPACK_RPM_PACKAGE_LICENSE "${CPACK_RESOURCE_FILE_LICENSE}") # DEB INCLUDE(CPack) Before trying set(CPACK_PACKAGING_INSTALL_PREFIX “/opt/kde3”) I tried set(CPACK_SET_DESTDIR "ON"). Files in the package were in the right place but I was warned that the resulting .rpm package isn't relocatable anymore. -- View this message in context: http://cmake.3232098.n2.nabble.com/make-package-Is-setting-generators-to-different-default-paths-possible-tp7592978.html Sent from the CMake mailing list archive at Nabble.com. -- 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