Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(94)

Unified Diff: tools/create_sdk.py

Issue 9555013: Get dartdoc in the SDK and working correctly. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Update copyright date. Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/create_sdk.py
diff --git a/tools/create_sdk.py b/tools/create_sdk.py
index 74105b06746d7a6061b5bef79fb7b511401028ac..778cf96d122249c6afd2be6f435d32e6169ae5a9 100644
--- a/tools/create_sdk.py
+++ b/tools/create_sdk.py
@@ -4,11 +4,11 @@
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
#
-# A script which will be invoked from gyp to create an SDK.
+# A script which will be invoked from gyp to create an SDK.
#
# Usage: create_sdk.py sdk_directory
#
-# The SDK will be used either from the command-line or from the editor.
+# The SDK will be used either from the command-line or from the editor.
# Top structure is
#
# ..dart-sdk/
@@ -24,19 +24,20 @@
# ........runtime/
# ......core/
# ........core_{frog, runtime}.dart
-# ........{frog, runtime}/
+# ........{frog, runtime}/
# ......coreimpl/
# ........coreimpl_{frog, runtime}.dart
-# ........{frog, runtime}/
+# ........{frog, runtime}/
+# ......dartdoc/
# ......isolate/
# ........isolate_{frog, runtime}.dart
-# ........{frog, runtime}/
+# ........{frog, runtime}/
# ......dom/
# ........dom.dart
# ......frog/
-# ......html/
+# ......html/
# ........html.dart
-# ......htmlimpl/
+# ......htmlimpl/
# ........htmlimpl.dart
# ......json/
# ........json_frog.dart
@@ -61,6 +62,18 @@ import utils
from os.path import dirname, join, realpath, exists, isdir
from shutil import copyfile, copymode, copytree, ignore_patterns, rmtree, move
+def ReplaceInFiles(paths, subs):
+ '''Reads a series of files, applies a series of substitutions to each, and
+ saves them back out. subs should by a list of (pattern, replace) tuples.'''
+ for path in paths:
+ contents = open(path).read()
+ for pattern, replace in subs:
+ contents = re.sub(pattern, replace, contents)
+
+ dest = open(path, 'w')
+ dest.write(contents)
+ dest.close()
+
def Main(argv):
# Pull in all of the gpyi files which will be munged into the sdk.
builtin_runtime_sources = \
@@ -105,7 +118,7 @@ def Main(argv):
frogc_file_extension = '.bat'
dart_src_binary = join(HOME, build_dir, 'dart' + dart_file_extension)
dart_dest_binary = join(BIN, 'dart' + dart_file_extension)
- frogc_src_binary = join(HOME, 'frog', 'scripts', 'bootstrap',
+ frogc_src_binary = join(HOME, 'frog', 'scripts', 'bootstrap',
'frogc' + frogc_file_extension)
frogc_dest_binary = join(BIN, 'frogc' + frogc_file_extension)
copyfile(dart_src_binary, dart_dest_binary)
@@ -190,8 +203,8 @@ def Main(argv):
# change config from 'dev' to 'sdk' in frog_options.dart
frog_options_contents = open(join(frog_src_dir, filename)).read()
frog_options_dest = open(join(frog_dest_dir, filename), 'w')
- frog_options_dest.write(re.sub("final config = \'dev\';",
- "final config = \'sdk\';",
+ frog_options_dest.write(re.sub("final config = \'dev\';",
+ "final config = \'sdk\';",
frog_options_contents))
frog_options_dest.close()
elif filename.endswith('.dart'):
@@ -209,7 +222,7 @@ def Main(argv):
file.write(re.sub("../../lib", "../..", file_contents))
file.close()
- copytree(join(frog_src_dir, 'server'), join(frog_dest_dir, 'server'),
+ copytree(join(frog_src_dir, 'server'), join(frog_dest_dir, 'server'),
ignore=ignore_patterns('.svn'))
# Remap imports in frog/... .
@@ -246,7 +259,7 @@ def Main(argv):
copyfile(join(dom_src_dir, 'frog', 'dom_frog.dart'),
join(dom_dest_dir, 'dom_frog.dart'))
- #
+ #
# Create and populate lib/{json, uri, utf8} .
#
@@ -258,7 +271,33 @@ def Main(argv):
for filename in os.listdir(src_dir):
if filename.endswith('.dart'):
copyfile(join(src_dir, filename), join(dest_dir, filename))
-
+
+ # Create and populate lib/dartdoc
+ dartdoc_src_dir = join(HOME, 'lib', 'dartdoc')
+ dartdoc_dest_dir = join(LIB, 'dartdoc')
+ copytree(dartdoc_src_dir, dartdoc_dest_dir,
+ ignore=ignore_patterns('.svn', 'docs'))
+ ReplaceInFiles([
+ join(LIB, 'dartdoc', 'dartdoc')
+ ], [
+ ("../../frog/minfrog", "../../bin/frogc"),
+ ("--libdir=../../frog/lib", "--libdir=../")
+ ])
+ ReplaceInFiles([
+ join(LIB, 'dartdoc', 'dartdoc.dart')
+ ], [
+ ("#import\('../../frog", "#import('../frog"),
+ ("'../../frog'", "'../frog'"),
+ ("'--libdir=../../frog/lib'", "'--libdir=../'")
+ ])
+ ReplaceInFiles([
+ join(LIB, 'dartdoc', 'classify.dart'),
+ join(LIB, 'dartdoc', 'client-live-nav.dart'),
+ join(LIB, 'dartdoc', 'client-static.dart')
+ ], [
+ ("#import\('../../frog", "#import('../frog")
+ ])
+
# Create and populate lib/isolate
copytree(join(HOME, 'lib', 'isolate'), join(LIB, 'isolate'),
ignore=ignore_patterns('.svn'))
@@ -270,21 +309,21 @@ def Main(argv):
# First, copy corelib/* to lib/{frog, runtime}
for filename in corelib_sources:
for target_dir in ['frog', 'runtime']:
- copyfile(join('corelib', 'src', filename),
+ copyfile(join('corelib', 'src', filename),
join(corelib_dest_dir, target_dir, filename))
# Next, copy the frog library source on top of core/frog
# TOOD(dgrove): move json to top-level
for filename in corelib_frog_sources:
- copyfile(join('frog', 'lib', filename),
+ copyfile(join('frog', 'lib', filename),
join(corelib_dest_dir, 'frog', filename))
# Next, copy the runtime library source on top of core/runtime
for filename in corelib_runtime_sources:
if filename.endswith('.dart'):
- copyfile(join('runtime', 'lib', filename),
+ copyfile(join('runtime', 'lib', filename),
join(corelib_dest_dir, 'runtime', filename))
-
+
#
# At this point, it's time to create lib/core/core*dart .
#
@@ -315,24 +354,24 @@ def Main(argv):
# First, copy corelib/src/implementation to corelib/{frog, runtime}.
for filename in coreimpl_sources:
for target_dir in ['frog', 'runtime']:
- copyfile(join('corelib', 'src', 'implementation', filename),
+ copyfile(join('corelib', 'src', 'implementation', filename),
join(coreimpl_dest_dir, target_dir, filename))
for filename in coreimpl_frog_sources:
- copyfile(join('frog', 'lib', filename),
+ copyfile(join('frog', 'lib', filename),
join(coreimpl_dest_dir, 'frog', filename))
for filename in coreimpl_runtime_sources:
if filename.endswith('.dart'):
- copyfile(join('runtime', 'lib', filename),
+ copyfile(join('runtime', 'lib', filename),
join(coreimpl_dest_dir, 'runtime', filename))
-
+
# Create and fix up lib/coreimpl/coreimpl_frog.dart .
src_file = join('frog', 'lib', 'corelib_impl.dart')
dest_file = open(join(coreimpl_dest_dir, 'coreimpl_frog.dart'), 'w')
contents = open(src_file).read()
- contents = re.sub('source\(\"../../corelib/src/implementation/',
+ contents = re.sub('source\(\"../../corelib/src/implementation/',
'source(\"', contents)
contents = re.sub('source\(\"', 'source(\"frog/', contents)
dest_file.write(contents)
« frog/presubmit.py ('K') | « tests/utils/utils.status ('k') | tools/test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698