[cmake]: add git and svn version script

Change-Id: Ia1f908986f503191c3e5a6bbe9dc5daa55648b40
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
Herman Chen
2016-08-20 18:44:34 +08:00
parent 9da1bfaa04
commit 72a6e3b06a
3 changed files with 79 additions and 15 deletions

View File

@@ -243,7 +243,6 @@ if(EXISTS "${PROJECT_SOURCE_DIR}/.svn/")
endif (NOT TORTOISE_WCREV_EXECUTABLE)
endif(WIN32)
endif(Subversion_FOUND)
endif(EXISTS "${PROJECT_SOURCE_DIR}/.svn/")
if(${HAVE_SVN})
@@ -253,15 +252,78 @@ if(${HAVE_SVN})
set(VERSION_REVISION ${Project_WC_REVISION})
set(VERSION_LAST_AUTHOR ${Project_WC_LAST_CHANGED_AUTHOR})
set(VERSION_LAST_DATA ${Project_WC_LAST_CHANGED_DATE})
set(VERSION_ONE_LINE "${VERSION_REVISION} author: ${VERSION_LAST_AUTHOR} date: ${VERSION_LAST_DATA}")
set(VERSION_VER_NUM ${VERSION_REVISION})
else()
set(VERSION_REVISION -1)
endif()
configure_file(
"${PROJECT_SOURCE_DIR}/build/cmake/svn_info.in"
"${PROJECT_SOURCE_DIR}/mpp/svn_info.h"
)
# ----------------------------------------------------------------------------
# Create git version information
# ----------------------------------------------------------------------------
if(EXISTS "${PROJECT_SOURCE_DIR}/.git/")
find_package(Git)
if(GIT_FOUND)
# get author
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%an
OUTPUT_VARIABLE EXEC_OUT
ERROR_VARIABLE EXEC_ERROR
RESULT_VARIABLE EXEC_RET
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)
if (NOT EXEC_RET)
message(STATUS "author: ${EXEC_OUT}")
set(VERSION_LAST_AUTHOR ${EXEC_OUT})
endif()
# get date
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%ad
OUTPUT_VARIABLE EXEC_OUT
ERROR_VARIABLE EXEC_ERROR
RESULT_VARIABLE EXEC_RET
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)
if (NOT EXEC_RET)
message(STATUS "author: ${EXEC_OUT}")
set(VERSION_LAST_DATA ${EXEC_OUT})
endif()
# get version hash
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%H
OUTPUT_VARIABLE EXEC_OUT
ERROR_VARIABLE EXEC_ERROR
RESULT_VARIABLE EXEC_RET
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)
if (NOT EXEC_RET)
set(VERSION_REVISION ${EXEC_OUT})
endif()
# get one line version information
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=format:"%h author: %an %s"
OUTPUT_VARIABLE EXEC_OUT
ERROR_VARIABLE EXEC_ERROR
RESULT_VARIABLE EXEC_RET
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)
if (NOT EXEC_RET)
message(STATUS "git version: ${EXEC_OUT}")
set(VERSION_ONE_LINE ${EXEC_OUT})
string(REPLACE "\"" "" VERSION_ONE_LINE ${VERSION_ONE_LINE})
endif()
set(VERSION_VER_NUM -1)
endif()
endif(EXISTS "${PROJECT_SOURCE_DIR}/.git/")
configure_file(
"${PROJECT_SOURCE_DIR}/build/cmake/version.in"
"${PROJECT_SOURCE_DIR}/mpp/version.h"
)
# ----------------------------------------------------------------------------
# Build options

View File

@@ -17,10 +17,11 @@
#ifndef __VERSION_H__
#define __VERSION_H__
#define SVN_VERSION "@VERSION_REVISION@"
#define SVN_AUTHOR "@VERSION_LAST_AUTHOR@"
#define SVN_DATE "@VERSION_LAST_DATA@"
#define SVN_ONE_LINE "r@VERSION_REVISION@ author: @VERSION_LAST_AUTHOR@ date: @VERSION_LAST_DATA@"
#define MPP_VERSION "@VERSION_REVISION@"
#define MPP_AUTHOR "@VERSION_LAST_AUTHOR@"
#define MPP_DATE "@VERSION_LAST_DATA@"
#define MPP_ONE_LINE "@VERSION_ONE_LINE@"
#define MPP_VER_NUM "@VERSION_VER_NUM@"
#endif /*__VERSION_H__*/

View File

@@ -23,16 +23,17 @@
#include "mpp_env.h"
#include "mpp_info.h"
#include "svn_info.h"
#include "version.h"
/*
* To avoid string | grep author getting multiple results
* use commit to replace author
*/
static char mpp_version_revision[] = SVN_VERSION;
static char mpp_version_commit[] = SVN_AUTHOR;
static char mpp_version_date[] = SVN_DATE;
static char mpp_version_one_line[] = SVN_ONE_LINE;
static char mpp_version_revision[] = MPP_VERSION;
static char mpp_version_commit[] = MPP_AUTHOR;
static char mpp_version_date[] = MPP_DATE;
static char mpp_version_one_line[] = MPP_ONE_LINE;
static char mpp_version_number[] = MPP_VER_NUM;
static RK_CHIP_TYPE chip_version(void)
{
@@ -97,6 +98,6 @@ RK_CHIP_TYPE get_chip_type()
int mpp_info_get_revision()
{
return atoi(SVN_VERSION);
return atoi(mpp_version_number);
}