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")
|
set(GEN_HEADER_PATH "${CMAKE_CURRENT_BINARY_DIR}/include/generated")
|
||||||
|
|
||||||
|
|
||||||
if (DEFINED NO_VERSION_INFO)
|
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
version-header
|
version-header
|
||||||
COMMAND
|
COMMAND
|
||||||
mkdir -p ${GEN_HEADER_PATH} && bash "${CMAKE_CURRENT_SOURCE_DIR}/gen_version_header.sh" "${GEN_HEADER_PATH}/version.h" "dummy"
|
${CMAKE_COMMAND} -D SRC=${CMAKE_SOURCE_DIR}/version.h.template
|
||||||
WORKING_DIRECTORY
|
-D DST=${GEN_HEADER_PATH}/version.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
-P ${CMAKE_SOURCE_DIR}/GenerateVersion.cmake
|
||||||
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"
|
|
||||||
WORKING_DIRECTORY
|
WORKING_DIRECTORY
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
COMMENT "Generating version header"
|
COMMENT "Generating version header"
|
||||||
)
|
)
|
||||||
add_subdirectory(man)
|
add_subdirectory(man)
|
||||||
endif(DEFINED NO_VERSION_INFO)
|
|
||||||
|
|
||||||
add_custom_target(schema-header DEPENDS "${GEN_HEADER_PATH}/schema-blob.h")
|
add_custom_target(schema-header DEPENDS "${GEN_HEADER_PATH}/schema-blob.h")
|
||||||
add_custom_command(
|
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