Refactor versioning
* Replace the 1-to-1 variable-to-buildtype stuff with a single
environment variable. CM_[TYPE]=true becomes CM_BUILDTYPE=[TYPE]
* Change the placement of the extra version tag: 10.2-21234567-TYPE-model-TAG
becomes 10.2-21234567-TYPE-TAG-model, for consistency with the rest.
The last component of the version should always be the model.
* Add support for the SNAPSHOT build type, for use with the monthlies
* Unknown types will still fallback to UNOFFICIAL
* Accept the jenkins RELEASE_TYPE variable as an alternative to
CM_BUILDTYPE for compatibility with older branches
Change-Id: Idf96c7ca887747a5ae49a17cf5adf642fb1d561f
diff --git a/config/common.mk b/config/common.mk
index dcad2c7..d37791e 100644
--- a/config/common.mk
+++ b/config/common.mk
@@ -218,25 +218,41 @@
PRODUCT_VERSION_MINOR = 2
PRODUCT_VERSION_MAINTENANCE = 0-RC0
-# Set CM_BUILDTYPE
-ifdef CM_NIGHTLY
- CM_BUILDTYPE := NIGHTLY
+# Set CM_BUILDTYPE from the env RELEASE_TYPE, for jenkins compat
+
+ifndef CM_BUILDTYPE
+ ifdef RELEASE_TYPE
+ # Starting with "CM_" is optional
+ RELEASE_TYPE := $(shell echo $(RELEASE_TYPE) | sed -e 's|^CM_||g')
+ CM_BUILDTYPE := $(RELEASE_TYPE)
+ endif
endif
-ifdef CM_EXPERIMENTAL
- CM_BUILDTYPE := EXPERIMENTAL
-endif
-ifdef CM_RELEASE
- CM_BUILDTYPE := RELEASE
+
+# Filter out random types, so it'll reset to UNOFFICIAL
+ifeq ($(filter RELEASE NIGHTLY SNAPSHOT EXPERIMENTAL,$(CM_BUILDTYPE)),)
+ CM_BUILDTYPE :=
endif
ifdef CM_BUILDTYPE
- ifdef CM_EXTRAVERSION
- # Force build type to EXPERIMENTAL
- CM_BUILDTYPE := EXPERIMENTAL
- # Remove leading dash from CM_EXTRAVERSION
- CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
- # Add leading dash to CM_EXTRAVERSION
- CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
+ ifneq ($(CM_BUILDTYPE), SNAPSHOT)
+ ifdef CM_EXTRAVERSION
+ # Force build type to EXPERIMENTAL
+ CM_BUILDTYPE := EXPERIMENTAL
+ # Remove leading dash from CM_EXTRAVERSION
+ CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
+ # Add leading dash to CM_EXTRAVERSION
+ CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
+ endif
+ else
+ ifndef CM_EXTRAVERSION
+ # Force build type to EXPERIMENTAL, SNAPSHOT mandates a tag
+ CM_BUILDTYPE := EXPERIMENTAL
+ else
+ # Remove leading dash from CM_EXTRAVERSION
+ CM_EXTRAVERSION := $(shell echo $(CM_EXTRAVERSION) | sed 's/-//')
+ # Add leading dash to CM_EXTRAVERSION
+ CM_EXTRAVERSION := -$(CM_EXTRAVERSION)
+ endif
endif
else
# If CM_BUILDTYPE is not defined, set to UNOFFICIAL
@@ -244,13 +260,13 @@
CM_EXTRAVERSION :=
endif
-ifdef CM_RELEASE
+ifeq ($(CM_BUILDTYPE), RELEASE)
CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(CM_BUILD)
else
ifeq ($(PRODUCT_VERSION_MINOR),0)
- CM_VERSION := $(PRODUCT_VERSION_MAJOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)-$(CM_BUILD)$(CM_EXTRAVERSION)
+ CM_VERSION := $(PRODUCT_VERSION_MAJOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)$(CM_EXTRAVERSION)-$(CM_BUILD)
else
- CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)-$(CM_BUILD)$(CM_EXTRAVERSION)
+ CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)$(CM_EXTRAVERSION)-$(CM_BUILD)
endif
endif