OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2015 The Chromium Authors. All rights reserved. | 2 # Copyright 2015 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import argparse | 6 import argparse |
7 from datetime import datetime | 7 from datetime import datetime |
8 import logging | 8 import logging |
9 import os | 9 import os |
10 import shutil | 10 import shutil |
11 import subprocess | 11 import subprocess |
12 import sys | 12 import sys |
13 | 13 |
14 # Generates the sky_sdk from the template at sky/sdk. | 14 # Generates the sky_sdk from the template at sky/sdk. |
15 | 15 |
16 # This script has a split personality of both making our deployment sdk | 16 # This script has a split personality of both making our deployment sdk |
17 # as well as being a required part of developing locally, since all | 17 # as well as being a required part of developing locally, since all |
18 # of our framework assumes it's working from the SDK. | 18 # of our framework assumes it's working from the SDK. |
19 | 19 |
20 SKY_TOOLS_DIR = os.path.dirname(os.path.abspath(__file__)) | 20 SKY_TOOLS_DIR = os.path.dirname(os.path.abspath(__file__)) |
21 SKY_DIR = os.path.dirname(SKY_TOOLS_DIR) | 21 SKY_DIR = os.path.dirname(SKY_TOOLS_DIR) |
22 SRC_ROOT = os.path.dirname(SKY_DIR) | 22 SRC_ROOT = os.path.dirname(SKY_DIR) |
23 | 23 |
24 DEFAULT_REL_BUILD_DIR = os.path.join('out', 'android_Release') | 24 DEFAULT_REL_BUILD_DIR = os.path.join('out', 'android_Release') |
25 | 25 |
26 def git_revision(): | 26 def git_revision(): |
27 return subprocess.check_output(['git', 'rev-parse', 'HEAD']).strip() | 27 return subprocess.check_output(['git', 'rev-parse', 'HEAD']).strip() |
28 | 28 |
| 29 |
29 def gen_filter(path): | 30 def gen_filter(path): |
30 if os.path.isdir(path): | 31 if os.path.isdir(path): |
31 return True | 32 return True |
32 _, ext = os.path.splitext(path) | 33 _, ext = os.path.splitext(path) |
33 # Don't include all .dart, just .mojom.dart. | 34 # Don't include all .dart, just .mojom.dart. |
34 return path.endswith('.mojom.dart') | 35 return path.endswith('.mojom.dart') |
35 | 36 |
| 37 |
36 def dart_filter(path): | 38 def dart_filter(path): |
37 if os.path.isdir(path): | 39 if os.path.isdir(path): |
38 return True | 40 return True |
39 _, ext = os.path.splitext(path) | 41 _, ext = os.path.splitext(path) |
40 # .dart includes '.mojom.dart' | 42 # .dart includes '.mojom.dart' |
41 return ext == '.dart' | 43 return ext == '.dart' |
42 | 44 |
43 | 45 |
44 def sky_or_dart_filter(path): | |
45 if os.path.isdir(path): | |
46 return True | |
47 _, ext = os.path.splitext(path) | |
48 # .dart includes '.mojom.dart' | |
49 return ext == '.sky' or ext == '.dart' | |
50 | |
51 | |
52 def ensure_dir_exists(path): | 46 def ensure_dir_exists(path): |
53 if not os.path.exists(path): | 47 if not os.path.exists(path): |
54 os.makedirs(path) | 48 os.makedirs(path) |
55 | 49 |
56 | 50 |
57 def copy(from_root, to_root, filter_func=None): | 51 def copy(from_root, to_root, filter_func=None): |
58 assert os.path.exists(from_root), "%s does not exist!" % from_root | 52 assert os.path.exists(from_root), "%s does not exist!" % from_root |
59 if os.path.isfile(from_root): | 53 if os.path.isfile(from_root): |
60 ensure_dir_exists(os.path.dirname(to_root)) | 54 ensure_dir_exists(os.path.dirname(to_root)) |
61 shutil.copy(from_root, to_root) | 55 shutil.copy(from_root, to_root) |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 | 143 |
150 def src_path(rel_path): | 144 def src_path(rel_path): |
151 return os.path.join(SRC_ROOT, rel_path) | 145 return os.path.join(SRC_ROOT, rel_path) |
152 | 146 |
153 ensure_dir_exists(sdk_root) | 147 ensure_dir_exists(sdk_root) |
154 delete_all_non_hidden_files_in_directory(sdk_root, args.non_interactive) | 148 delete_all_non_hidden_files_in_directory(sdk_root, args.non_interactive) |
155 | 149 |
156 # Manually clear sdk_root above to avoid deleting dot-files. | 150 # Manually clear sdk_root above to avoid deleting dot-files. |
157 copy(src_path('sky/sdk'), sdk_root) | 151 copy(src_path('sky/sdk'), sdk_root) |
158 | 152 |
159 copy_or_link(src_path('sky/examples'), sdk_path('examples'), | 153 copy_or_link(src_path('sky/examples'), sdk_path('examples')) |
160 sky_or_dart_filter) | |
161 | 154 |
162 # Sky package | 155 # Sky package |
163 copy_or_link(src_path('sky/framework'), | 156 copy_or_link(src_path('sky/framework'), sdk_path('packages/sky/lib/framework
')) |
164 sdk_path('packages/sky/lib/framework'), sky_or_dart_filter) | |
165 copy_or_link(src_path('sky/assets'), sdk_path('packages/sky/lib/assets')) | 157 copy_or_link(src_path('sky/assets'), sdk_path('packages/sky/lib/assets')) |
166 # Copy gen files every time for now: | 158 # Copy gen files every time for now: |
167 copy(os.path.join(build_dir, 'gen/sky'), | 159 copy(os.path.join(build_dir, 'gen/sky'), |
168 sdk_path('packages/sky/lib'), gen_filter) | 160 sdk_path('packages/sky/lib'), gen_filter) |
169 | 161 |
170 # Sky SDK additions: | 162 # Sky SDK additions: |
171 copy_or_link(src_path('sky/engine/bindings/builtin.dart'), | 163 copy_or_link(src_path('sky/engine/bindings/builtin.dart'), |
172 sdk_path('packages/sky/sdk_additions/dart_sky_builtins.dart')) | 164 sdk_path('packages/sky/sdk_additions/dart_sky_builtins.dart')) |
173 bindings_path = os.path.join(build_dir, 'gen/sky/bindings') | 165 bindings_path = os.path.join(build_dir, 'gen/sky/bindings') |
174 # dart_sky.dart has many supporting files: | 166 # dart_sky.dart has many supporting files: |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 'git', 'commit', | 210 'git', 'commit', |
219 '-m', '%s from %s' % (rel_build_dir, git_revision()) | 211 '-m', '%s from %s' % (rel_build_dir, git_revision()) |
220 ], cwd=sdk_root) | 212 ], cwd=sdk_root) |
221 | 213 |
222 time_delta = datetime.now() - start_time | 214 time_delta = datetime.now() - start_time |
223 print 'SDK built at %s in %ss' % (sdk_root, time_delta.total_seconds()) | 215 print 'SDK built at %s in %ss' % (sdk_root, time_delta.total_seconds()) |
224 | 216 |
225 | 217 |
226 if __name__ == '__main__': | 218 if __name__ == '__main__': |
227 main() | 219 main() |
OLD | NEW |