mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-01 01:38:07 +08:00
GN metadata allows to specify and later query metadata from any action in our build graph. Using GN metadata, we can specify GRD files on an action and collect these files on the top level. Then, we can compare the list of collected files to the expected GRD files in `devtools_grd_files.gni` to ensure they match. As a follow-up change, we can remove the intermediate lists we have been specifying in `all_devtools_modules.gni` and `devtools_module_entrypoints.gni`, which now become obsolete. That's because both `devtools_module` and `devtools_entrypoint` now specify the files in their respective metadata and essentially perform the check that all relevant files are collected. R=aerotwist@chromium.org Also-By: alexrudenko@chromium.org Bug: 1174013 Change-Id: I9dd2e6f7e010b5c25f83556511af12d5d1c2ec7c Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2843322 Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org> Reviewed-by: Alex Rudenko <alexrudenko@chromium.org> Reviewed-by: Paul Lewis <aerotwist@chromium.org>
58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
#!/usr/bin/env vpython
|
|
# -*- coding: UTF-8 -*-
|
|
#
|
|
# Copyright 2021 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
"""
|
|
Asserts that expected and generated list of GRD files is equal.
|
|
"""
|
|
|
|
import sys
|
|
import json
|
|
|
|
|
|
def main(argv):
|
|
expected_grd_sources = open(argv[1], 'r').read()
|
|
generated_grd_sources = open(argv[2], 'r').read()
|
|
stamp_file = argv[3]
|
|
|
|
expected_json = json.loads(expected_grd_sources)
|
|
generated_json = json.loads(generated_grd_sources)
|
|
|
|
expected_json.sort()
|
|
generated_json.sort()
|
|
|
|
return_code = 0
|
|
|
|
for expected_file in expected_json:
|
|
if expected_file not in generated_json:
|
|
print(
|
|
"File " + expected_file +
|
|
" is not generated by any action in front_end." +
|
|
" Either remove it from config/gni/devtools_grd_files.gni" +
|
|
" or add the missing file to an action" +
|
|
" (for example a devtools_module or devtools_entrypoint definition).\n"
|
|
)
|
|
|
|
return_code = 1
|
|
|
|
for generated_file in generated_json:
|
|
if generated_file not in expected_json:
|
|
print(
|
|
"File " + generated_file +
|
|
" is not listed in config/gni/devtools_grd_files.gni." +
|
|
" Either add the file to the grd_files_release_sources/grd_files_debug_sources,"
|
|
+ " or remove the generated file from an action.\n")
|
|
|
|
return_code = 1
|
|
|
|
with open(stamp_file, 'w', encoding="utf8") as fp:
|
|
fp.write("")
|
|
|
|
return return_code
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main(sys.argv))
|