From 1397f10a73fd15fa0cf8a623392c43fb906bcc4a Mon Sep 17 00:00:00 2001 From: Christian Hohnstaedt Date: Sat, 22 May 2021 19:43:12 +0200 Subject: [PATCH] cmake: Add target "release" to create a tar.gz from a git tag cmake -DRELEASE_TAG=master --build . && make release --- cmake/git_version.cmake | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cmake/git_version.cmake b/cmake/git_version.cmake index 7b6edbd4..1d047438 100644 --- a/cmake/git_version.cmake +++ b/cmake/git_version.cmake @@ -31,6 +31,19 @@ if(Git_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}") message(STATUS "Commit counter: ${GIT_COMMIT_COUNTER} - ${GIT_REV} - ${PROJECT_VERSION}") endif() + set(RELEASE_TAG "RELEASE.${PROJECT_VERSION}" + CACHE STRING "Release TAG for the release") + set(RELEASE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}") + add_custom_command( + OUTPUT "${RELEASE_NAME}.tar.gz" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" + COMMAND git archive --format=tar.gz --prefix=${RELEASE_NAME}/ + ${RELEASE_TAG} > ${CMAKE_BINARY_DIR}/${RELEASE_NAME}.tar.gz + COMMENT "Create ${RELEASE_NAME}.tar.gz from tag ${RELEASE_TAG}" + ) + add_custom_target(release DEPENDS ${RELEASE_NAME}.tar.gz) + endif() + message(STATUS "VERSION: ${PROJECT_VERSION}")