blob: c905a24cc150c73ffdd637148821b92fc99423ad [file] [log] [blame]
Yuexi Ma461a0252017-02-28 11:49:48 -08001#!/usr/bin/env python
Tri Vo381ce112017-02-06 10:06:51 -08002#
3# Copyright (C) 2016 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#
17"""Update .bp and .mk files under test/vts-testcase/hal.
18
19Among .bp and .mk files affected are:
201. test/vts-testcase/hal/Android.bp
212. files matching: test/vts-testcase/hal/<hal_name>/<hal_version>/Android.bp
Tri Vo381ce112017-02-06 10:06:51 -080022
23Usage:
Zhuoyao Zhang59661632018-10-08 16:43:00 -070024 To update build files for all HALs:
25 cd test/vts-testcase/hal; ./script/update_makefiles.py
26 To update build files for a specific HAL:
27 cd test/vts-testcase/hal; ./script/update_makefiles.py --hal nfc@1.0
Tri Vo381ce112017-02-06 10:06:51 -080028"""
Zhuoyao Zhang59661632018-10-08 16:43:00 -070029import argparse
30import re
Keun Soo YIMb27090f2018-10-16 11:39:55 -070031import sys
Tri Vo381ce112017-02-06 10:06:51 -080032
Tri Voc8ce80a2017-02-13 13:31:33 -080033from build.build_rule_gen import BuildRuleGen
Hsin-Yi Chen6d41b172018-04-26 18:55:02 +080034from utils.const import Constant
Tri Vo381ce112017-02-06 10:06:51 -080035
36if __name__ == "__main__":
Zhuoyao Zhang59661632018-10-08 16:43:00 -070037 parser = argparse.ArgumentParser(
38 description='Update build files for HAL driver/profiler.')
39 parser.add_argument(
40 '--hal',
41 dest='hal_package_name',
42 required=False,
43 help='hal package name (e.g. nfc@1.0).')
44 args = parser.parse_args()
45
Tri Vo7933fae2017-02-09 17:59:29 -080046 print 'Updating build rules.'
Hsin-Yi Chen6d41b172018-04-26 18:55:02 +080047 build_rule_gen = BuildRuleGen(Constant.BP_WARNING_HEADER,
48 Constant.HAL_PACKAGE_PREFIX,
49 Constant.HAL_INTERFACE_PATH)
Zhuoyao Zhang59661632018-10-08 16:43:00 -070050
51 if args.hal_package_name:
52 regex = re.compile(Constant.HAL_PACKAGE_NAME_PATTERN)
53 result = re.match(regex, args.hal_package_name)
54 if not result:
55 print 'Invalid hal package name. Exiting..'
56 sys.exit(1)
57 package_name, version = args.hal_package_name.split('@')
58 hal_list = [(package_name, version)]
Keun Soo YIMa552c762018-10-16 11:52:58 -070059 _, updated_files, updated = build_rule_gen.UpdateHalDirBuildRule(
Keun Soo YIMb27090f2018-10-16 11:39:55 -070060 hal_list, Constant.VTS_HAL_TEST_CASE_PATH)
Zhuoyao Zhang59661632018-10-08 16:43:00 -070061 else:
Keun Soo YIMa552c762018-10-16 11:52:58 -070062 updated_files, updated = build_rule_gen.UpdateBuildRule(
63 Constant.VTS_HAL_TEST_CASE_PATH)
Keun Soo YIMb27090f2018-10-16 11:39:55 -070064 if updated:
Keun Soo YIMa552c762018-10-16 11:52:58 -070065 print "ERROR: At least one file was not up-to-date and is updated now."
66 print "Please do the following before redoing repo upload ."
67 print "$ cd $ANDROID_BUILD_TOP/test/vts-testcase/hal"
68 for updated_file in updated_files:
69 print "$ git add %s" % updated_file
70 print "$ git commit"
71 print "$ repo upload"
Keun Soo YIMb27090f2018-10-16 11:39:55 -070072 sys.exit(-1)
73