Chciałbym zmienić nazwę pliku instalatora, który tworzy CPack (v2.8.7), aby zawierał numer wersji uzyskany w czasie kompilacji z systemu kontroli wersji. Wygląda na to, że nie można tego zrobić, ustawiając zmienne CPACK_ *, ponieważ dzieje się to w czasie "cmake".Zmień nazwę wyjściową CPack
Co chcę zrobić, to uruchomić "(n) make package" i utworzyć plik instalatora bez żadnych dodatkowych poleceń. Dwa możliwe podejścia, o których mi wiadomo, to manipulowanie zmiennymi nazw pliku CPack w czasie kompilacji i zmiana nazwy końcowego wyniku CPack.
Jeśli używasz "include (CPack)" w pliku CMakeLists.txt, to wydaje się, że CPack zawsze działa jako ostatni i nie możesz mieć polecenia po instalacji. This mailing list message sugeruje, że niestandardowy cel można zapisać do uruchomienia CPack, ale nie byłem w stanie wymyślić, jak to zrobić bez tworzenia nieskończonej rekursji.
Jak można tego dokonać?
Możesz pójść o krok dalej i wygenerować 'CPackOptions.cmake.in' oraz' create-cpackoptions.cmake' z pliku CMakeFile.txt. Oznacza to, że nie potrzebujesz dwóch plików w drzewie źródłowym. Na przykład: 'file (WRITE $ {CMAKE_BINARY_DIR} /CPackOptions.cmake.in" zestaw (CPACK_PACKAGE_FILE_NAME \ "@ proj_name @ - \ $ {CPACK_PACKAGE_VERSION} r @ revision @ - \ $ {CPACK_SYSTEM_NAME} \") ")") –