I would like to rename the installer file that CPack (v2.8.7) produces to include a version number that is obtained at build time from the version control system. It appears this cannot be be done by setting the CPACK_* variables because that happens at "cmake" time.
What I want to be able to do is to run "(n)make package" and have the installer file be created with no further commands required. The two possible approaches that I am aware of are manipulating the CPack filename variables at build time and renaming the final output of CPack.
If using "include(CPack)" in a CMakeLists.txt file then it appears that CPack always runs last and you can't have a post-build command. This mailing list message suggests that a custom target can be written to run CPack, but I was unable to figure out how to do that without creating infinite recursion.
How can this be done?
CPackOptions.cmake.in
and thecreate-cpackoptions.cmake
from the CMakeFile.txt. This means that you don't need two files in your source tree. For example:file(WRITE ${CMAKE_BINARY_DIR}/CPackOptions.cmake.in "set(CPACK_PACKAGE_FILE_NAME \"@proj_name@-\${CPACK_PACKAGE_VERSION}r@revision@-\${CPACK_SYSTEM_NAME}\")")
– Septuagesima