[CMake] Fwd: Questions about CPack Debian generator

Eric Noulard eric.noulard at gmail.com
Fri Feb 12 15:36:57 EST 2010


2010/2/12 Hendrik Sattler <post at hendrik-sattler.de>:
>>
>> Did you dig the mailing list I think the "file owner" part has been
>> discussed already.
>> Concerning the dpkg-shlibs may be it's worth a feature request?
>> And may be even a contribution?
>> The code of Deb Generator is in:
>> CMake/Source/CPack/cmCPackDebGenerator.cxx
>
> Follow to that: can the cpack generators define their own package names? The
> current generators don't. Would be easy to implement, though.
>
> Some bad examples for current file names:
> TGZ/ZIP:
> ends with e.g. _Linux.tar.gz which is totally bogus because a binary package
> for "Linux" is not specific enough. It should at least contain the
> architecture.
> It would not be wrong to stick to the conventions out there. GCC's
> -dumpmachine is a good start on e.g. Linux.
>
> STGZ:
> Dump the "-Source" from STGZ (tarballs without mentioned architecture are
> usually source tarballs) or make it lower-case, at least.
>
> DEB:
> the file name is completely diffent from the standard naming of debian
> packages. Suffers from the same problem as TGZ generator. Additionally, the
> internal package description contains the right values from the variables
> but the generator cannot create the right file name from that :-(
>
> Additionally, .tar.gz files and .deb are usually all lower-case, not
> mixed-case.
> I wouldn't mind being able to choose the filenames in CMakeLists.txt files,
> myself. Is this actually possible except differing between
> source/non-source? However, the defaults need to be better, too.

For binary package you can set
CPACK_PACKAGE_FILE_NAME
in your CMakeLists.txt.

I personnally do use:


SET(CPACK_PACKAGE_FILE_NAME
"${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CMAKE_BUILD_TYPE}-${CPACK_SYSTEM_NAME}")

with customely modified CPACK_SYSTEM_NAME with this (used before the
previous line)
the "SystemSpecificInformations.cmake" is attached to this mail:

include(SystemSpecificInformations)

IF (SPECIFIC_COMPILER_NAME)
    SET(CPACK_SYSTEM_NAME
${SPECIFIC_SYSTEM_VERSION_NAME}-${SPECIFIC_COMPILER_NAME})
ELSE (SPECIFIC_COMPILER_NAME)
    SET(CPACK_SYSTEM_NAME ${SPECIFIC_SYSTEM_VERSION_NAME})
ENDIF(SPECIFIC_COMPILER_NAME)

For Source package you'll have to
SET(CPACK_SOURCE_PACKAGE_FILE_NAME ..

Now using that some problem still remain:
http://public.kitware.com/Bug/view.php?id=9900
http://public.kitware.com/Bug/view.php?id=7645

-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SystemSpecificInformations.cmake
Type: text/x-cmake
Size: 4426 bytes
Desc: not available
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100212/c4dd7347/attachment.bin>


More information about the CMake mailing list