|  | # python3 | 
|  | # Copyright (C) 2019 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. | 
|  |  | 
|  | """Define a project list to sort warnings by project directory path.""" | 
|  |  | 
|  |  | 
|  | def create_pattern(name, pattern=None): | 
|  | if pattern is not None: | 
|  | return [name, '(^|.*/)' + pattern + '/.*: warning:'] | 
|  | return [name, '(^|.*/)' + name + '/.*: warning:'] | 
|  |  | 
|  |  | 
|  | # A list of [project_name, file_path_pattern]. | 
|  | # project_name should not contain comma, to be used in CSV output. | 
|  | project_list = [ | 
|  | create_pattern('art'), | 
|  | create_pattern('bionic'), | 
|  | create_pattern('bootable'), | 
|  | create_pattern('build'), | 
|  | create_pattern('cts'), | 
|  | create_pattern('dalvik'), | 
|  | create_pattern('developers'), | 
|  | create_pattern('development'), | 
|  | create_pattern('device'), | 
|  | create_pattern('doc'), | 
|  | # match external/google* before external/ | 
|  | create_pattern('external/google', 'external/google.*'), | 
|  | create_pattern('external/non-google', 'external'), | 
|  | create_pattern('frameworks/av/camera'), | 
|  | create_pattern('frameworks/av/cmds'), | 
|  | create_pattern('frameworks/av/drm'), | 
|  | create_pattern('frameworks/av/include'), | 
|  | create_pattern('frameworks/av/media/img_utils'), | 
|  | create_pattern('frameworks/av/media/libcpustats'), | 
|  | create_pattern('frameworks/av/media/libeffects'), | 
|  | create_pattern('frameworks/av/media/libmediaplayerservice'), | 
|  | create_pattern('frameworks/av/media/libmedia'), | 
|  | create_pattern('frameworks/av/media/libstagefright'), | 
|  | create_pattern('frameworks/av/media/mtp'), | 
|  | create_pattern('frameworks/av/media/ndk'), | 
|  | create_pattern('frameworks/av/media/utils'), | 
|  | create_pattern('frameworks/av/media/Other', 'frameworks/av/media'), | 
|  | create_pattern('frameworks/av/radio'), | 
|  | create_pattern('frameworks/av/services'), | 
|  | create_pattern('frameworks/av/soundtrigger'), | 
|  | create_pattern('frameworks/av/Other', 'frameworks/av'), | 
|  | create_pattern('frameworks/base/cmds'), | 
|  | create_pattern('frameworks/base/core'), | 
|  | create_pattern('frameworks/base/drm'), | 
|  | create_pattern('frameworks/base/media'), | 
|  | create_pattern('frameworks/base/libs'), | 
|  | create_pattern('frameworks/base/native'), | 
|  | create_pattern('frameworks/base/packages'), | 
|  | create_pattern('frameworks/base/rs'), | 
|  | create_pattern('frameworks/base/services'), | 
|  | create_pattern('frameworks/base/tests'), | 
|  | create_pattern('frameworks/base/tools'), | 
|  | create_pattern('frameworks/base/Other', 'frameworks/base'), | 
|  | create_pattern('frameworks/compile/libbcc'), | 
|  | create_pattern('frameworks/compile/mclinker'), | 
|  | create_pattern('frameworks/compile/slang'), | 
|  | create_pattern('frameworks/compile/Other', 'frameworks/compile'), | 
|  | create_pattern('frameworks/minikin'), | 
|  | create_pattern('frameworks/ml'), | 
|  | create_pattern('frameworks/native/cmds'), | 
|  | create_pattern('frameworks/native/include'), | 
|  | create_pattern('frameworks/native/libs'), | 
|  | create_pattern('frameworks/native/opengl'), | 
|  | create_pattern('frameworks/native/services'), | 
|  | create_pattern('frameworks/native/vulkan'), | 
|  | create_pattern('frameworks/native/Other', 'frameworks/native'), | 
|  | create_pattern('frameworks/opt'), | 
|  | create_pattern('frameworks/rs'), | 
|  | create_pattern('frameworks/webview'), | 
|  | create_pattern('frameworks/wilhelm'), | 
|  | create_pattern('frameworks/Other', 'frameworks'), | 
|  | create_pattern('hardware/akm'), | 
|  | create_pattern('hardware/broadcom'), | 
|  | create_pattern('hardware/google'), | 
|  | create_pattern('hardware/intel'), | 
|  | create_pattern('hardware/interfaces'), | 
|  | create_pattern('hardware/libhardware'), | 
|  | create_pattern('hardware/libhardware_legacy'), | 
|  | create_pattern('hardware/qcom'), | 
|  | create_pattern('hardware/ril'), | 
|  | create_pattern('hardware/Other', 'hardware'), | 
|  | create_pattern('kernel'), | 
|  | create_pattern('libcore'), | 
|  | create_pattern('libnativehelper'), | 
|  | create_pattern('ndk'), | 
|  | # match vendor/unbungled_google/packages before other packages | 
|  | create_pattern('unbundled_google'), | 
|  | create_pattern('packages'), | 
|  | create_pattern('pdk'), | 
|  | create_pattern('prebuilts'), | 
|  | create_pattern('system/bt'), | 
|  | create_pattern('system/connectivity'), | 
|  | create_pattern('system/core/adb'), | 
|  | create_pattern('system/core/base'), | 
|  | create_pattern('system/core/debuggerd'), | 
|  | create_pattern('system/core/fastboot'), | 
|  | create_pattern('system/core/fingerprintd'), | 
|  | create_pattern('system/core/fs_mgr'), | 
|  | create_pattern('system/core/gatekeeperd'), | 
|  | create_pattern('system/core/healthd'), | 
|  | create_pattern('system/core/include'), | 
|  | create_pattern('system/core/init'), | 
|  | create_pattern('system/core/libbacktrace'), | 
|  | create_pattern('system/core/liblog'), | 
|  | create_pattern('system/core/libpixelflinger'), | 
|  | create_pattern('system/core/libprocessgroup'), | 
|  | create_pattern('system/core/libsysutils'), | 
|  | create_pattern('system/core/logcat'), | 
|  | create_pattern('system/core/logd'), | 
|  | create_pattern('system/core/run-as'), | 
|  | create_pattern('system/core/sdcard'), | 
|  | create_pattern('system/core/toolbox'), | 
|  | create_pattern('system/core/Other', 'system/core'), | 
|  | create_pattern('system/extras/ANRdaemon'), | 
|  | create_pattern('system/extras/cpustats'), | 
|  | create_pattern('system/extras/crypto-perf'), | 
|  | create_pattern('system/extras/ext4_utils'), | 
|  | create_pattern('system/extras/f2fs_utils'), | 
|  | create_pattern('system/extras/iotop'), | 
|  | create_pattern('system/extras/libfec'), | 
|  | create_pattern('system/extras/memory_replay'), | 
|  | create_pattern('system/extras/mmap-perf'), | 
|  | create_pattern('system/extras/multinetwork'), | 
|  | create_pattern('system/extras/perfprofd'), | 
|  | create_pattern('system/extras/procrank'), | 
|  | create_pattern('system/extras/runconuid'), | 
|  | create_pattern('system/extras/showmap'), | 
|  | create_pattern('system/extras/simpleperf'), | 
|  | create_pattern('system/extras/su'), | 
|  | create_pattern('system/extras/tests'), | 
|  | create_pattern('system/extras/verity'), | 
|  | create_pattern('system/extras/Other', 'system/extras'), | 
|  | create_pattern('system/gatekeeper'), | 
|  | create_pattern('system/keymaster'), | 
|  | create_pattern('system/libhidl'), | 
|  | create_pattern('system/libhwbinder'), | 
|  | create_pattern('system/media'), | 
|  | create_pattern('system/netd'), | 
|  | create_pattern('system/nvram'), | 
|  | create_pattern('system/security'), | 
|  | create_pattern('system/sepolicy'), | 
|  | create_pattern('system/tools'), | 
|  | create_pattern('system/update_engine'), | 
|  | create_pattern('system/vold'), | 
|  | create_pattern('system/Other', 'system'), | 
|  | create_pattern('toolchain'), | 
|  | create_pattern('test'), | 
|  | create_pattern('tools'), | 
|  | # match vendor/google* before vendor/ | 
|  | create_pattern('vendor/google', 'vendor/google.*'), | 
|  | create_pattern('vendor/non-google', 'vendor'), | 
|  | # keep out/obj and other patterns at the end. | 
|  | [ | 
|  | 'out/obj', '.*/(gen|obj[^/]*)/(include|EXECUTABLES|SHARED_LIBRARIES|' | 
|  | 'STATIC_LIBRARIES|NATIVE_TESTS)/.*: warning:' | 
|  | ], | 
|  | ['other', '.*']  # all other unrecognized patterns | 
|  | ] |