Implement vendor snapshot

Vendor snapshot can be captured with "m dist vendor-snapshot". With
vendor snapshot and vndk snapshot, older version of /vendor and newer
version of /system will be able to be built together by setting
BOARD_VNDK_VERSION to past vendor's version.

Only vendor modules under AOSP are to be captured. In detail, modules
under following directories are ignored:
- cts/
- device/
- external/clang/
- external/llvm/
- hardware/, except for:
    - interfaces/, libhardware/, libhardware_legacy/, ril/
- vendor/

Bug: 65377115
Test: m dist vendor-snapshot
Change-Id: Ib5859e409f8ab281ca137cae21e9ea08abd8a0b1
This commit is contained in:
Inseob Kim 2019-11-15 09:59:23 +09:00
parent 4b26ce076a
commit c465e20400
2 changed files with 36 additions and 1 deletions

View file

@ -0,0 +1,34 @@
# Copyright (C) 2020 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
current_makefile := $(lastword $(MAKEFILE_LIST))
# BOARD_VNDK_VERSION must be set to 'current' in order to generate a vendor snapshot.
ifeq ($(BOARD_VNDK_VERSION),current)
.PHONY: vendor-snapshot
vendor-snapshot: $(SOONG_VENDOR_SNAPSHOT_ZIP)
$(call dist-for-goals, vendor-snapshot, $(SOONG_VENDOR_SNAPSHOT_ZIP))
else # BOARD_VNDK_VERSION is NOT set to 'current'
.PHONY: vendor-snapshot
vendor-snapshot: PRIVATE_MAKEFILE := $(current_makefile)
vendor-snapshot:
$(call echo-error,$(PRIVATE_MAKEFILE),\
"CANNOT generate Vendor snapshot. BOARD_VNDK_VERSION must be set to 'current'.")
exit 1
endif # BOARD_VNDK_VERSION

View file

@ -43,8 +43,9 @@ endif # BOARD_VNDK_VERSION
ifneq (,$(error_msg))
.PHONY: vndk
vndk: PRIVATE_MAKEFILE := $(current_makefile)
vndk:
$(call echo-error,$(current_makefile),$(error_msg))
$(call echo-error,$(PRIVATE_MAKEFILE),$(error_msg))
exit 1
endif