Desidero rinominare il file di installazione che CPack (v2.8.7) produce per includere un numero di versione ottenuto in fase di compilazione dal sistema di controllo della versione. Sembra che questo non può essere fatto impostando le variabili CPACK_ * perché ciò accade nel tempo "cmake".Rinomina l'output di CPack
Quello che voglio essere in grado di fare è eseguire "(n) make package" e fare in modo che il file di installazione sia creato senza ulteriori comandi richiesti. I due possibili approcci di cui sono a conoscenza sono la manipolazione delle variabili del nome file CPack durante la compilazione e la ridenominazione dell'output finale di CPack.
Se si utilizza "include (CPack)" in un file CMakeLists.txt, sembra che CPack venga sempre eseguito per ultimo e non si possa avere un comando post-compilazione. This mailing list message suggerisce che è possibile scrivere un target personalizzato per eseguire CPack, ma non sono riuscito a capire come farlo senza creare una ricorsione infinita.
Come si può fare?
Si potrebbe fare un ulteriore passo avanti e generare 'CPackOptions.cmake.in' e' create-cpackoptions.cmake' da CMakeFile.txt. Ciò significa che non hai bisogno di due file nell'albero dei sorgenti. Ad esempio: 'file (WRITE $ {CMAKE_BINARY_DIR} /CPackOptions.cmake.in" set (CPACK_PACKAGE_FILE_NAME \ "@ proj_name @ - \ $ {CPACK_PACKAGE_VERSION} r @ revision @ - \ $ {CPACK_SYSTEM_NAME} \") ")' –