1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 # This script enumerates the files in the given directory, writing an empty
6 # stamp file and a .d file listing the inputs required to make the stamp. This
7 # allows us to dynamically depend on the grit sources without enumerating the
8 # grit directory for every invocation of grit (which is what adding the source
9 # files to every .grd file's .d file would entail) or shelling out to grit
10 # synchronously during GN execution to get the list (which would be slow).
13 # stamp_grit_sources.py <directory> <stamp-file> <.d-file>
18 def GritSourceFiles(grit_root_dir
):
20 for root
, _
, filenames
in os
.walk(grit_root_dir
):
21 grit_src
= [os
.path
.join(root
, f
) for f
in filenames
22 if f
.endswith('.py') and not f
.endswith('_unittest.py')]
23 files
.extend(grit_src
)
24 files
= [f
.replace('\\', '/') for f
in files
]
28 def WriteDepFile(dep_file
, stamp_file
, source_files
):
29 with
open(dep_file
, "w") as f
:
32 f
.write(' '.join(source_files
))
35 def WriteStampFile(stamp_file
):
36 with
open(stamp_file
, "w"):
42 print "Error: expecting 3 args."
45 grit_root_dir
= sys
.argv
[1]
46 stamp_file
= sys
.argv
[2]
47 dep_file
= sys
.argv
[3]
49 WriteStampFile(stamp_file
)
50 WriteDepFile(dep_file
, stamp_file
, GritSourceFiles(grit_root_dir
))
54 if __name__
== '__main__':
55 sys
.exit(main(sys
.argv
))