[CMake] Empty CPack variables

Andreas Pakulat apaku at gmx.de
Sun Oct 6 17:21:49 EDT 2013


Hi,

On Sun, Oct 6, 2013 at 10:13 PM, Pau Garcia i Quiles
<pgquiles at elpauer.org>wrote:

> Hello,
>
> I am using CMake 2.8.11.2 on Windows to build and package some software.
> If I do this, it works fine:
>
>    set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Wt binary build")
>    set(CPACK_PACKAGE_VENDOR "emweb bvba")
>    set(CPACK_PACKAGE_DESCRIPTION_FILE
> "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
>    set(CPACK_RESOURCE_FILE_LICENSE
> "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
>    set(CPACK_PACKAGE_VERSION_MAJOR "3")
>    set(CPACK_PACKAGE_VERSION_MINOR "3")
>    set(CPACK_PACKAGE_VERSION_PATCH "1")
>    set(CPACK_PACKAGE_INSTALL_DIRECTORY "Wt
> ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
>    set(CPACK_GENERATOR "ZIP;NSIS")
>    include(CPack)
>
> But if I add this line before include(CPack):
>
>   set(CPACK_PACKAGE_FILE_NAME
> "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}")
>
> then CPACK_PACKAGE_NAME, CPACK_PACKAGE_VERSION and CPACK_SYSTEM_NAME are
> empty and the file is generated as "---.zip" / "---.exe". Am I doing
> something wrong? (I want to add a couple more variables in the
> CPACK_PACKAGE_FILE_NAME variable to specify compiler and compiler version,
> that's why I'm composing CPACK_PACKAGE_FILE_NAME)
>

I ran into this myself. IIRC the docs are not that clear on this, but the
CPACK_* variables are only set inside the CPackConfig file, i.e. they are
empty before your include(CPack). Thats the reason you end up with an empty
name.

However the docs on the CPACK_* variables are rather clear on where they
get their default value from if they're not set, so you should be able to
look that up and replace CPACK_* with whatever they use as default (for
example CMAKE_SYSTEM_NAME instead of CPACK_SYSTEM_NAME).

What I ended up to include the bitness is to set CPACK_SYSTEM_NAME myself
and let the defaults of the rest be filled in, I'm using CMAKE_SYSTEM_NAME
and simply append the 32/64 value with an additional variable. I'd probably
do the same if I needed to have 'msvcXY' in the final package name (or
something similar).

Andreas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20131006/08d73546/attachment.htm>


More information about the CMake mailing list