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

Unified Diff: tools/create_sdk.py

Issue 2848943003: [infra] Assembles the SDK using GN rather than create_sdk.py (Closed)
Patch Set: Move copy_dev_compiler_tools out of the default full SDK build Created 3 years, 7 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
« no previous file with comments | « sdk/BUILD.gn ('k') | tools/gn.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/create_sdk.py
diff --git a/tools/create_sdk.py b/tools/create_sdk.py
deleted file mode 100755
index b93d0e4278c3cd68483062cb7eb80bc64f609dd3..0000000000000000000000000000000000000000
--- a/tools/create_sdk.py
+++ /dev/null
@@ -1,327 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-# 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.
-#
-# Usage: create_sdk.py sdk_directory
-#
-# The SDK will be used either from the command-line or from the editor.
-# Top structure is
-#
-# ..dart-sdk/
-# ....bin/
-# ......dart or dart.exe (executable)
-# ......dart.lib (import library for VM native extensions on Windows)
-# ......dartdoc
-# ......dartfmt
-# ......dart2js
-# ......dartanalyzer
-# ......dartdevc
-# ......pub
-# ......snapshots/
-# ........analysis_server.dart.snapshot
-# ........dart2js.dart.snapshot
-# ........dartanalyzer.dart.snapshot
-# ........dartdoc.dart.snapshot
-# ........dartfmt.dart.snapshot
-# ........dartdevc.dart.snapshot
-# ........pub.dart.snapshot
-# ........utils_wrapper.dart.snapshot
-#.........resources/
-#...........dartdoc/
-#..............packages
-#.............resources/
-#.............templates/
-# ....include/
-# ......dart_api.h
-# ......dart_mirrors_api.h
-# ......dart_native_api.h
-# ......dart_tools_api.h
-# ....lib/
-# ......dart_client.platform
-# ......dart_server.platform
-# ......dart_shared.platform
-# ......_internal/
-#.........spec.sum
-#.........strong.sum
-#.........dev_compiler/
-# ......analysis_server/
-# ......analyzer/
-# ......async/
-# ......collection/
-# ......convert/
-# ......core/
-# ......front_end/
-# ......html/
-# ......internal/
-# ......io/
-# ......isolate/
-# ......js/
-# ......js_util/
-# ......kernel/
-# ......math/
-# ......mirrors/
-# ......typed_data/
-# ......api_readme.md
-# ....util/
-# ......(more will come here)
-
-
-import optparse
-import os
-import re
-import sys
-import subprocess
-
-import utils
-
-
-HOST_OS = utils.GuessOS()
-
-# TODO(dgrove): Only import modules following Google style guide.
-from os.path import basename, dirname, join, realpath, exists
-
-# TODO(dgrove): Only import modules following Google style guide.
-from shutil import copyfile, copymode, copytree, ignore_patterns, rmtree, move
-
-
-def GetOptions():
- options = optparse.OptionParser(usage='usage: %prog [options]')
- options.add_option("--sdk_output_dir",
- help='Where to output the sdk')
- options.add_option("--snapshot_location",
- help='Location of the snapshots.')
- return options.parse_args()
-
-
-def Copy(src, dest):
- copyfile(src, dest)
- copymode(src, dest)
-
-
-def CopyShellScript(src_file, dest_dir):
- """Copies a shell/batch script to the given destination directory. Handles
- using the appropriate platform-specific file extension."""
- file_extension = ''
- if HOST_OS == 'win32':
- file_extension = '.bat'
-
- # If we're copying an SDK-specific shell script, strip off the suffix.
- dest_file = basename(src_file)
- if dest_file.endswith('_sdk'):
- dest_file = dest_file.replace('_sdk', '')
-
- src = src_file + file_extension
- dest = join(dest_dir, dest_file + file_extension)
- Copy(src, dest)
-
-
-def CopyDartScripts(home, sdk_root):
- for executable in ['dart2js_sdk', 'dartanalyzer_sdk', 'dartfmt_sdk',
- 'pub_sdk', 'dartdoc', 'dartdevc_sdk']:
- CopyShellScript(os.path.join(home, 'sdk', 'bin', executable),
- os.path.join(sdk_root, 'bin'))
-
-
-def CopySnapshots(snapshots, sdk_root):
- for snapshot in ['analysis_server', 'dart2js', 'dartanalyzer', 'dartfmt',
- 'utils_wrapper', 'pub', 'dartdoc', 'dartdevc']:
- snapshot += '.dart.snapshot'
- copyfile(join(snapshots, snapshot),
- join(sdk_root, 'bin', 'snapshots', snapshot))
-
-def CopyAnalyzerSources(home, lib_dir):
- for library in ['analyzer', 'analysis_server', 'front_end', 'kernel']:
- copytree(join(home, 'pkg', library), join(lib_dir, library),
- ignore=ignore_patterns('*.svn', 'doc', '*.py', '*.gypi', '*.sh',
- '.gitignore', 'packages'))
-
-def CopyDartdocResources(home, sdk_root):
- RESOURCE_DIR = join(sdk_root, 'bin', 'snapshots', 'resources')
- DARTDOC = join(RESOURCE_DIR, 'dartdoc')
-
- copytree(join(home, 'third_party', 'pkg', 'dartdoc', 'lib', 'templates'),
- join(DARTDOC, 'templates'))
- copytree(join(home, 'third_party', 'pkg', 'dartdoc', 'lib', 'resources'),
- join(DARTDOC, 'resources'))
- # write the .packages file
- PACKAGES_FILE = join(DARTDOC, '.packages')
- packages_file = open(PACKAGES_FILE, 'w')
- packages_file.write('dartdoc:.')
- packages_file.close()
-
-def CopyAnalysisSummaries(snapshots, lib):
- copyfile(join(snapshots, 'spec.sum'),
- join(lib, '_internal', 'spec.sum'))
- copyfile(join(snapshots, 'strong.sum'),
- join(lib, '_internal', 'strong.sum'))
-
-def CopyDevCompilerSdk(home, lib):
- copyfile(join(home, 'pkg', 'dev_compiler', 'lib', 'sdk', 'ddc_sdk.sum'),
- join(lib, '_internal', 'ddc_sdk.sum'))
- copytree(join(home, 'pkg', 'dev_compiler', 'lib', 'js'),
- join(lib, 'dev_compiler'))
- copyfile(join(home, 'third_party', 'requirejs', 'require.js'),
- join(lib, 'dev_compiler', 'amd', 'require.js'))
-
-def Main():
- # Pull in all of the gypi files which will be munged into the sdk.
- HOME = dirname(dirname(realpath(__file__)))
-
- (options, args) = GetOptions()
-
- SDK = options.sdk_output_dir
- SDK_tmp = '%s.tmp' % SDK
-
- SNAPSHOT = options.snapshot_location
-
- # TODO(dgrove) - deal with architectures that are not ia32.
-
- if exists(SDK):
- rmtree(SDK)
-
- if exists(SDK_tmp):
- rmtree(SDK_tmp)
-
- os.makedirs(SDK_tmp)
-
- # Create and populate sdk/bin.
- BIN = join(SDK_tmp, 'bin')
- os.makedirs(BIN)
-
- os.makedirs(join(BIN, 'snapshots'))
-
- # Copy the Dart VM binary and the Windows Dart VM link library
- # into sdk/bin.
- #
- # TODO(dgrove) - deal with architectures that are not ia32.
- build_dir = os.path.dirname(SDK)
- dart_file_extension = ''
- if HOST_OS == 'win32':
- dart_file_extension = '.exe'
- dart_import_lib_src = join(HOME, build_dir, 'dart.lib')
- dart_import_lib_dest = join(BIN, 'dart.lib')
- copyfile(dart_import_lib_src, dart_import_lib_dest)
- dart_src_binary = join(HOME, build_dir, 'dart' + dart_file_extension)
- dart_dest_binary = join(BIN, 'dart' + dart_file_extension)
- copyfile(dart_src_binary, dart_dest_binary)
- copymode(dart_src_binary, dart_dest_binary)
- # Strip the binaries on platforms where that is supported.
- if HOST_OS == 'linux':
- subprocess.call(['strip', dart_dest_binary])
- elif HOST_OS == 'macos':
- subprocess.call(['strip', '-x', dart_dest_binary])
-
- #
- # Create and populate sdk/include.
- #
- INCLUDE = join(SDK_tmp, 'include')
- os.makedirs(INCLUDE)
- copyfile(join(HOME, 'runtime', 'include', 'dart_api.h'),
- join(INCLUDE, 'dart_api.h'))
- copyfile(join(HOME, 'runtime', 'include', 'dart_mirrors_api.h'),
- join(INCLUDE, 'dart_mirrors_api.h'))
- copyfile(join(HOME, 'runtime', 'include', 'dart_native_api.h'),
- join(INCLUDE, 'dart_native_api.h'))
- copyfile(join(HOME, 'runtime', 'include', 'dart_tools_api.h'),
- join(INCLUDE, 'dart_tools_api.h'))
-
- #
- # Create and populate sdk/lib.
- #
-
- LIB = join(SDK_tmp, 'lib')
- os.makedirs(LIB)
-
- #
- # Create and populate lib/{async, core, isolate, ...}.
- #
-
- os.makedirs(join(LIB, 'html'))
-
- for library in [join('_blink', 'dartium'),
- join('_chrome', 'dart2js'), join('_chrome', 'dartium'),
- join('_internal', 'js_runtime'),
- join('_internal', 'sdk_library_metadata'),
- 'async', 'collection', 'convert', 'core', 'developer',
- 'internal', 'io', 'isolate',
- join('html', 'dart2js'), join('html', 'dartium'),
- join('html', 'html_common'),
- join('indexed_db', 'dart2js'), join('indexed_db', 'dartium'),
- 'js', 'js_util', 'math', 'mirrors', 'profiler', 'typed_data',
- join('svg', 'dart2js'), join('svg', 'dartium'),
- join('web_audio', 'dart2js'), join('web_audio', 'dartium'),
- join('web_gl', 'dart2js'), join('web_gl', 'dartium'),
- join('web_sql', 'dart2js'), join('web_sql', 'dartium')]:
- copytree(join(HOME, 'sdk', 'lib', library), join(LIB, library),
- ignore=ignore_patterns('*.svn', 'doc', '*.py', '*.gypi', '*.sh',
- '.gitignore'))
-
- # Copy the platform descriptors.
- for file_name in ["dart_client.platform",
- "dart_server.platform",
- "dart_shared.platform"]:
- copyfile(join(HOME, 'sdk', 'lib', file_name), join(LIB, file_name));
-
- # Copy libraries.dart to lib/_internal/libraries.dart for backwards
- # compatibility.
- #
- # TODO(sigmund): stop copying libraries.dart. Old versions (<=0.25.1-alpha.4)
- # of the analyzer package do not support the new location of this file. We
- # should be able to remove the old file once we release a newer version of
- # analyzer and popular frameworks have migrated to use it.
- copyfile(join(HOME, 'sdk', 'lib', '_internal',
- 'sdk_library_metadata', 'lib', 'libraries.dart'),
- join(LIB, '_internal', 'libraries.dart'))
-
- # Create and copy tools.
- UTIL = join(SDK_tmp, 'util')
- os.makedirs(UTIL)
-
- RESOURCE = join(SDK_tmp, 'lib', '_internal', 'pub', 'asset')
- os.makedirs(os.path.dirname(RESOURCE))
- copytree(join(HOME, 'third_party', 'pkg', 'pub', 'lib', 'src',
- 'asset'),
- join(RESOURCE),
- ignore=ignore_patterns('.svn'))
-
- # Copy in 7zip for Windows.
- if HOST_OS == 'win32':
- copytree(join(HOME, 'third_party', '7zip'),
- join(RESOURCE, '7zip'),
- ignore=ignore_patterns('.svn'))
-
- # Copy dart2js/pub.
- CopyDartScripts(HOME, SDK_tmp)
-
- CopySnapshots(SNAPSHOT, SDK_tmp)
- CopyDartdocResources(HOME, SDK_tmp)
- CopyAnalyzerSources(HOME, LIB)
- CopyAnalysisSummaries(SNAPSHOT, LIB)
- CopyDevCompilerSdk(HOME, LIB)
-
- # Write the 'version' file
- version = utils.GetVersion()
- versionFile = open(os.path.join(SDK_tmp, 'version'), 'w')
- versionFile.write(version + '\n')
- versionFile.close()
-
- # Write the 'revision' file
- revision = utils.GetGitRevision()
-
- if revision is not None:
- with open(os.path.join(SDK_tmp, 'revision'), 'w') as f:
- f.write('%s\n' % revision)
- f.close()
-
- Copy(join(HOME, 'README.dart-sdk'), join(SDK_tmp, 'README'))
- Copy(join(HOME, 'LICENSE'), join(SDK_tmp, 'LICENSE'))
- Copy(join(HOME, 'sdk', 'api_readme.md'), join(SDK_tmp, 'lib', 'api_readme.md'))
-
- move(SDK_tmp, SDK)
-
-if __name__ == '__main__':
- sys.exit(Main())
« no previous file with comments | « sdk/BUILD.gn ('k') | tools/gn.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698