[CMake] Component Package Name
EXT-York, Gantry
gantry.york at boeing.com
Wed Nov 9 09:44:46 EST 2011
This is the naming scheme that I want to use:
<software name>-<software version>-<package version>-<OS>-<arch>.rpm
Example:
BigBrother-1.2.3-01-rhel6.i686.rpm
But when I do a component packaging I want to use:
<component name>-<component version>-<package version>-<OS>-<arch>.rpm
Examples:
WireTap-9.8.1-11-rhel6.i686.rpm
RetinalScan-5.6.33-02.rhel6.i686.rpm
Perhaps the mechanism that should be used is to define a format string
set( CPACK_RPM_PACKAGE_NAME_FULL_FORMAT "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}-${CMAKE_BUILD_OS}-${CMAKE_BUILD_ARCH}" )
and
set( CPACK_RPM_PACKAGE_NAME_COMPONENT_FORMAT "${CPACK_COMPONENT_NAME}-${CPACK_COMPONENT_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}-${CMAKE_BUILD_OS}-${CMAKE_BUILD_ARCH}" )
Where
CPACK_COMPONENT_NAME is defined from the install( ... COMPONENT ... ) argument
CPACK_COMPONENT_VERSION would substitute in CPACK_COMPONENT_<component>_VERSION
find_package_version( <directory> ) would look at a directory and try to determine the next package release number to set CPACK_PACKAGE_RELEASE to. Otherwise, the user could set CPACK_PACKAGE_RELEASE manually. Of course CPACK_RPM_PACKAGE_RELEASE would just default to CPACK_PACKAGE_RELEASE.
find_build_os() would set CMAKE_BUILD_OS
find_build_arch() would set CMAKE_BUILD_ARCH
It would also be nice if we could have full packaging and component packaging turned on at the same time.
-----Original Message-----
From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On Behalf Of Eric Noulard
Sent: Wednesday, November 09, 2011 12:21 AM
To: Gantry York
Cc: cmake at cmake.org
Subject: Re: [CMake] Component Package Name
2011/11/9 Gantry York <gantry.york at digitascio.com>:
> I'm trying to set up component based packaging (with RPM). I have it
> working, I just can't control the name.
You currently don't have full control over the package name.
- for a non-component packaging you can chose the package
name by setting:
CPACK_PACKAGE_FILE_NAME
if you do no set this you get:
${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}"
- for a component packaging this name is mangled using
component [group] name in order to have unique package name.
> I would like it to be something like
>
> comp-9.9.9-01-rhel5-i686.rpm
is "comp" the name of the component?
> But currently it uses $CPACK_PACKAGE_NAME instead of the component name.
which version of CPack/CMake are you using?
may be you can tell us the naming scheme you want and we could think
of a feature request to fullfil it.
If you would like to provide a patch (preferably against current
master) I'll be glad to review it.
Are you only using RPM or do you use other CPack generator for which you
have similar needs (ZIP, TGZ, DEB) ?
--
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
--
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
More information about the CMake
mailing list