| OLD | NEW |
| (Empty) |
| 1 #!/usr/bin/python | |
| 2 # | |
| 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 | |
| 5 # found in the LICENSE file. | |
| 6 | |
| 7 import sys | |
| 8 | |
| 9 def _SConsNodeToFile(file_node): | |
| 10 '''Convert a scons file Node object to a path on disk.''' | |
| 11 return str(file_node.rfile()) | |
| 12 | |
| 13 | |
| 14 def _Build(target, source, env): | |
| 15 '''Run the repack script.''' | |
| 16 data_pack_root_dir = env.subst('$CHROME_SRC_DIR/tools/data_pack') | |
| 17 sys.path.append(data_pack_root_dir) | |
| 18 import repack | |
| 19 sources = [_SConsNodeToFile(s) for s in source] | |
| 20 repack.RePack(_SConsNodeToFile(target[0]), sources) | |
| 21 | |
| 22 | |
| 23 def _BuildStr(targets, sources, env): | |
| 24 '''This message gets printed each time the builder runs.''' | |
| 25 return "Repacking data files into %s" % str(targets[0].rfile()) | |
| 26 | |
| 27 | |
| 28 def _Scanner(file_node, env, path): | |
| 29 '''Repack files if repack.py or data_pack.py have changed.''' | |
| 30 data_pack_root_dir = env.subst('$CHROME_SRC_DIR/tools/data_pack') | |
| 31 | |
| 32 files = [] | |
| 33 for f in ('repack.py', 'data_pack.py'): | |
| 34 files.append(os.path.join(data_pack_root_dir, f)) | |
| 35 return files | |
| 36 | |
| 37 | |
| 38 ############################################################################# | |
| 39 ## SCons Tool api methods below. | |
| 40 def generate(env): | |
| 41 action = env.Action(_Build, _BuildStr) | |
| 42 scanner = env.Scanner(function=_Scanner, skeys=['.pak']) | |
| 43 | |
| 44 builder = env.Builder(action=action, | |
| 45 source_scanner=scanner, | |
| 46 src_suffix='.pak') | |
| 47 | |
| 48 # add our builder and scanner to the environment | |
| 49 env.Append(BUILDERS = {'Repack': builder}) | |
| 50 | |
| 51 | |
| 52 # Function name is mandated by newer versions of SCons. | |
| 53 def exists(env): | |
| 54 return 1 | |
| OLD | NEW |