Make version generation more sane for program
This commit is contained in:
@@ -32,29 +32,17 @@ aux_source_directory("src" CFILES)
|
||||
|
||||
set(GEN_HEADER_PATH "${CMAKE_CURRENT_BINARY_DIR}/include/generated")
|
||||
|
||||
|
||||
if (DEFINED NO_VERSION_INFO)
|
||||
add_custom_target(
|
||||
version-header
|
||||
COMMAND
|
||||
mkdir -p ${GEN_HEADER_PATH} && bash "${CMAKE_CURRENT_SOURCE_DIR}/gen_version_header.sh" "${GEN_HEADER_PATH}/version.h" "dummy"
|
||||
WORKING_DIRECTORY
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "Generating version header dummy"
|
||||
)
|
||||
set (NO_VERSION_INFO true)
|
||||
message("${BoldMagenta}No Version Information will be built${ColorReset}")
|
||||
else(DEFINED NO_VERSION_INFO)
|
||||
add_custom_target(
|
||||
version-header
|
||||
COMMAND
|
||||
mkdir -p ${GEN_HEADER_PATH} && bash "${CMAKE_CURRENT_SOURCE_DIR}/gen_version_header.sh" "${GEN_HEADER_PATH}/version.h"
|
||||
${CMAKE_COMMAND} -D SRC=${CMAKE_SOURCE_DIR}/version.h.template
|
||||
-D DST=${GEN_HEADER_PATH}/version.h
|
||||
-P ${CMAKE_SOURCE_DIR}/GenerateVersion.cmake
|
||||
WORKING_DIRECTORY
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "Generating version header"
|
||||
)
|
||||
add_subdirectory(man)
|
||||
endif(DEFINED NO_VERSION_INFO)
|
||||
|
||||
add_custom_target(schema-header DEPENDS "${GEN_HEADER_PATH}/schema-blob.h")
|
||||
add_custom_command(
|
||||
|
26
GenerateVersion.cmake
Normal file
26
GenerateVersion.cmake
Normal file
@@ -0,0 +1,26 @@
|
||||
find_package(Git)
|
||||
|
||||
if(GIT_EXECUTABLE)
|
||||
get_filename_component(WORKING_DIR ${SRC} DIRECTORY)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} describe --always --dirty
|
||||
WORKING_DIRECTORY ${WORKING_DIR}
|
||||
OUTPUT_VARIABLE PROGRAM_GIT_VERSION
|
||||
RESULT_VARIABLE ERROR_CODE
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
if(NOT ERROR_CODE EQUAL "0")
|
||||
set(PROGRAM_GIT_VERSION "")
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
if(PROGRAM_GIT_VERSION STREQUAL "")
|
||||
set(PROGRAM_GIT_VERSION 0.0.0-unknown)
|
||||
message(WARNING "Failed to determine version from Git tags. Using default version \"${PROGRAM_GIT_VERSION}\".")
|
||||
else()
|
||||
message("Git Version: \"${PROGRAM_GIT_VERSION}\".")
|
||||
endif()
|
||||
|
||||
configure_file(${SRC} ${DST} @ONLY)
|
4
version.h.template
Normal file
4
version.h.template
Normal file
@@ -0,0 +1,4 @@
|
||||
#ifndef _GENRATED_VERSION_H_
|
||||
#define _GENRATED_VERSION_H_
|
||||
#define GIT_VERSION_STRING "@PROGRAM_GIT_VERSION@"
|
||||
#endif /* _GENRATED_VERSION_H_ */
|
Reference in New Issue
Block a user