[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