[cmake-developers] [CMake 0014944]: Add more control over individual components in a component-based configuration
Mantis Bug Tracker
mantis at public.kitware.com
Thu May 29 06:47:01 EDT 2014
The following issue has been SUBMITTED.
======================================================================
http://www.cmake.org/Bug/view.php?id=14944
======================================================================
Reported By: Thierry Valentin
Assigned To:
======================================================================
Project: CMake
Issue ID: 14944
Category: CPack
Reproducibility: always
Severity: minor
Priority: normal
Status: new
======================================================================
Date Submitted: 2014-05-29 06:47 EDT
Last Modified: 2014-05-29 06:47 EDT
======================================================================
Summary: Add more control over individual components in a
component-based configuration
Description:
Hello
I'm in the following situation:
I use Jenkins to build software binaries for several platforms. Each platform is
built in a in separate job. I also need to produce the software documentation
which is common to all platforms, so I only need a single job to build it.
I would like to configure the binary packages as follows:
- the package name should include the platform name, e.g:
MyProject-1.0.0-Linux64-runtime.tar.gz
- the package includes the toplevel directory, such that uncompressing the
package gives a directory MyProject-1.0.0/...
And I would like to configure the documentation packages as follows:
- the package name should NOT include the platform name, e.g:
MyProject-1.0.0-doc-user.tar.gz
- the package does NOT include the toplevel directory, such that uncompressing
the package gives the destination directory as specified in the INSTALL(FILES
... DESTINATION /doc/user) command in the CMakeLists.txt
This is currently impossible with the current version of CPack. But it could be
possible if we could specify PACKAGE_FILE_NAME and INCLUDE_TOPLEVEL_DIRECTORY at
the component level, as explained below:
# List of components:
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
set(CPACK_COMPONENTS_GROUPING "IGNORE")
set(CPACK_COMPONENTS_ALL runtime doc-user)
# Default settings:
set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION})
set(CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY true)
# Per component settings:
set(CPACK_COMPONENT_RUNTIME_DISPLAY_NAME "Application Runtime")
set(CPACK_COMPONENT_RUNTIME_PACKAGE_FILE_NAME
${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME})
set(CPACK_COMPONENT_DOC-USER_DISPLAY_NAME "Application Documentation")
set(CPACK_COMPONENT_DOC-USER_INCLUDE_TOPLEVEL_DIRECTORY OFF)
Thanks
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2014-05-29 06:47 Thierry ValentinNew Issue
======================================================================
More information about the cmake-developers
mailing list