Skip to content

Commit

Permalink
Add TARGET_PLATFORM_VERSION to lunch
Browse files Browse the repository at this point in the history
lunch can now take combos in the form:
$TARGET_PRODUCT
$TARGET_PRODUCT-$TARGET_BUILD_VARIANT
$TARGET_PRODUCT-$TARGET_BUILD_VARIANT-$TARGET_PLATFORM_VERSION

If all 3 are not specified the unspecified ones will take the
default values provided by the build system (eng, and currently
OPR1).

In addition, error handling for invalid products, variants and
versions is moved to the build system.

Bug: 34972208
Test: build/make/tests/envsetup_tests.sh
Change-Id: Ib0aaa98633448ba9bd8df911704c9cb3a8ebbe85
  • Loading branch information
colincross committed Mar 23, 2017
1 parent 2c28027 commit 8873713
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 31 deletions.
8 changes: 7 additions & 1 deletion buildspec.mk.default
Expand Up @@ -36,6 +36,12 @@ ifndef TARGET_BUILD_VARIANT
#TARGET_BUILD_VARIANT:=eng
endif

# Choose a targeted release. If you don't pick one, the default is the
# soonest future release.
ifndef TARGET_PLATFORM_RELEASE
#TARGET_PLATFORM_RELEASE:=OPR1
endif

# Choose additional targets to always install, even when building
# minimal targets like "make droid". This takes simple target names
# like "Browser" or "MyApp", the names used by LOCAL_MODULE or
Expand Down Expand Up @@ -105,4 +111,4 @@ endif
# variable will be changed. After you have modified this file with the new
# changes (see buildspec.mk.default), update this to the new value from
# buildspec.mk.default.
BUILD_ENV_SEQUENCE_NUMBER := 12
BUILD_ENV_SEQUENCE_NUMBER := 13
1 change: 1 addition & 0 deletions core/dumpvar.mk
Expand Up @@ -6,6 +6,7 @@ print_build_config_vars := \
TARGET_PRODUCT \
TARGET_BUILD_VARIANT \
TARGET_BUILD_TYPE \
TARGET_PLATFORM_VERSION \
TARGET_BUILD_APPS \
TARGET_ARCH \
TARGET_ARCH_VARIANT \
Expand Down
2 changes: 1 addition & 1 deletion core/envsetup.mk
Expand Up @@ -20,7 +20,7 @@ include $(BUILD_SYSTEM)/version_defaults.mk
# people who haven't re-run those will have to do so before they
# can build. Make sure to also update the corresponding value in
# buildspec.mk.default and envsetup.sh.
CORRECT_BUILD_ENV_SEQUENCE_NUMBER := 12
CORRECT_BUILD_ENV_SEQUENCE_NUMBER := 13

# ---------------------------------------------------------------
# The product defaults to generic on hardware
Expand Down
4 changes: 3 additions & 1 deletion core/version_defaults.mk
Expand Up @@ -58,6 +58,8 @@ endef
ALL_VERSIONS := O P
ALL_VERSIONS := $(foreach v,$(ALL_VERSIONS),$(call version-list,$(v)))

DEFAULT_PLATFORM_VERSION := OPR1

# HACK: forward P to PPR1 until the build server config is updated
ifeq (P,$(TARGET_PLATFORM_VERSION))
TARGET_PLATFORM_VERSION := PPR1
Expand All @@ -67,7 +69,7 @@ ifeq (,$(TARGET_PLATFORM_VERSION))
# Default targeted platform version
# TODO: PLATFORM_VERSION, PLATFORM_SDK_VERSION, etc. should be conditional
# on this
TARGET_PLATFORM_VERSION := OPR1
TARGET_PLATFORM_VERSION := $(DEFAULT_PLATFORM_VERSION)
endif

ifeq (,$(filter $(ALL_VERSIONS), $(TARGET_PLATFORM_VERSION)))
Expand Down
48 changes: 20 additions & 28 deletions envsetup.sh
Expand Up @@ -296,7 +296,7 @@ function set_stuff_for_environment()

function set_sequence_number()
{
export BUILD_ENV_SEQUENCE_NUMBER=12
export BUILD_ENV_SEQUENCE_NUMBER=13
}

function settitle()
Expand Down Expand Up @@ -569,50 +569,42 @@ function lunch()
then
selection=${LUNCH_MENU_CHOICES[$(($answer-1))]}
fi
elif (echo -n $answer | grep -q -e "^[^\-][^\-]*-[^\-][^\-]*$")
then
else
selection=$answer
fi

if [ -z "$selection" ]
then
echo
echo "Invalid lunch combo: $answer"
return 1
fi

export TARGET_BUILD_APPS=

local variant=$(echo -n $selection | sed -e "s/^[^\-]*-//")
check_variant $variant
if [ $? -ne 0 ]
local product variant_and_version variant version

product=${selection%%-*} # Trim everything after first dash
variant_and_version=${selection#*-} # Trim everything up to first dash
if [ "$variant_and_version" != "$selection" ]; then
variant=${variant_and_version%%-*}
if [ "$variant" != "$variant_and_version" ]; then
version=${variant_and_version#*-}
fi
fi

if [ -z "$product" ]
then
echo
echo "** Invalid variant: '$variant'"
echo "** Must be one of ${VARIANT_CHOICES[@]}"
variant=
echo "Invalid lunch combo: $selection"
return 1
fi

local product=$(echo -n $selection | sed -e "s/-.*$//")
TARGET_PRODUCT=$product \
TARGET_BUILD_VARIANT=$variant \
TARGET_PLATFORM_VERSION=$version \
build_build_var_cache
if [ $? -ne 0 ]
then
echo
echo "** Don't have a product spec for: '$product'"
echo "** Do you have the right repo manifest?"
product=
fi

if [ -z "$product" -o -z "$variant" ]
then
echo
return 1
fi

export TARGET_PRODUCT=$product
export TARGET_BUILD_VARIANT=$variant
export TARGET_PRODUCT=$(get_build_var TARGET_PRODUCT)
export TARGET_BUILD_VARIANT=$(get_build_var TARGET_BUILD_VARIANT)
export TARGET_PLATFORM_VERSION=$(get_build_var TARGET_PLATFORM_VERSION)
export TARGET_BUILD_TYPE=release

echo
Expand Down
36 changes: 36 additions & 0 deletions tests/envsetup_tests.sh
@@ -0,0 +1,36 @@
#!/bin/bash -e

source $(dirname $0)/../envsetup.sh

unset TARGET_PRODUCT TARGET_BUILD_VARIANT TARGET_PLATFORM_VERSION

function check_lunch
(
echo lunch $1
set +e
lunch $1 > /dev/null 2> /dev/null
set -e
[ "$TARGET_PRODUCT" = "$2" ] || ( echo "lunch $1: expected TARGET_PRODUCT='$2', got '$TARGET_PRODUCT'" && exit 1 )
[ "$TARGET_BUILD_VARIANT" = "$3" ] || ( echo "lunch $1: expected TARGET_BUILD_VARIANT='$3', got '$TARGET_BUILD_VARIANT'" && exit 1 )
[ "$TARGET_PLATFORM_VERSION" = "$4" ] || ( echo "lunch $1: expected TARGET_PLATFORM_VERSION='$4', got '$TARGET_PLATFORM_VERSION'" && exit 1 )
)

default_version=$(get_build_var DEFAULT_PLATFORM_VERSION)
valid_version=PPR1

# lunch tests
check_lunch "aosp_arm64" "aosp_arm64" "eng" "$default_version"
check_lunch "aosp_arm64-userdebug" "aosp_arm64" "userdebug" "$default_version"
check_lunch "aosp_arm64-userdebug-$valid_version" "aosp_arm64" "userdebug" "$valid_version"
check_lunch "abc" "" "" ""
check_lunch "aosp_arm64-abc" "" "" ""
check_lunch "aosp_arm64-userdebug-abc" "" "" ""
check_lunch "aosp_arm64-abc-$valid_version" "" "" ""
check_lunch "abc-userdebug-$valid_version" "" "" ""
check_lunch "-" "" "" ""
check_lunch "--" "" "" ""
check_lunch "-userdebug" "" "" ""
check_lunch "-userdebug-" "" "" ""
check_lunch "-userdebug-$valid_version" "" "" ""
check_lunch "aosp_arm64-userdebug-$valid_version-" "" "" ""
check_lunch "aosp_arm64-userdebug-$valid_version-abc" "" "" ""

0 comments on commit 8873713

Please sign in to comment.