From 554f3703e5698308a46559cfa961c510496f5284 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Tue, 24 Sep 2013 17:58:56 +0100 Subject: [PATCH] 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 --- config/common.mk | 52 +++++++++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/config/common.mk b/config/common.mk index dcad2c74..d37791e9 100644 --- a/config/common.mk +++ b/config/common.mk @@ -218,25 +218,41 @@ PRODUCT_VERSION_MAJOR = 10 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 @@ else 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