@@ -37,21 +37,62 @@ include $(DEVKITPRO)/libnx/switch_rules
3737# of a homebrew executable (.nro). This is intended to be used for sysmodules.
3838# NACP building is skipped as well.
3939# ---------------------------------------------------------------------------------
40+
41+ GIT_DESCRIBE := $(patsubst v% ,% ,$(shell git describe --tags --always --dirty) )
42+
43+ ifeq ($(findstring .,$(GIT_DESCRIBE ) ) ,)
44+ VERSION_MAJOR := 0
45+ VERSION_MINOR := 0
46+ VERSION_MICRO := 1
47+ else
48+ VERSION_MAJOR := $(word 1,$(subst ., ,$(GIT_DESCRIBE ) ) )
49+ VERSION_MINOR := $(word 2,$(subst ., ,$(GIT_DESCRIBE ) ) )
50+ VERSION_MICRO_FULL := $(word 3,$(subst ., ,$(GIT_DESCRIBE ) ) )
51+ VERSION_MICRO := $(firstword $(subst -, ,$(VERSION_MICRO_FULL ) ) )
52+ endif
53+
54+ increment = $(shell echo $$(($(1 ) + 1 ) ) )
55+
56+ ifeq ($(RELEASE_TYPE ) ,MAJOR)
57+ VERSION_MAJOR := $(call increment,$(VERSION_MAJOR ) )
58+ VERSION_MINOR := 0
59+ VERSION_MICRO := 0
60+ endif
61+
62+ ifeq ($(RELEASE_TYPE ) ,MINOR)
63+ VERSION_MINOR := $(call increment,$(VERSION_MINOR ) )
64+ VERSION_MICRO := 0
65+ endif
66+
67+ ifeq ($(RELEASE_TYPE ) ,MICRO)
68+ VERSION_MICRO := $(call increment,$(VERSION_MICRO ) )
69+ endif
70+
71+ GITREV := $(shell git rev-parse --short HEAD)
72+ IS_DIRTY := $(findstring dirty,$(GIT_DESCRIBE ) )
73+
74+ VERSION_SUFFIX := -$(GITREV )
75+ ifneq ($(RELEASE_TYPE ) ,)
76+ VERSION_SUFFIX :=
77+ else ifneq ($(GITHUB_ACTIONS),)
78+ VERSION_SUFFIX := c-$(GITREV )
79+ else ifneq ($(IS_DIRTY),)
80+ VERSION_SUFFIX := u-$(GITREV )
81+ else
82+ VERSION_SUFFIX := w-$(GITREV )
83+ endif
84+
85+ APP_VERSION := $(VERSION_MAJOR ) .$(VERSION_MINOR ) .$(VERSION_MICRO )$(VERSION_SUFFIX )
86+ APP_TITLE := SwitchTime
87+ APP_AUTHOR := 3096, thedax, ZHDreamer, cytraen, vonhabsbourg, izenn, gzk_47
88+
4089TARGET := switch-time
4190BUILD := build
4291SOURCES := source
4392DATA := data
4493INCLUDES := include
4594# ROMFS := romfs
4695
47- VERSION_MAJOR := 0
48- VERSION_MINOR := 1
49- VERSION_MICRO := 6
50-
51- APP_TITLE := SwitchTime
52- APP_AUTHOR := 3096, thedax, ZHDreamer, cytraen, vonhabsbourg, izenn, gzk_47
53- APP_VERSION := ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}
54-
5596# ---------------------------------------------------------------------------------
5697# options for code generation
5798# ---------------------------------------------------------------------------------
@@ -163,7 +204,7 @@ ifneq ($(ROMFS),)
163204 export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS)
164205endif
165206
166- .PHONY : $(BUILD ) clean all
207+ .PHONY : $(BUILD ) version clean all
167208
168209# ---------------------------------------------------------------------------------
169210all : $(BUILD )
@@ -182,6 +223,10 @@ else
182223endif
183224
184225
226+ # ---------------------------------------------------------------------------------
227+ version :
228+ @echo $(APP_VERSION )
229+
185230# ---------------------------------------------------------------------------------
186231else
187232.PHONY : all
0 commit comments