Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(304)

Unified Diff: gpu/config/process_json.py

Issue 2812003006: Move gpu jason file data generation to build time. (Closed)
Patch Set: remove git-format from build time generated files Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/config/process_json.py
diff --git a/gpu/config/process_json.py b/gpu/config/process_json.py
index d34c5048170bb0ef60aec2bbf8fffbff276624ec..05ec4a26e172948a6c59b41f1c18d39780ba954b 100755
--- a/gpu/config/process_json.py
+++ b/gpu/config/process_json.py
@@ -7,6 +7,7 @@ import json
import os
import platform
import sys
+from optparse import OptionParser
from subprocess import call
"""Generate data struct from GPU blacklist and driver bug workarounds json."""
@@ -577,31 +578,31 @@ def write_header_file_guard(file, filename, path, begin):
file.write('\n#endif // %s\n' % token)
-def process_json_file(json_filename, list_tag,
+def process_json_file(json_filepath, list_tag,
feature_header_filename, total_features, feature_tag,
- output_header_filename, output_data_filename,
- output_helper_filename, output_exception_filename, path,
- export_tag):
- current_dir = os.getcwd()
- os.chdir('../../' + path) # assume python script is under gpu/config
-
- json_file = open(json_filename, 'rb')
+ output_header_filepath, output_data_filepath,
+ output_helper_filepath, output_exception_filepath, path,
+ export_tag, git_format):
+ output_header_filename = os.path.basename(output_header_filepath)
+ output_helper_filename = os.path.basename(output_helper_filepath)
+ output_exception_filename = os.path.basename(output_exception_filepath)
+ json_file = open(json_filepath, 'rb')
json_data = json.load(json_file)
json_file.close()
- data_file = open(output_data_filename, 'wb')
+ data_file = open(output_data_filepath, 'wb')
data_file.write(_LICENSE)
data_file.write(_DO_NOT_EDIT_WARNING)
data_file.write('#include "%s/%s"\n\n' % (path, output_header_filename))
data_file.write('#include "%s/%s"\n' % (path, output_helper_filename))
data_file.write('#include "%s/%s"\n\n' % (path, output_exception_filename))
- data_helper_file = open(output_helper_filename, 'wb')
+ data_helper_file = open(output_helper_filepath, 'wb')
data_helper_file.write(_LICENSE)
data_helper_file.write(_DO_NOT_EDIT_WARNING)
write_header_file_guard(data_helper_file, output_helper_filename, path, True)
data_helper_file.write('#include "gpu/config/%s"\n\n' %
feature_header_filename)
data_helper_file.write('namespace gpu {\n')
- data_exception_file = open(output_exception_filename, 'wb')
+ data_exception_file = open(output_exception_filepath, 'wb')
data_exception_file.write(_LICENSE)
data_exception_file.write(_DO_NOT_EDIT_WARNING)
write_header_file_guard(data_exception_file, output_exception_filename, path,
@@ -633,7 +634,7 @@ def process_json_file(json_filename, list_tag,
write_header_file_guard(data_exception_file, output_exception_filename, path,
False)
data_exception_file.close()
- data_header_file = open(output_header_filename, 'wb')
+ data_header_file = open(output_header_filepath, 'wb')
data_header_file.write(_LICENSE)
data_header_file.write(_DO_NOT_EDIT_WARNING)
write_header_file_guard(data_header_file, output_header_filename, path, True)
@@ -652,67 +653,94 @@ def process_json_file(json_filename, list_tag,
data_header_file.write('} // namespace gpu\n')
write_header_file_guard(data_header_file, output_header_filename, path, False)
data_header_file.close()
- format_files([output_header_filename, output_data_filename,
- output_helper_filename, output_exception_filename])
-
- os.chdir(current_dir)
-
-
-def process_software_rendering_list():
- total_features = load_software_rendering_list_features('gpu_feature_type.h')
- process_json_file('software_rendering_list.json', 'SoftwareRenderingList',
- 'gpu_feature_type.h', total_features, 'GPU_FEATURE_TYPE_',
- 'software_rendering_list_autogen.h',
- 'software_rendering_list_autogen.cc',
- 'software_rendering_list_arrays_and_structs_autogen.h',
- 'software_rendering_list_exceptions_autogen.h',
- 'gpu/config', 'GPU_EXPORT ')
-
-
-def process_gpu_driver_bug_list():
+ if git_format:
+ format_files([output_header_filepath, output_data_filepath,
+ output_helper_filepath, output_exception_filepath])
+
+
+def process_software_rendering_list(script_dir, output_dir):
+ total_features = load_software_rendering_list_features(
+ os.path.join(script_dir, 'gpu_feature_type.h'))
+ process_json_file(
+ os.path.join(script_dir, 'software_rendering_list.json'),
+ 'SoftwareRenderingList',
+ 'gpu_feature_type.h',
+ total_features,
+ 'GPU_FEATURE_TYPE_',
+ os.path.join(output_dir, 'software_rendering_list_autogen.h'),
+ os.path.join(output_dir, 'software_rendering_list_autogen.cc'),
+ os.path.join(output_dir,
+ 'software_rendering_list_arrays_and_structs_autogen.h'),
+ os.path.join(output_dir, 'software_rendering_list_exceptions_autogen.h'),
+ 'gpu/config',
+ 'GPU_EXPORT ',
+ False)
+
+
+def process_gpu_driver_bug_list(script_dir, output_dir):
total_features = load_gpu_driver_bug_workarounds(
- 'gpu_driver_bug_workaround_type.h')
- process_json_file('gpu_driver_bug_list.json', 'GpuDriverBugList',
- 'gpu_driver_bug_workaround_type.h', total_features, '',
- 'gpu_driver_bug_list_autogen.h',
- 'gpu_driver_bug_list_autogen.cc',
- 'gpu_driver_bug_list_arrays_and_structs_autogen.h',
- 'gpu_driver_bug_list_exceptions_autogen.h',
- 'gpu/config', 'GPU_EXPORT ')
-
-
-def process_gpu_control_list_testing():
+ os.path.join(script_dir, 'gpu_driver_bug_workaround_type.h'))
+ process_json_file(
+ os.path.join(script_dir, 'gpu_driver_bug_list.json'),
+ 'GpuDriverBugList',
+ 'gpu_driver_bug_workaround_type.h',
+ total_features,
+ '',
+ os.path.join(output_dir, 'gpu_driver_bug_list_autogen.h'),
+ os.path.join(output_dir, 'gpu_driver_bug_list_autogen.cc'),
+ os.path.join(output_dir,
+ 'gpu_driver_bug_list_arrays_and_structs_autogen.h'),
+ os.path.join(output_dir, 'gpu_driver_bug_list_exceptions_autogen.h'),
+ 'gpu/config',
+ 'GPU_EXPORT ',
+ False)
+
+
+def process_gpu_control_list_testing(script_dir, output_dir):
total_features = ['test_feature_0', 'test_feature_1', 'test_feature_2']
- process_json_file('gpu_control_list_testing.json', 'GpuControlListTesting',
- 'gpu_control_list_testing_data.h', total_features, '',
- 'gpu_control_list_testing_autogen.h',
- 'gpu_control_list_testing_autogen.cc',
- 'gpu_control_list_testing_arrays_and_structs_autogen.h',
- 'gpu_control_list_testing_exceptions_autogen.h',
- 'gpu/config', '')
-
-
-def process_gpu_data_manager_testing():
- total_features = load_software_rendering_list_features('gpu_feature_type.h')
- process_json_file('gpu_data_manager_testing.json', 'GpuDataManagerTesting',
- 'gpu_feature_type.h', total_features, 'GPU_FEATURE_TYPE_',
- 'gpu_data_manager_testing_autogen.h',
- 'gpu_data_manager_testing_autogen.cc',
- 'gpu_data_manager_testing_arrays_and_structs_autogen.h',
- 'gpu_data_manager_testing_exceptions_autogen.h',
- 'content/browser/gpu', '')
-
-
-def write_test_entry_enums(input_json_filename, output_entry_enums_filename,
+ process_json_file(
+ os.path.join(script_dir, 'gpu_control_list_testing.json'),
+ 'GpuControlListTesting',
+ 'gpu_control_list_testing_data.h',
+ total_features,
+ '',
+ os.path.join(output_dir, 'gpu_control_list_testing_autogen.h'),
+ os.path.join(output_dir, 'gpu_control_list_testing_autogen.cc'),
+ os.path.join(output_dir,
+ 'gpu_control_list_testing_arrays_and_structs_autogen.h'),
+ os.path.join(output_dir, 'gpu_control_list_testing_exceptions_autogen.h'),
+ 'gpu/config',
+ '',
+ True)
+
+
+def process_gpu_data_manager_testing(script_dir, output_dir):
+ total_features = load_software_rendering_list_features(
+ os.path.join(script_dir, 'gpu_feature_type.h'))
+ process_json_file(
+ os.path.join(output_dir, 'gpu_data_manager_testing.json'),
+ 'GpuDataManagerTesting',
+ 'gpu_feature_type.h',
+ total_features,
+ 'GPU_FEATURE_TYPE_',
+ os.path.join(output_dir, 'gpu_data_manager_testing_autogen.h'),
+ os.path.join(output_dir, 'gpu_data_manager_testing_autogen.cc'),
+ os.path.join(output_dir,
+ 'gpu_data_manager_testing_arrays_and_structs_autogen.h'),
+ os.path.join(output_dir, 'gpu_data_manager_testing_exceptions_autogen.h'),
+ 'content/browser/gpu',
+ '',
+ True)
+
+
+def write_test_entry_enums(input_json_filepath, output_entry_enums_filepath,
path, list_tag):
- current_dir = os.getcwd()
- os.chdir('../../' + path) # assume python script is under gou/config
-
- json_file = open(input_json_filename, 'rb')
+ json_file = open(input_json_filepath, 'rb')
json_data = json.load(json_file)
json_file.close()
- enum_file = open(output_entry_enums_filename, 'wb')
+ output_entry_enums_filename = os.path.basename(output_entry_enums_filepath)
+ enum_file = open(output_entry_enums_filepath, 'wb')
enum_file.write(_LICENSE)
enum_file.write(_DO_NOT_EDIT_WARNING)
write_header_file_guard(enum_file, output_entry_enums_filename, path, True)
@@ -731,27 +759,45 @@ def write_test_entry_enums(input_json_filename, output_entry_enums_filename,
enum_file.write('} // namespace gpu\n')
write_header_file_guard(enum_file, output_entry_enums_filename, path, False)
enum_file.close()
- format_files([output_entry_enums_filename])
-
- os.chdir(current_dir)
-
-
-def main():
- dir_path = os.path.dirname(os.path.realpath(__file__))
- os.chdir(dir_path)
- process_software_rendering_list()
- process_gpu_driver_bug_list()
- process_gpu_control_list_testing()
- write_test_entry_enums('gpu_control_list_testing.json',
- 'gpu_control_list_testing_entry_enums_autogen.h',
- 'gpu/config',
- 'GpuControlListTesting')
- process_gpu_data_manager_testing()
- write_test_entry_enums('gpu_data_manager_testing.json',
- 'gpu_data_manager_testing_entry_enums_autogen.h',
- 'content/browser/gpu',
- 'GpuDataManagerTesting')
+ format_files([output_entry_enums_filepath])
+
+
+def main(argv):
+ parser = OptionParser()
+ parser.add_option("--output-dir",
+ help="output directory for SoftwareRenderingList and "
+ "GpuDriverBugList data files. "
+ "If unspecified, these files are not generated.")
+ parser.add_option("--skip-testing-data", action="store_false",
+ dest="generate_testing_data", default=True,
+ help="skip testing data generation.")
+ (options, args) = parser.parse_args(args=argv)
+
+ script_dir = os.path.dirname(os.path.realpath(__file__))
+
+ if options.output_dir != None:
+ process_software_rendering_list(script_dir, options.output_dir)
+ process_gpu_driver_bug_list(script_dir, options.output_dir)
+
+ if options.generate_testing_data:
+ # Testing data files are generated by calling the script manually.
+ process_gpu_control_list_testing(script_dir, script_dir)
+ write_test_entry_enums(
+ os.path.join(script_dir, 'gpu_control_list_testing.json'),
+ os.path.join(script_dir,
+ 'gpu_control_list_testing_entry_enums_autogen.h'),
+ 'gpu/config',
+ 'GpuControlListTesting')
+ chrome_root_dir = os.path.abspath(os.path.join(script_dir, '../../'))
+ gpu_data_manager_dir = os.path.join(chrome_root_dir, 'content/browser/gpu')
+ process_gpu_data_manager_testing(script_dir, gpu_data_manager_dir)
+ write_test_entry_enums(
+ os.path.join(gpu_data_manager_dir, 'gpu_data_manager_testing.json'),
+ os.path.join(gpu_data_manager_dir,
+ 'gpu_data_manager_testing_entry_enums_autogen.h'),
+ 'content/browser/gpu',
+ 'GpuDataManagerTesting')
if __name__ == '__main__':
- sys.exit(main())
+ sys.exit(main(sys.argv[1:]))
« no previous file with comments | « gpu/config/gpu_driver_bug_list_exceptions_autogen.h ('k') | gpu/config/software_rendering_list_arrays_and_structs_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698