summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-10-29 00:40:23 +0800
committerruki <[email protected]>2021-10-29 00:40:23 +0800
commit557c4c790f5d932052f223127dca14860b03eabc (patch)
treefcfa5468effc2157eaed06ca06a4e50f75b34249
parent2505c46acf19f66d92765854f0853d251be30506 (diff)
add git branch and commit
-rw-r--r--core/makefile14
-rw-r--r--core/src/xmake/engine.c4
-rw-r--r--core/src/xmake/makefile7
-rw-r--r--core/src/xmake/xmake.config.h.in2
4 files changed, 25 insertions, 2 deletions
diff --git a/core/makefile b/core/makefile
index 40811af32..51c7611fa 100644
--- a/core/makefile
+++ b/core/makefile
@@ -298,6 +298,14 @@ base_LIBNAMES += $(shell if { cat detect/readline.c | $(CC) -xc - -lreadline -o
base_LIBNAMES += m dl pthread
endif
+# get branch and commit
+ifeq ($(BRANCH),)
+BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
+endif
+ifeq ($(COMMIT),)
+COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
+endif
+
# check jit compiler
ifeq ($(PLAT),linux)
luajit_JIT :=$(shell if [ -f "/etc/redhat-release" ]; then echo "nojit"; else echo "jit"; fi )
@@ -360,6 +368,8 @@ config : .null
@$(ECHO) " small:\t\t"$(SMALL)
@$(ECHO) " ccache:\t\t"$(CCACHE)
@$(ECHO) " distcc:\t\t"$(DISTCC)
+ @$(ECHO) " branch:\t\t"$(BRANCH)
+ @$(ECHO) " commit:\t\t"$(COMMIT)
@$(ECHO) " luajit:\t\t"$(luajit_JIT)
@$(ECHO) ""
@$(ECHO) "packages:"
@@ -393,6 +403,10 @@ config : .null
@$(ECHO) "# project" >> .config.mak
@$(ECHO) "PRO_DIR ="$(PRO_DIR) >> .config.mak
@$(ECHO) "export PRO_DIR" >> .config.mak
+ @$(ECHO) "BRANCH ="$(BRANCH) >> .config.mak
+ @$(ECHO) "export BRANCH" >> .config.mak
+ @$(ECHO) "COMMIT ="$(COMMIT) >> .config.mak
+ @$(ECHO) "export COMMIT" >> .config.mak
@$(ECHO) "" >> .config.mak
@$(ECHO) "# profile" >> .config.mak
@$(ECHO) "PROF ="$(PROF) >> .config.mak
diff --git a/core/src/xmake/engine.c b/core/src/xmake/engine.c
index 0793f426e..f63e43ee1 100644
--- a/core/src/xmake/engine.c
+++ b/core/src/xmake/engine.c
@@ -906,7 +906,9 @@ xm_engine_ref_t xm_engine_init(tb_char_t const* name, xm_engine_lni_initalizer_c
// init version string
tb_char_t version_cstr[256] = {0};
- tb_snprintf(version_cstr, sizeof(version_cstr), "%u.%u.%u+%llu", version->major, version->minor, version->alter, version->build);
+ if (tb_strcmp(XM_CONFIG_VERSION_BRANCH, "") && tb_strcmp(XM_CONFIG_VERSION_COMMIT, ""))
+ tb_snprintf(version_cstr, sizeof(version_cstr), "%u.%u.%u+%s-%s", version->major, version->minor, version->alter, XM_CONFIG_VERSION_COMMIT, XM_CONFIG_VERSION_BRANCH);
+ else tb_snprintf(version_cstr, sizeof(version_cstr), "%u.%u.%u+%llu", version->major, version->minor, version->alter, version->build);
lua_pushstring(engine->lua, version_cstr);
lua_setglobal(engine->lua, "_VERSION");
diff --git a/core/src/xmake/makefile b/core/src/xmake/makefile
index 48eb51974..88bce5d1f 100644
--- a/core/src/xmake/makefile
+++ b/core/src/xmake/makefile
@@ -166,7 +166,12 @@ ifeq ($(RUNTIME),lua)
xmake_INC_DIRS += ../lua/lua
xmake_CXFLAGS += -DLUA_COMPAT_5_1 -DLUA_COMPAT_5_2 -DLUA_COMPAT_5_3
endif
-
+ifneq ($(BRANCH),)
+xmake_CXFLAGS += -DXM_CONFIG_VERSION_BRANCH="\"$(BRANCH)\""
+endif
+ifneq ($(COMMIT),)
+xmake_CXFLAGS += -DXM_CONFIG_VERSION_COMMIT="\"$(COMMIT)\""
+endif
# suffix
include $(PRO_DIR)/suffix.mak
diff --git a/core/src/xmake/xmake.config.h.in b/core/src/xmake/xmake.config.h.in
index d4c1f675a..a896b1335 100644
--- a/core/src/xmake/xmake.config.h.in
+++ b/core/src/xmake/xmake.config.h.in
@@ -7,5 +7,7 @@
#define XM_CONFIG_VERSION_MINOR ${VERSION_MINOR}
#define XM_CONFIG_VERSION_ALTER ${VERSION_ALTER}
#define XM_CONFIG_VERSION_BUILD ${VERSION_BUILD}
+#define XM_CONFIG_VERSION_BRANCH "${GIT_BRANCH}"
+#define XM_CONFIG_VERSION_COMMIT "${GIT_COMMIT}"
#endif