OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # | 2 # |
3 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 3 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
4 # for details. All rights reserved. Use of this source code is governed by a | 4 # for details. All rights reserved. Use of this source code is governed by a |
5 # BSD-style license that can be found in the LICENSE file. | 5 # BSD-style license that can be found in the LICENSE file. |
6 # | 6 # |
7 # A script which will be invoked from gyp to create an SDK. | 7 # A script which will be invoked from gyp to create an SDK. |
8 # | 8 # |
9 # Usage: create_sdk.py sdk_directory | 9 # Usage: create_sdk.py sdk_directory |
10 # | 10 # |
11 # The SDK will be used either from the command-line or from the editor. | 11 # The SDK will be used either from the command-line or from the editor. |
12 # Top structure is | 12 # Top structure is |
13 # | 13 # |
14 # ..dart-sdk/ | 14 # ..dart-sdk/ |
15 # ....bin/ | 15 # ....bin/ |
16 # ......dart or dart.exe (executable) | 16 # ......dart or dart.exe (executable) |
17 # ......frogc.dart | 17 # ......frogc.dart |
18 # ......frogsh (coming later) | 18 # ......frogsh (coming later) |
19 # ......dart_analyzer | |
20 # ....lib/ | 19 # ....lib/ |
21 # ......builtin/ | 20 # ......builtin/ |
22 # ........builtin_runtime.dart | 21 # ........builtin_runtime.dart |
23 # ......io/ | 22 # ......io/ |
24 # ........io_runtime.dart | 23 # ........io_runtime.dart |
25 # ........runtime/ | 24 # ........runtime/ |
26 # ......core/ | 25 # ......core/ |
27 # ........core_{frog, runtime}.dart | 26 # ........core_{frog, runtime}.dart |
28 # ........{frog, runtime}/ | 27 # ........{frog, runtime}/ |
29 # ......coreimpl/ | 28 # ......coreimpl/ |
(...skipping 11 matching lines...) Expand all Loading... |
41 # ........html_dartium.dart | 40 # ........html_dartium.dart |
42 # ......json/ | 41 # ......json/ |
43 # ........json_frog.dart | 42 # ........json_frog.dart |
44 #.........json.dart | 43 #.........json.dart |
45 # ........{frog}/ | 44 # ........{frog}/ |
46 # ......uri/ | 45 # ......uri/ |
47 # ........uri.dart | 46 # ........uri.dart |
48 # ......utf/ | 47 # ......utf/ |
49 # ......(more will come here) | 48 # ......(more will come here) |
50 # ....util/ | 49 # ....util/ |
51 # .......analyzer/ | |
52 # .........dart_analyzer.jar | |
53 # .........(third-party libraries for dart_analyzer) | |
54 # ......(more will come here) | 50 # ......(more will come here) |
55 | 51 |
56 | 52 |
57 | 53 |
58 import os | 54 import os |
59 import re | 55 import re |
60 import sys | 56 import sys |
61 import tempfile | 57 import tempfile |
62 import utils | 58 import utils |
63 | 59 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 | 107 |
112 # Create and populate sdk/bin. | 108 # Create and populate sdk/bin. |
113 BIN = join(SDK_tmp, 'bin') | 109 BIN = join(SDK_tmp, 'bin') |
114 os.makedirs(BIN) | 110 os.makedirs(BIN) |
115 | 111 |
116 # Copy the Dart VM binary into sdk/bin. | 112 # Copy the Dart VM binary into sdk/bin. |
117 # TODO(dgrove) - deal with architectures that are not ia32. | 113 # TODO(dgrove) - deal with architectures that are not ia32. |
118 build_dir = os.path.dirname(argv[1]) | 114 build_dir = os.path.dirname(argv[1]) |
119 frogc_file_extension = '' | 115 frogc_file_extension = '' |
120 dart_file_extension = '' | 116 dart_file_extension = '' |
121 analyzer_file_extension = '' | |
122 if utils.GuessOS() == 'win32': | 117 if utils.GuessOS() == 'win32': |
123 dart_file_extension = '.exe' | 118 dart_file_extension = '.exe' |
124 frogc_file_extension = '.bat' | 119 frogc_file_extension = '.bat' |
125 analyzer_file_extension = '.sh' # TODO(zundel): never tested on Windows | |
126 dart_src_binary = join(HOME, build_dir, 'dart' + dart_file_extension) | 120 dart_src_binary = join(HOME, build_dir, 'dart' + dart_file_extension) |
127 dart_dest_binary = join(BIN, 'dart' + dart_file_extension) | 121 dart_dest_binary = join(BIN, 'dart' + dart_file_extension) |
128 frogc_src_binary = join(HOME, 'frog', 'scripts', 'bootstrap', | 122 frogc_src_binary = join(HOME, 'frog', 'scripts', 'bootstrap', |
129 'frogc' + frogc_file_extension) | 123 'frogc' + frogc_file_extension) |
130 frogc_dest_binary = join(BIN, 'frogc' + frogc_file_extension) | 124 frogc_dest_binary = join(BIN, 'frogc' + frogc_file_extension) |
131 copyfile(dart_src_binary, dart_dest_binary) | 125 copyfile(dart_src_binary, dart_dest_binary) |
132 copymode(dart_src_binary, dart_dest_binary) | 126 copymode(dart_src_binary, dart_dest_binary) |
133 copyfile(frogc_src_binary, frogc_dest_binary) | 127 copyfile(frogc_src_binary, frogc_dest_binary) |
134 copymode(frogc_src_binary, frogc_dest_binary) | 128 copymode(frogc_src_binary, frogc_dest_binary) |
135 ANALYZER_HOME = join(HOME, build_dir, 'analyzer') | |
136 dart_analyzer_src_binary = join(ANALYZER_HOME, 'bin', 'dart_analyzer') | |
137 dart_analyzer_dest_binary = join(BIN, | |
138 'dart_analyzer' + analyzer_file_extension) | |
139 copyfile(dart_analyzer_src_binary, dart_analyzer_dest_binary) | |
140 copymode(dart_analyzer_src_binary, dart_analyzer_dest_binary) | |
141 | 129 |
142 # Create sdk/bin/frogc.dart, and hack as needed. | 130 # Create sdk/bin/frogc.dart, and hack as needed. |
143 frog_src_dir = join(HOME, 'frog') | 131 frog_src_dir = join(HOME, 'frog') |
144 | 132 |
145 # Convert frogc.dart's imports from import('*') -> import('frog/*'). | 133 # Convert frogc.dart's imports from import('*') -> import('frog/*'). |
146 frogc_contents = open(join(frog_src_dir, 'frogc.dart')).read() | 134 frogc_contents = open(join(frog_src_dir, 'frogc.dart')).read() |
147 frogc_dest = open(join(BIN, 'frogc.dart'), 'w') | 135 frogc_dest = open(join(BIN, 'frogc.dart'), 'w') |
148 frogc_dest.write( | 136 frogc_dest.write( |
149 re.sub(r"#import\('([^.])", r"#import('../lib/frog/\1", frogc_contents)) | 137 re.sub(r"#import\('([^.])", r"#import('../lib/frog/\1", frogc_contents)) |
150 frogc_dest.close() | 138 frogc_dest.close() |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 for filename in coreimpl_runtime_sources: | 409 for filename in coreimpl_runtime_sources: |
422 if filename.endswith('.dart'): | 410 if filename.endswith('.dart'): |
423 dest_file.write('#source("runtime/' + filename + '");\n') | 411 dest_file.write('#source("runtime/' + filename + '");\n') |
424 dest_file.close() | 412 dest_file.close() |
425 | 413 |
426 # Create and copy tools. | 414 # Create and copy tools. |
427 | 415 |
428 UTIL = join(SDK_tmp, 'util') | 416 UTIL = join(SDK_tmp, 'util') |
429 os.makedirs(UTIL) | 417 os.makedirs(UTIL) |
430 | 418 |
431 # Create and copy Analyzer library. | |
432 | |
433 ANALYZER_DEST = join(UTIL, 'analyzer') | |
434 os.makedirs(ANALYZER_DEST) | |
435 | 419 |
436 darta_src_jar = join(ANALYZER_HOME, 'util', 'analyzer', 'dart_analyzer.jar') | |
437 darta_dest_jar = join(ANALYZER_DEST, 'dart_analyzer.jar') | |
438 copyfile(darta_src_jar, darta_dest_jar) | |
439 | |
440 jarsToCopy = [ join("args4j", "2.0.12", "args4j-2.0.12.jar"), | |
441 join("guava", "r09", "guava-r09.jar"), | |
442 join("json", "r2_20080312", "json.jar") ] | |
443 for jarToCopy in jarsToCopy: | |
444 dest_dir = join (ANALYZER_DEST, os.path.dirname(jarToCopy)) | |
445 os.makedirs(dest_dir) | |
446 dest_file = join (ANALYZER_DEST, jarToCopy) | |
447 src_file = join(ANALYZER_HOME, 'util', 'analyzer', jarToCopy) | |
448 copyfile(src_file, dest_file) | |
449 | |
450 | |
451 # Copy import maps | 420 # Copy import maps |
452 | |
453 PLATFORMS = ['any', 'vm', 'dartium', 'dart2js', 'frog' ] | 421 PLATFORMS = ['any', 'vm', 'dartium', 'dart2js', 'frog' ] |
454 os.makedirs(join(LIB, 'config')) | 422 os.makedirs(join(LIB, 'config')) |
455 for platform in PLATFORMS: | 423 for platform in PLATFORMS: |
456 import_src = join(HOME, 'lib', 'config', 'import_' + platform + '.config') | 424 import_src = join(HOME, 'lib', 'config', 'import_' + platform + '.config') |
457 import_dst = join(LIB, 'config', 'import_' + platform + '.config') | 425 import_dst = join(LIB, 'config', 'import_' + platform + '.config') |
458 copyfile(import_src, import_dst); | 426 copyfile(import_src, import_dst); |
459 | 427 |
460 move(SDK_tmp, SDK) | 428 move(SDK_tmp, SDK) |
461 | 429 |
462 if __name__ == '__main__': | 430 if __name__ == '__main__': |
463 sys.exit(Main(sys.argv)) | 431 sys.exit(Main(sys.argv)) |
OLD | NEW |