Me gustaría cambiar el nombre del archivo de instalador que produce CPack (v2.8.7) para incluir un número de versión que se obtiene en el tiempo de compilación desde el sistema de control de versiones. Parece que esto no puede hacerse configurando las variables CPACK_ * porque eso ocurre en el momento "cmake".Cambiar el nombre de la salida de CPack
Lo que quiero hacer es ejecutar "(n) make package" y hacer que el archivo instalador se cree sin necesidad de más comandos. Los dos enfoques posibles que conozco son la manipulación de las variables de nombre de archivo CPack en tiempo de compilación y el cambio de nombre de la salida final de CPack.
Si utiliza "include (CPack)" en un archivo CMakeLists.txt, entonces parece que CPack siempre se ejecuta en último lugar y no puede tener un comando posterior a la compilación. This mailing list message sugiere que se puede escribir un destino personalizado para ejecutar CPack, pero no pude averiguar cómo hacerlo sin crear una recursión infinita.
¿Cómo se puede hacer esto?
Puede ir un paso más allá y generar el 'CPackOptions.cmake.in' y el' create-cpackoptions.cmake' del CMakeFile.txt. Esto significa que no necesita dos archivos en su árbol fuente. Por ejemplo: 'file (WRITE $ {CMAKE_BINARY_DIR} /CPackOptions.cmake.in" set (CPACK_PACKAGE_FILE_NAME \ "@ proj_name @ - \ $ {CPACK_PACKAGE_VERSION} r @ revision @ - \ $ {CPACK_SYSTEM_NAME} \") ")' –