123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- # Copyright 2014 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.
- # This script enumerates the files in the given directory, writing an empty
- # stamp file and a .d file listing the inputs required to make the stamp. This
- # allows us to dynamically depend on the grit sources without enumerating the
- # grit directory for every invocation of grit (which is what adding the source
- # files to every .grd file's .d file would entail) or shelling out to grit
- # synchronously during GN execution to get the list (which would be slow).
- #
- # Usage:
- # stamp_grit_sources.py <directory> <stamp-file> <.d-file>
- from __future__ import print_function
- import os
- import sys
- def GritSourceFiles(grit_root_dir):
- files = []
- for root, _, filenames in os.walk(grit_root_dir):
- grit_src = [os.path.join(root, f) for f in filenames
- if f.endswith('.py') and not f.endswith('_unittest.py')]
- files.extend(grit_src)
- files = [f.replace('\\', '/') for f in files]
- return sorted(files)
- def WriteDepFile(dep_file, stamp_file, source_files):
- with open(dep_file, "w") as f:
- f.write(stamp_file)
- f.write(": ")
- f.write(' '.join(source_files))
- def WriteStampFile(stamp_file):
- with open(stamp_file, "w"):
- pass
- def main(argv):
- if len(argv) != 4:
- print("Error: expecting 3 args.")
- return 1
- grit_root_dir = sys.argv[1]
- stamp_file = sys.argv[2]
- dep_file = sys.argv[3]
- WriteStampFile(stamp_file)
- WriteDepFile(dep_file, stamp_file, GritSourceFiles(grit_root_dir))
- return 0
- if __name__ == '__main__':
- sys.exit(main(sys.argv))
|