blob: 6fa7f2bccbf912cd6071b4b3a6703a6cd5a2a690 [file] [log] [blame] [edit]
#!/usr/bin/env python3
#
# Copyright (C) 2016 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.
import json
import os
import sys
def main():
try:
product_out = os.environ["ANDROID_PRODUCT_OUT"]
except KeyError:
sys.stderr.write("Can't get ANDROID_PRODUCT_OUT. Run lunch first.\n")
sys.exit(1)
filename = os.path.join(product_out, "module-info.json")
try:
with open(filename) as f:
modules = json.load(f)
except FileNotFoundError:
sys.stderr.write(f"File not found: {filename}\n")
sys.exit(1)
except json.JSONDecodeError:
sys.stderr.write(f"Invalid json: {filename}\n")
return None
classes = {}
for name, info in modules.items():
make = info.get("make")
make_gen = info.get("make_generated_module_info")
if not make and make_gen:
classes.setdefault(frozenset(info.get("class")), []).append(name)
for cl, names in classes.items():
print(" ".join(cl))
for name in names:
print(" ", name)
if __name__ == "__main__":
main()