| Index: tools/create_editor.py
|
| diff --git a/tools/create_editor.py b/tools/create_editor.py
|
| deleted file mode 100644
|
| index 74fa1330a9beedca3e37e77f2166990c59313eea..0000000000000000000000000000000000000000
|
| --- a/tools/create_editor.py
|
| +++ /dev/null
|
| @@ -1,223 +0,0 @@
|
| -#!/usr/bin/env python
|
| -#
|
| -# Copyright (c) 2013, 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 a build of the editor.
|
| -#
|
| -# Usage: ./tools/create_editor.py
|
| -# [--mode <mode>] [--arch <arch>] [--out <output>] [--build <build>]
|
| -#
|
| -# DO NOT CALL THIS SCRIPT DIRECTLY, instead invoke:
|
| -# ./tools/build.py -mrelease editor
|
| -
|
| -import glob
|
| -import optparse
|
| -import os
|
| -import shutil
|
| -import subprocess
|
| -import sys
|
| -import utils
|
| -import zipfile
|
| -
|
| -from os.path import join
|
| -
|
| -OUTPUT = None
|
| -BUILD = None
|
| -
|
| -OS_CONFIG = {
|
| - 'win32': 'win32, win32',
|
| - 'linux': 'linux, gtk',
|
| - 'macos': 'macosx, cocoa'
|
| -}
|
| -
|
| -ARCH_CONFIG = {
|
| - 'ia32': 'x86',
|
| - 'x64': 'x86_64'
|
| -}
|
| -
|
| -def AntPath():
|
| - parent = join('third_party', 'apache_ant', '1.8.4', 'bin')
|
| - if utils.IsWindows():
|
| - return join(parent, 'ant.bat')
|
| - else:
|
| - return join(parent, 'ant')
|
| -
|
| -
|
| -def ProcessEditorArchive(arch, archive, outDir):
|
| - tempDir = join(GetEditorTemp(), 'editor.out')
|
| - try:
|
| - os.makedirs(tempDir)
|
| - except OSError:
|
| - # Directory already exists.
|
| - pass
|
| -
|
| - if utils.IsWindows():
|
| - f = zipfile.ZipFile(archive)
|
| - f.extractall(tempDir)
|
| - f.close()
|
| - else:
|
| - subprocess.call(['unzip', '-q', archive, '-d', tempDir])
|
| -
|
| - if arch == 'x64':
|
| - if utils.GuessOS() == 'macos':
|
| - inifile = join(tempDir, 'dart', 'DartEditor.app', 'Contents', 'MacOS',
|
| - 'DartEditor.ini')
|
| - else:
|
| - inifile = join(tempDir, 'dart', 'DartEditor.ini')
|
| - Modify64BitDartEditorIni(inifile)
|
| -
|
| - for src in glob.glob(join(tempDir, 'dart', '*')):
|
| - shutil.move(src, outDir)
|
| -
|
| - shutil.rmtree(tempDir)
|
| - os.unlink(archive)
|
| -
|
| -
|
| -def Modify64BitDartEditorIni(iniFilePath):
|
| - f = open(iniFilePath, 'r')
|
| - lines = f.readlines()
|
| - f.close()
|
| - lines[lines.index('-Xms40m\n')] = '-Xms256m\n'
|
| - lines[lines.index('-Xmx1024m\n')] = '-Xmx2000m\n'
|
| - # Add -d64 to give better error messages to user in 64 bit mode.
|
| - lines[lines.index('-vmargs\n')] = '-vmargs\n-d64\n'
|
| - f = open(iniFilePath, 'w')
|
| - f.writelines(lines)
|
| - f.close()
|
| -
|
| -
|
| -def GetEditorTemp():
|
| - return join(BUILD, 'editor.build.temp')
|
| -
|
| -
|
| -def GetDownloadCache():
|
| - return GetEclipseBuildRoot()
|
| -
|
| -
|
| -def GetEclipseBuildRoot():
|
| - return join(BUILD, 'editor.build.cache')
|
| -
|
| -
|
| -def GetSdkPath():
|
| - return join(os.path.dirname(OUTPUT), 'dart-sdk')
|
| -
|
| -
|
| -def GetOutputParent():
|
| - return os.path.dirname(os.path.dirname(OUTPUT))
|
| -
|
| -
|
| -def BuildOptions():
|
| - options = optparse.OptionParser(usage='usage: %prog [options] <output>')
|
| - options.add_option("-m", "--mode", metavar='[debug,release]')
|
| - options.add_option("-a", "--arch", metavar='[ia32,x64]')
|
| - options.add_option("-o", "--out")
|
| - options.add_option("-b", "--build")
|
| - return options
|
| -
|
| -
|
| -def Main():
|
| - global OUTPUT
|
| - global BUILD
|
| -
|
| - parser = BuildOptions()
|
| - (options, args) = parser.parse_args()
|
| -
|
| - if args:
|
| - parser.print_help()
|
| - return 1
|
| -
|
| - osName = utils.GuessOS()
|
| - mode = 'debug'
|
| - arch = utils.GuessArchitecture()
|
| -
|
| - if not options.build:
|
| - print >> sys.stderr, 'Error: no --build option specified'
|
| - exit(1)
|
| - else:
|
| - BUILD = options.build
|
| -
|
| - if not options.out:
|
| - print >> sys.stderr, 'Error: no --out option specified'
|
| - exit(1)
|
| - else:
|
| - # TODO(devoncarew): Currently we scrape the output path to determine the
|
| - # mode and arch. This is fragile and should moved into one location
|
| - # (utils.py?) or made more explicit.
|
| - OUTPUT = options.out
|
| - mode = ('release', 'debug')['Debug' in OUTPUT]
|
| - arch = ('ia32', 'x64')['X64' in OUTPUT]
|
| -
|
| - # Use explicit mode and arch information.
|
| - if options.mode:
|
| - mode = options.mode
|
| - if options.arch:
|
| - arch = options.arch
|
| -
|
| - OUTPUT = os.path.abspath(OUTPUT)
|
| - BUILD = os.path.abspath(BUILD)
|
| -
|
| - print "\nBuilding the editor"
|
| - print " config : %s, %s, %s" % (osName, arch, mode)
|
| - print " output : %s" % OUTPUT
|
| -
|
| - # Clean the editor output directory.
|
| - print '\ncleaning %s' % OUTPUT
|
| - shutil.rmtree(OUTPUT, True)
|
| -
|
| - # These are the valid eclipse build configurations that we can produce.
|
| - # We synthesize these up from the OS_CONFIG and ARCH_CONFIG information.
|
| - # macosx, cocoa, x86 & macosx, cocoa, x86_64
|
| - # win32, win32, x86 & win32, win32, x86_64
|
| - # linux, gtk, x86 & linux, gtk, x86_64
|
| -
|
| - buildConfig = OS_CONFIG[osName] + ', ' + ARCH_CONFIG[arch]
|
| -
|
| - print "\ninvoking build_rcp.xml with buildConfig = [%s]\n" % buildConfig
|
| -
|
| - sys.stdout.flush()
|
| - sys.stderr.flush()
|
| -
|
| - buildScript = join('editor', 'tools', 'features',
|
| - 'com.google.dart.tools.deploy.feature_releng',
|
| - 'build_rcp.xml')
|
| - build_cmd = [AntPath(),
|
| - '-lib',
|
| - join('third_party', 'bzip2', 'bzip2.jar'),
|
| - '-Dbuild.out=' + OUTPUT,
|
| - '-Dbuild.configs=' + buildConfig,
|
| - '-Dbuild.root=' + GetEclipseBuildRoot(),
|
| - '-Dbuild.downloads=' + GetDownloadCache(),
|
| - '-Dbuild.source=' + os.path.abspath('editor'),
|
| - '-Dbuild.dart.sdk=' + GetSdkPath(),
|
| - '-Dbuild.no.properties=true',
|
| - '-Dbuild.channel=' + utils.GetChannel(),
|
| - '-Dbuild.revision=' + utils.GetSVNRevision(),
|
| - '-Dbuild.version.qualifier=' + utils.GetEclipseVersionQualifier(),
|
| - '-Ddart.version.full=' + utils.GetVersion(),
|
| - '-buildfile',
|
| - buildScript]
|
| - print build_cmd
|
| - buildRcpStatus = subprocess.call(build_cmd, shell=utils.IsWindows())
|
| -
|
| - if buildRcpStatus != 0:
|
| - sys.exit(buildRcpStatus)
|
| -
|
| - # build_rcp.xml will put the built editor archive in the OUTPUT directory
|
| - # (dart-editor-macosx.cocoa.x86.zip). It contains the editor application in a
|
| - # dart/ subdirectory. We unzip the contents of the archive into OUTPUT. It
|
| - # will use the ../dart-sdk directory as its SDK.
|
| - archives = glob.glob(join(OUTPUT, 'd*.zip'))
|
| -
|
| - if archives:
|
| - ProcessEditorArchive(arch, archives[0], OUTPUT)
|
| -
|
| - if os.path.exists(GetEditorTemp()):
|
| - shutil.rmtree(GetEditorTemp())
|
| -
|
| - print('\nEditor build successful')
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - sys.exit(Main())
|
|
|