mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-07 01:52:46 +08:00
[cmake]: Add history log
1. Remove SVN version record. 2. CMakeLists will record max 10 git version. 3. Use mpp_show_history to control the history display. 4. Use strings libmpp.so | grep author to get history log from binary. Change-Id: I5231ced4031d868fe1329488c914730dc91a3531 Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
107
CMakeLists.txt
107
CMakeLists.txt
@@ -170,38 +170,23 @@ if(GCC)
|
|||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti")
|
||||||
endif(GCC)
|
endif(GCC)
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Create svn version information
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
set(HAVE_SVN 0)
|
|
||||||
if(EXISTS "${PROJECT_SOURCE_DIR}/.svn/")
|
|
||||||
find_host_package(Subversion)
|
|
||||||
if(Subversion_FOUND)
|
|
||||||
set(HAVE_SVN true)
|
|
||||||
endif(Subversion_FOUND)
|
|
||||||
endif(EXISTS "${PROJECT_SOURCE_DIR}/.svn/")
|
|
||||||
|
|
||||||
if(${HAVE_SVN})
|
|
||||||
Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
|
|
||||||
|
|
||||||
message(STATUS "Current svn revision is ${Project_WC_REVISION}")
|
|
||||||
set(VERSION_REVISION ${Project_WC_REVISION})
|
|
||||||
set(VERSION_LAST_AUTHOR ${Project_WC_LAST_CHANGED_AUTHOR})
|
|
||||||
set(VERSION_LAST_DATE ${Project_WC_LAST_CHANGED_DATE})
|
|
||||||
set(VERSION_ONE_LINE "${VERSION_REVISION} author: ${VERSION_LAST_AUTHOR} date: ${VERSION_LAST_DATE}")
|
|
||||||
set(VERSION_VER_NUM ${VERSION_REVISION})
|
|
||||||
else()
|
|
||||||
set(VERSION_REVISION -1)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Create git version information
|
# Create git version information
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
set(VERSION_CNT 0)
|
||||||
|
set(VERSION_MAX_CNT 10)
|
||||||
|
set(VERSION_INFO "\"unknown mpp version for missing VCS info\"")
|
||||||
|
foreach (CNT RANGE ${VERSION_MAX_CNT})
|
||||||
|
set(VERSION_HISTORY_${CNT} "NULL")
|
||||||
|
endforeach(CNT)
|
||||||
|
|
||||||
if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
||||||
find_host_package(Git)
|
find_host_package(Git)
|
||||||
if(GIT_FOUND)
|
if(GIT_FOUND)
|
||||||
# get author
|
# get current version info
|
||||||
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%an
|
set(GIT_LOG_FORMAT "%h author: %<|(30)%an %cd %s")
|
||||||
|
|
||||||
|
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --oneline --date=short --pretty=format:${GIT_LOG_FORMAT}
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||||
OUTPUT_VARIABLE EXEC_OUT
|
OUTPUT_VARIABLE EXEC_OUT
|
||||||
ERROR_VARIABLE EXEC_ERROR
|
ERROR_VARIABLE EXEC_ERROR
|
||||||
@@ -210,12 +195,19 @@ if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
|||||||
ERROR_STRIP_TRAILING_WHITESPACE)
|
ERROR_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
if (NOT EXEC_RET)
|
if (NOT EXEC_RET)
|
||||||
message(STATUS "author: ${EXEC_OUT}")
|
set(VERSION_INFO ${EXEC_OUT})
|
||||||
set(VERSION_LAST_AUTHOR ${EXEC_OUT})
|
message(STATUS "current version:")
|
||||||
|
message(STATUS "${VERSION_INFO}")
|
||||||
|
set(VERSION_INFO "\"${VERSION_INFO}\"")
|
||||||
|
else()
|
||||||
|
message(STATUS "git ret ${EXEC_RET}")
|
||||||
|
message(STATUS "${EXEC_ERROR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# get date
|
set(GIT_LOG_FORMAT "%h author: %<|(30)%an %cd %s %d")
|
||||||
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%ad
|
|
||||||
|
# get history version information
|
||||||
|
execute_process(COMMAND ${GIT_EXECUTABLE} log -${VERSION_MAX_CNT} --oneline --date=short --pretty=format:${GIT_LOG_FORMAT}
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||||
OUTPUT_VARIABLE EXEC_OUT
|
OUTPUT_VARIABLE EXEC_OUT
|
||||||
ERROR_VARIABLE EXEC_ERROR
|
ERROR_VARIABLE EXEC_ERROR
|
||||||
@@ -224,42 +216,23 @@ if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
|||||||
ERROR_STRIP_TRAILING_WHITESPACE)
|
ERROR_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
if (NOT EXEC_RET)
|
if (NOT EXEC_RET)
|
||||||
message(STATUS "date : ${EXEC_OUT}")
|
set(VERSION_HISTORY ${EXEC_OUT})
|
||||||
set(VERSION_LAST_DATE ${EXEC_OUT})
|
string(REPLACE "\n" ";" VERSION_HISTORY ${VERSION_HISTORY})
|
||||||
|
|
||||||
|
list(LENGTH VERSION_HISTORY VERSION_CNT)
|
||||||
|
message(STATUS "${VERSION_CNT} git history:")
|
||||||
|
|
||||||
|
# setup logs
|
||||||
|
set(CNT 0)
|
||||||
|
foreach(VERSION_LOG ${VERSION_HISTORY})
|
||||||
|
message(STATUS ${VERSION_LOG})
|
||||||
|
set(VERSION_HISTORY_${CNT} "\"${VERSION_LOG}\"")
|
||||||
|
math(EXPR CNT "${CNT}+1")
|
||||||
|
endforeach(VERSION_LOG)
|
||||||
|
else()
|
||||||
|
message(STATUS "git ret ${EXEC_RET}")
|
||||||
|
message(STATUS "${EXEC_ERROR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# get version hash
|
|
||||||
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%H
|
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
||||||
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"
|
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
||||||
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)
|
|
||||||
else(GIT_FOUND)
|
|
||||||
set(VERSION_ONE_LINE "Missing VCS info")
|
|
||||||
set(VERSION_LAST_AUTHOR "Unknown")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# add git hooks
|
# add git hooks
|
||||||
@@ -271,10 +244,6 @@ if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
|||||||
message(STATUS "Install git hooks done")
|
message(STATUS "Install git hooks done")
|
||||||
endif(EXISTS "${PROJECT_SOURCE_DIR}/.git/hooks")
|
endif(EXISTS "${PROJECT_SOURCE_DIR}/.git/hooks")
|
||||||
endif(EXISTS "${PROJECT_SOURCE_DIR}/tools/hooks/")
|
endif(EXISTS "${PROJECT_SOURCE_DIR}/tools/hooks/")
|
||||||
|
|
||||||
else(EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
|
||||||
set(VERSION_ONE_LINE "Without VCS info")
|
|
||||||
set(VERSION_LAST_AUTHOR "Unknown")
|
|
||||||
endif(EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
endif(EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
|
@@ -17,11 +17,17 @@
|
|||||||
#ifndef __VERSION_H__
|
#ifndef __VERSION_H__
|
||||||
#define __VERSION_H__
|
#define __VERSION_H__
|
||||||
|
|
||||||
#define MPP_VERSION "@VERSION_REVISION@"
|
#define MPP_VERSION @VERSION_INFO@
|
||||||
#define MPP_AUTHOR "@VERSION_LAST_AUTHOR@"
|
#define MPP_VER_HIST_CNT @VERSION_CNT@
|
||||||
#define MPP_DATE "@VERSION_LAST_DATA@"
|
#define MPP_VER_HIST_0 @VERSION_HISTORY_0@
|
||||||
#define MPP_ONE_LINE "@VERSION_ONE_LINE@"
|
#define MPP_VER_HIST_1 @VERSION_HISTORY_1@
|
||||||
#define MPP_VER_NUM "@VERSION_VER_NUM@"
|
#define MPP_VER_HIST_2 @VERSION_HISTORY_2@
|
||||||
|
#define MPP_VER_HIST_3 @VERSION_HISTORY_3@
|
||||||
|
#define MPP_VER_HIST_4 @VERSION_HISTORY_4@
|
||||||
|
#define MPP_VER_HIST_5 @VERSION_HISTORY_5@
|
||||||
|
#define MPP_VER_HIST_6 @VERSION_HISTORY_6@
|
||||||
|
#define MPP_VER_HIST_7 @VERSION_HISTORY_7@
|
||||||
|
#define MPP_VER_HIST_8 @VERSION_HISTORY_8@
|
||||||
|
#define MPP_VER_HIST_9 @VERSION_HISTORY_9@
|
||||||
|
|
||||||
#endif /*__VERSION_H__*/
|
#endif /*__VERSION_H__*/
|
||||||
|
|
||||||
|
@@ -17,31 +17,11 @@
|
|||||||
#ifndef __MPP_INFO_H__
|
#ifndef __MPP_INFO_H__
|
||||||
#define __MPP_INFO_H__
|
#define __MPP_INFO_H__
|
||||||
|
|
||||||
typedef enum RK_CHIP_TYPE {
|
|
||||||
NONE,
|
|
||||||
RK29,
|
|
||||||
RK30,
|
|
||||||
RK31,
|
|
||||||
|
|
||||||
RK_CHIP_NUM = 0x100,
|
|
||||||
} RK_CHIP_TYPE;
|
|
||||||
|
|
||||||
typedef enum MPP_INFO_TYPE {
|
|
||||||
INFO_ALL,
|
|
||||||
INFO_REVISION,
|
|
||||||
INFO_DATE,
|
|
||||||
INFO_AUTHOR,
|
|
||||||
|
|
||||||
INFO_BUTT,
|
|
||||||
} MPP_INFO_TYPE;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
RK_CHIP_TYPE get_chip_type();
|
void show_mpp_version(void);
|
||||||
const char *mpp_info_get(MPP_INFO_TYPE type);
|
|
||||||
int mpp_info_get_revision();
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@@ -455,14 +455,14 @@ MPP_RET mpp_create(MppCtx *ctx, MppApi **mpi)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mpp_api.version = mpp_info_get_revision();
|
mpp_api.version = 0;
|
||||||
p->api = &mpp_api;
|
p->api = &mpp_api;
|
||||||
p->check = p;
|
p->check = p;
|
||||||
*ctx = p;
|
*ctx = p;
|
||||||
*mpi = p->api;
|
*mpi = p->api;
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
mpp_log("mpp version: %s\n", mpp_info_get(INFO_ALL));
|
show_mpp_version();
|
||||||
|
|
||||||
mpi_dbg_func("leave ret %d ctx %p mpi %p\n", ret, *ctx, *mpi);
|
mpi_dbg_func("leave ret %d ctx %p mpi %p\n", ret, *ctx, *mpi);
|
||||||
return ret;
|
return ret;
|
||||||
|
@@ -29,75 +29,33 @@
|
|||||||
* To avoid string | grep author getting multiple results
|
* To avoid string | grep author getting multiple results
|
||||||
* use commit to replace author
|
* use commit to replace author
|
||||||
*/
|
*/
|
||||||
static char mpp_version_revision[] = MPP_VERSION;
|
static const char mpp_version[] = MPP_VERSION;
|
||||||
static char mpp_version_commit[] = MPP_AUTHOR;
|
static const RK_S32 mpp_history_cnt = MPP_VER_HIST_CNT;
|
||||||
static char mpp_version_date[] = MPP_DATE;
|
static const char *mpp_history[] = {
|
||||||
static char mpp_version_one_line[] = MPP_ONE_LINE;
|
MPP_VER_HIST_0,
|
||||||
static char mpp_version_number[] = MPP_VER_NUM;
|
MPP_VER_HIST_1,
|
||||||
|
MPP_VER_HIST_2,
|
||||||
|
MPP_VER_HIST_3,
|
||||||
|
MPP_VER_HIST_4,
|
||||||
|
MPP_VER_HIST_5,
|
||||||
|
MPP_VER_HIST_6,
|
||||||
|
MPP_VER_HIST_7,
|
||||||
|
MPP_VER_HIST_8,
|
||||||
|
MPP_VER_HIST_9,
|
||||||
|
};
|
||||||
|
|
||||||
static RK_CHIP_TYPE chip_version(void)
|
void show_mpp_version(void)
|
||||||
{
|
{
|
||||||
RK_CHIP_TYPE type = NONE;
|
RK_U32 show_history = 0;
|
||||||
const char *value = NULL;
|
|
||||||
RK_S32 ret = mpp_env_get_str("ro.product.board", &value, NULL);
|
|
||||||
|
|
||||||
if (0 == ret) {
|
mpp_env_get_u32("mpp_show_history", &show_history, 0);
|
||||||
if (strstr(value, "rk29")) {
|
|
||||||
mpp_log("rk29 board found in board property");
|
|
||||||
type = RK29;
|
|
||||||
} else if (strstr(value, "rk30")) {
|
|
||||||
mpp_log("rk30 board found in board property");
|
|
||||||
type = RK30;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (NONE == type) {
|
|
||||||
ret = mpp_env_get_str("ro.board.platform", &value, NULL);
|
|
||||||
if (0 == ret) {
|
|
||||||
if (strstr(value, "rk29")) {
|
|
||||||
mpp_log("rk29 board found in platform property");
|
|
||||||
type = RK29;
|
|
||||||
} else if (strstr(value, "rk30")) {
|
|
||||||
mpp_log("rk30 board found in platform property");
|
|
||||||
type = RK30;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NONE == type) {
|
if (show_history) {
|
||||||
mpp_log("can not found matched chip type");
|
RK_S32 i;
|
||||||
}
|
|
||||||
return type;
|
mpp_log("mpp version history %d:\n", mpp_history_cnt);
|
||||||
|
for (i = 0; i < mpp_history_cnt; i++)
|
||||||
|
mpp_log("%s\n", mpp_history[i]);
|
||||||
|
} else
|
||||||
|
mpp_log("mpp version: %s\n", mpp_version);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *mpp_info_get(MPP_INFO_TYPE type)
|
|
||||||
{
|
|
||||||
switch (type) {
|
|
||||||
case INFO_ALL : {
|
|
||||||
return mpp_version_one_line;
|
|
||||||
} break;
|
|
||||||
case INFO_REVISION : {
|
|
||||||
return mpp_version_revision;
|
|
||||||
} break;
|
|
||||||
case INFO_DATE : {
|
|
||||||
return mpp_version_date;
|
|
||||||
} break;
|
|
||||||
case INFO_AUTHOR : {
|
|
||||||
return mpp_version_commit;
|
|
||||||
} break;
|
|
||||||
default : {
|
|
||||||
mpp_err_f("invalid info type %d\n", type);
|
|
||||||
} break;
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
RK_CHIP_TYPE get_chip_type()
|
|
||||||
{
|
|
||||||
return chip_version();
|
|
||||||
}
|
|
||||||
|
|
||||||
int mpp_info_get_revision()
|
|
||||||
{
|
|
||||||
return atoi(mpp_version_number);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@@ -17,15 +17,21 @@
|
|||||||
#define MODULE_TAG "mpp_info_test"
|
#define MODULE_TAG "mpp_info_test"
|
||||||
|
|
||||||
#include "mpp_log.h"
|
#include "mpp_log.h"
|
||||||
|
#include "mpp_env.h"
|
||||||
#include "mpp_info.h"
|
#include "mpp_info.h"
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
mpp_log("mpp revision is %d\n", mpp_info_get_revision());
|
mpp_env_set_u32("mpp_show_history", 0);
|
||||||
mpp_log("mpp info all:\n%s\n", mpp_info_get(INFO_ALL));
|
|
||||||
mpp_log("mpp info revision: %s\n", mpp_info_get(INFO_REVISION));
|
mpp_log("normal version log:\n");
|
||||||
mpp_log("mpp info date : %s\n", mpp_info_get(INFO_DATE));
|
show_mpp_version();
|
||||||
mpp_log("mpp info author : %s\n", mpp_info_get(INFO_AUTHOR));
|
|
||||||
|
mpp_env_set_u32("mpp_show_history", 1);
|
||||||
|
mpp_log("history version log:\n");
|
||||||
|
|
||||||
|
show_mpp_version();
|
||||||
|
mpp_env_set_u32("mpp_show_history", 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user