[CMake] Empty CPack variables
Eric Noulard
eric.noulard at gmail.com
Sun Oct 6 16:55:56 EDT 2013
2013/10/6 Pau Garcia i Quiles <pgquiles at elpauer.org>:
> 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".
I think your conclusion is flawed.
doing
set(CPACK_PACKAGE_FILE_NAME
"${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}")
in your CMakeLists.txt will set CPACK_PACKAGE_FILE_NAME to "--"
BECAUSE
CPACK_PACKAGE_NAME, CPACK_PACKAGE_VERSION and CPACK_SYSTEM_NAME
are not defined YET.
In fact they will be defined AFTER include(CPack).
> 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)
You should either:
1) not rely on CPACK_xxx variable before include(CPack) and craft the value
of CPACK_PACKAGE_FILE_NAME entirely.
or
2) use a CPACK_PROJECT_CONFIG_FILE and re-define
CPACK_PACKAGE_FILE_NAME in there.
The CPack project file is loaded at CPack time so that all "usual"
CPack variables will
be defined and usable.
--
Erk
L'élection n'est pas la démocratie -- http://www.le-message.org
More information about the CMake
mailing list