Yuexi Ma | 461a025 | 2017-02-28 11:49:48 -0800 | [diff] [blame] | 1 | #!/usr/bin/env python |
Tri Vo | 381ce11 | 2017-02-06 10:06:51 -0800 | [diff] [blame] | 2 | # |
| 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 | |
| 19 | Among .bp and .mk files affected are: |
| 20 | 1. test/vts-testcase/hal/Android.bp |
| 21 | 2. files matching: test/vts-testcase/hal/<hal_name>/<hal_version>/Android.bp |
Tri Vo | 381ce11 | 2017-02-06 10:06:51 -0800 | [diff] [blame] | 22 | |
| 23 | Usage: |
Zhuoyao Zhang | 5966163 | 2018-10-08 16:43:00 -0700 | [diff] [blame] | 24 | 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 Vo | 381ce11 | 2017-02-06 10:06:51 -0800 | [diff] [blame] | 28 | """ |
Zhuoyao Zhang | 5966163 | 2018-10-08 16:43:00 -0700 | [diff] [blame] | 29 | import argparse |
| 30 | import re |
Keun Soo YIM | b27090f | 2018-10-16 11:39:55 -0700 | [diff] [blame] | 31 | import sys |
Tri Vo | 381ce11 | 2017-02-06 10:06:51 -0800 | [diff] [blame] | 32 | |
Tri Vo | c8ce80a | 2017-02-13 13:31:33 -0800 | [diff] [blame] | 33 | from build.build_rule_gen import BuildRuleGen |
Hsin-Yi Chen | 6d41b17 | 2018-04-26 18:55:02 +0800 | [diff] [blame] | 34 | from utils.const import Constant |
Tri Vo | 381ce11 | 2017-02-06 10:06:51 -0800 | [diff] [blame] | 35 | |
| 36 | if __name__ == "__main__": |
Zhuoyao Zhang | 5966163 | 2018-10-08 16:43:00 -0700 | [diff] [blame] | 37 | 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 Vo | 7933fae | 2017-02-09 17:59:29 -0800 | [diff] [blame] | 46 | print 'Updating build rules.' |
Hsin-Yi Chen | 6d41b17 | 2018-04-26 18:55:02 +0800 | [diff] [blame] | 47 | build_rule_gen = BuildRuleGen(Constant.BP_WARNING_HEADER, |
| 48 | Constant.HAL_PACKAGE_PREFIX, |
| 49 | Constant.HAL_INTERFACE_PATH) |
Zhuoyao Zhang | 5966163 | 2018-10-08 16:43:00 -0700 | [diff] [blame] | 50 | |
| 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 YIM | a552c76 | 2018-10-16 11:52:58 -0700 | [diff] [blame] | 59 | _, updated_files, updated = build_rule_gen.UpdateHalDirBuildRule( |
Keun Soo YIM | b27090f | 2018-10-16 11:39:55 -0700 | [diff] [blame] | 60 | hal_list, Constant.VTS_HAL_TEST_CASE_PATH) |
Zhuoyao Zhang | 5966163 | 2018-10-08 16:43:00 -0700 | [diff] [blame] | 61 | else: |
Keun Soo YIM | a552c76 | 2018-10-16 11:52:58 -0700 | [diff] [blame] | 62 | updated_files, updated = build_rule_gen.UpdateBuildRule( |
| 63 | Constant.VTS_HAL_TEST_CASE_PATH) |
Keun Soo YIM | b27090f | 2018-10-16 11:39:55 -0700 | [diff] [blame] | 64 | if updated: |
Keun Soo YIM | a552c76 | 2018-10-16 11:52:58 -0700 | [diff] [blame] | 65 | 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 YIM | b27090f | 2018-10-16 11:39:55 -0700 | [diff] [blame] | 72 | sys.exit(-1) |
| 73 | |