OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 | 2 |
3 # Copyright (c) 2009 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2009 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 # usage: rule_gperf.py INPUT_FILE OUTPUT_DIR | 7 # usage: rule_gperf.py INPUT_FILE OUTPUT_DIR |
8 # INPUT_FILE is a path to DocTypeStrings.gperf, HTMLEntityNames.gperf, or | 8 # INPUT_FILE is a path to DocTypeStrings.gperf, HTMLEntityNames.gperf, or |
9 # ColorData.gperf. | 9 # ColorData.gperf. |
10 # OUTPUT_DIR is where the gperf-generated .cpp file should be placed. Because | 10 # OUTPUT_DIR is where the gperf-generated .cpp file should be placed. Because |
(...skipping 23 matching lines...) Expand all Loading... |
34 '-CDEot', '-L', 'ANSI-C', '-k*', '-N', 'findColor', '-D', '-s', '2' | 34 '-CDEot', '-L', 'ANSI-C', '-k*', '-N', 'findColor', '-D', '-s', '2' |
35 ], | 35 ], |
36 } | 36 } |
37 | 37 |
38 input_name = posixpath.basename(input_file) | 38 input_name = posixpath.basename(input_file) |
39 assert input_name in gperf_commands | 39 assert input_name in gperf_commands |
40 | 40 |
41 (input_root, input_ext) = posixpath.splitext(input_name) | 41 (input_root, input_ext) = posixpath.splitext(input_name) |
42 output_cpp = posixpath.join(output_dir, input_root + '.cpp') | 42 output_cpp = posixpath.join(output_dir, input_root + '.cpp') |
43 | 43 |
44 command = ['gperf', '--output-file', output_cpp] | 44 #command = ['gperf', '--output-file', output_cpp] |
| 45 command = ['gperf'] |
45 command.extend(gperf_commands[input_name]) | 46 command.extend(gperf_commands[input_name]) |
46 command.append(input_file) | 47 command.append(input_file) |
47 | 48 |
| 49 ofile = open(output_cpp, 'w') |
| 50 |
48 # Do it. check_call is new in 2.5, so simulate its behavior with call and | 51 # Do it. check_call is new in 2.5, so simulate its behavior with call and |
49 # assert. | 52 # assert. |
50 return_code = subprocess.call(command) | 53 return_code = subprocess.call(command, stdout=ofile.fileno()) |
51 assert return_code == 0 | 54 assert return_code == 0 |
52 | 55 |
53 output_c = posixpath.join(output_dir, input_root + '.c') | 56 output_c = posixpath.join(output_dir, input_root + '.c') |
54 shutil.copyfile(output_cpp, output_c) | 57 shutil.copyfile(output_cpp, output_c) |
OLD | NEW |