blob: ae78afbf8b10b77073b196fbd71a228e1904d907 [file] [log] [blame]
Sascha Haeberling30239932013-08-28 14:51:53 -07001#
2# Copyright (C) 2013 Google Inc.
3#
4
5# The version code scheme for the package apk is:
6# Mmbbbtad
7# where
8# M - major version (one or more digits)
9# m - minor version (exactly 1 digit)
10# bbb - manually specified build number (exactly 3 digits)
11# t - build type (exactly 1 digit). Current valid values are:
12# 0 : eng build
13# 1 : build server build
14# a - device architecture (exactly 1 digit). Current valid values are:
15# 0 : non-native
16# 1 : armv5te
17# 3 : armv7-a
18# 5 : mips
19# 7 : x86
20# d - asset density (exactly 1 digit). Current valid values are:
21# 0 : all densities
22# 2 : mdpi
23# 4 : hdpi
24# 6 : xhdpi
25# Mmbbb is specified manually. tad is automatically set during the build.
26#
27# For the client jar, the version code is agnostic to the target architecture and density: Mmbbbt00
28#
29# NOTE: arch needs to be more significant than density because x86 devices support running ARM
30# code in emulation mode, so all x86 versions must be higher than all ARM versions to ensure
31# we deliver true x86 code to those devices.
Sascha Haeberling73da1e32013-10-21 13:33:28 -070032#
33# HISTORY:
34# 2.0.001 - Factory ROM and 0-day OTA 4.4 (KK)
35# 2.0.002 - 4.4 MR1 system image
Sascha Haeberling30239932013-08-28 14:51:53 -070036
jinwucf6a76c2017-09-26 17:11:33 +080037# Specify the following manually.
38# base_version_major is reserved.
39# base_version_minor is 2 digits and auto-increment for developing FR.
40# base_version_build is 3 digits and auto-increment for fixing CR.
Sascha Haeberling30239932013-08-28 14:51:53 -070041base_version_major := 2
jinwu87757d62018-03-08 16:36:36 +080042base_version_minor := 02
Aoao Yang92740f52020-12-03 10:39:17 +080043base_version_build := 073
Sascha Haeberling30239932013-08-28 14:51:53 -070044
45#####################################################
46#####################################################
47# Collect automatic version code parameters
jinwudae65292018-12-27 17:35:51 +080048ifneq "" "$(filter eng.%,$(BUILD_NUMBER_FROM_FILE))"
Sascha Haeberling30239932013-08-28 14:51:53 -070049 # This is an eng build
50 base_version_buildtype := 0
51else
52 # This is a build server build
53 base_version_buildtype := 1
54endif
55
56ifeq "$(TARGET_ARCH)" "x86"
57 base_version_arch := 7
58else ifeq "$(TARGET_ARCH)" "mips"
59 base_version_arch := 5
60else ifeq "$(TARGET_ARCH)" "arm"
61 ifeq ($(TARGET_ARCH_VARIANT),armv5te)
62 base_version_arch := 1
63 else
64 base_version_arch := 3
65 endif
66else
67 base_version_arch := 0
68endif
69
70ifeq "$(package_dpi)" "mdpi"
71 base_version_density := 2
72else ifeq "$(package_dpi)" "hdpi"
73 base_version_density := 4
74else ifeq "$(package_dpi)" "xhdpi"
75 base_version_density := 6
76else
77 base_version_density := 0
78endif
79
80# Build the version code
81version_code_package := $(base_version_major)$(base_version_minor)$(base_version_build)$(base_version_buildtype)$(base_version_arch)$(base_version_density)
82
83# The version name scheme for the package apk is:
84# - For eng build (t=0): M.m.bbb eng.$(USER)-hh
85# - For build server (t=1): M.m.bbb (nnnnnn-hh)
86# where nnnnnn is the build number from the build server (no zero-padding)
jinwudae65292018-12-27 17:35:51 +080087# On eng builds, the BUILD_NUMBER_FROM_FILE has the user and timestamp inline
88ifneq "" "$(filter eng.%,$(BUILD_NUMBER_FROM_FILE))"
Sascha Haeberling30239932013-08-28 14:51:53 -070089 git_hash := $(shell git --git-dir $(LOCAL_PATH)/.git log -n 1 --pretty=format:%h)
Weijie Wangb59cf612017-09-05 10:42:58 +080090 date_string := $$(date +%m%d%y_%H%M%S)
Sascha Haeberling30239932013-08-28 14:51:53 -070091 version_name_package := $(base_version_major).$(base_version_minor).$(base_version_build) (eng.$(USER).$(git_hash).$(date_string)-$(base_version_arch)$(base_version_density))
92else
Weijie Wangb59cf612017-09-05 10:42:58 +080093 version_name_package := $(base_version_major).$(base_version_minor).$(base_version_build) ($(BUILD_NUMBER_FROM_FILE)-$(base_version_arch)$(base_version_density))
Sascha Haeberling30239932013-08-28 14:51:53 -070094endif
95
96# Cleanup the locals
97base_version_major :=
98base_version_minor :=
99base_version_build :=
100base_version_buildtype :=
101base_version_arch :=
102base_version_density :=
103git_hash :=
104date_string :=