| import 'dart:collection'; |
| import 'dart:io'; |
| |
| final skip = HashSet.from( |
| [], |
| ); |
| |
| final extras = HashSet.from( |
| [ |
| 'read_quant_tables', |
| 'read_scan_script', |
| 'set_quality_ratings', |
| 'set_quant_slots', |
| 'set_sample_factors', |
| 'read_color_map', |
| 'enable_signal_catcher', |
| 'start_progress_monitor', |
| 'end_progress_monitor', |
| 'read_stdin', |
| 'write_stdout', |
| 'jdiv_round_up', |
| 'jround_up', |
| 'jzero_far', |
| 'jcopy_sample_rows', |
| 'jcopy_block_row', |
| 'jtransform_parse_crop_spec', |
| 'jtransform_request_workspace', |
| 'jtransform_adjust_parameters', |
| 'jtransform_execute_transform', |
| 'jtransform_perfect_transform', |
| 'jcopy_markers_setup', |
| 'jcopy_markers_execute', |
| ], |
| ); |
| |
| void main() { |
| final uniqueNames = HashSet<String>(); |
| var header = StringBuffer(); |
| header.writeln('// clang-format off'); |
| header.writeln('// jpeg_*'); |
| var contents = File('libjpeg_names.txt').readAsStringSync(); |
| RegExp exp = RegExp(r'\s_(jpeg_([a-zA-Z0-9_]*))', multiLine: true); |
| Iterable<RegExpMatch> matches = exp.allMatches(contents); |
| for (final m in matches) { |
| var symbolName = m[1]; |
| if (symbolName == null || |
| skip.contains(symbolName) || |
| uniqueNames.contains(symbolName)) { |
| continue; |
| } |
| uniqueNames.add(symbolName); |
| header.writeln('#define $symbolName rive_$symbolName'); |
| } |
| header.writeln('// jinit_*'); |
| { |
| RegExp exp = RegExp(r'\s_(jinit_([a-zA-Z0-9_]*))', multiLine: true); |
| Iterable<RegExpMatch> matches = exp.allMatches(contents); |
| for (final m in matches) { |
| var symbolName = m[1]; |
| if (symbolName == null || |
| skip.contains(symbolName) || |
| uniqueNames.contains(symbolName)) { |
| continue; |
| } |
| uniqueNames.add(symbolName); |
| header.writeln('#define $symbolName rive_$symbolName'); |
| } |
| } |
| header.writeln('// _j extras'); |
| for (final symbolName in extras) { |
| header.writeln('#define $symbolName rive_$symbolName'); |
| } |
| File('../rive_libjpeg_renames.h').writeAsStringSync(header.toString()); |
| } |