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

Side by Side Diff: tools/build.py

Issue 23889034: Revert last commit (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/assembler_arm.cc ('k') | tools/gyp/all.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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) 2012, 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 7
8 import optparse 8 import optparse
9 import os 9 import os
10 import re 10 import re
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 print "Unknown os %s" % os 94 print "Unknown os %s" % os
95 return False 95 return False
96 if os != HOST_OS: 96 if os != HOST_OS:
97 if os != 'android': 97 if os != 'android':
98 print "Unsupported target os %s" % os 98 print "Unsupported target os %s" % os
99 return False 99 return False
100 if not HOST_OS in ['linux']: 100 if not HOST_OS in ['linux']:
101 print ("Cross-compilation to %s is not supported on host os %s." 101 print ("Cross-compilation to %s is not supported on host os %s."
102 % (os, HOST_OS)) 102 % (os, HOST_OS))
103 return False 103 return False
104 if not arch in ['ia32', 'arm']: 104 if not arch in ['ia32']:
105 print ("Cross-compilation to %s is not supported for architecture %s." 105 print ("Cross-compilation to %s is not supported for architecture %s."
106 % (os, arch)) 106 % (os, arch))
107 return False 107 return False
108 # We have not yet tweaked the v8 dart build to work with the Android 108 # We have not yet tweaked the v8 dart build to work with the Android
109 # NDK/SDK, so don't try to build it. 109 # NDK/SDK, so don't try to build it.
110 if args == []: 110 if args == []:
111 print "For android builds you must specify a target, such as 'samples'." 111 print "For android builds you must specify a target, such as 'samples'."
112 return False 112 return False
113 if 'v8' in args: 113 if 'v8' in args:
114 print "The v8 target is not supported for android builds." 114 print "The v8 target is not supported for android builds."
(...skipping 22 matching lines...) Expand all
137 raise Exception('Could not find %s directory %s' 137 raise Exception('Could not find %s directory %s'
138 % (docstring, path)) 138 % (docstring, path))
139 139
140 140
141 def SetCrossCompilationEnvironment(host_os, target_os, target_arch, old_path): 141 def SetCrossCompilationEnvironment(host_os, target_os, target_arch, old_path):
142 global THIRD_PARTY_ROOT 142 global THIRD_PARTY_ROOT
143 if host_os not in ['linux']: 143 if host_os not in ['linux']:
144 raise Exception('Unsupported host os %s' % host_os) 144 raise Exception('Unsupported host os %s' % host_os)
145 if target_os not in ['android']: 145 if target_os not in ['android']:
146 raise Exception('Unsupported target os %s' % target_os) 146 raise Exception('Unsupported target os %s' % target_os)
147 if target_arch not in ['ia32', 'arm']: 147 if target_arch not in ['ia32']:
148 raise Exception('Unsupported target architecture %s' % target_arch) 148 raise Exception('Unsupported target architecture %s' % target_arch)
149 149
150 CheckDirExists(THIRD_PARTY_ROOT, 'third party tools'); 150 CheckDirExists(THIRD_PARTY_ROOT, 'third party tools');
151 android_tools = os.path.join(THIRD_PARTY_ROOT, 'android_tools') 151 android_tools = os.path.join(THIRD_PARTY_ROOT, 'android_tools')
152 CheckDirExists(android_tools, 'Android tools') 152 CheckDirExists(android_tools, 'Android tools')
153 android_ndk_root = os.path.join(android_tools, 'ndk') 153 android_ndk_root = os.path.join(android_tools, 'ndk')
154 CheckDirExists(android_ndk_root, 'Android NDK') 154 CheckDirExists(android_ndk_root, 'Android NDK')
155 android_sdk_root = os.path.join(android_tools, 'sdk') 155 android_sdk_root = os.path.join(android_tools, 'sdk')
156 CheckDirExists(android_sdk_root, 'Android SDK') 156 CheckDirExists(android_sdk_root, 'Android SDK')
157 157
158 os.environ['ANDROID_NDK_ROOT'] = android_ndk_root 158 os.environ['ANDROID_NDK_ROOT'] = android_ndk_root
159 os.environ['ANDROID_SDK_ROOT'] = android_sdk_root 159 os.environ['ANDROID_SDK_ROOT'] = android_sdk_root
160 160
161 if target_arch == 'arm': 161 toolchain_arch = 'x86-4.4.3'
162 toolchain_arch = 'arm-linux-androideabi-4.6'
163 else:
164 toolchain_arch = 'x86-4.4.3'
165 toolchain_dir = 'linux-x86' 162 toolchain_dir = 'linux-x86'
166 android_toolchain = os.path.join(android_ndk_root, 163 android_toolchain = os.path.join(android_ndk_root,
167 'toolchains', toolchain_arch, 164 'toolchains', toolchain_arch,
168 'prebuilt', toolchain_dir, 'bin') 165 'prebuilt', toolchain_dir, 'bin')
169 CheckDirExists(android_toolchain, 'Android toolchain') 166 CheckDirExists(android_toolchain, 'Android toolchain')
170 167
171 os.environ['ANDROID_TOOLCHAIN'] = android_toolchain 168 os.environ['ANDROID_TOOLCHAIN'] = android_toolchain
172 169
173 android_sdk_version = 15 170 android_sdk_version = 15
174 171
175 android_sdk_tools = os.path.join(android_sdk_root, 'tools') 172 android_sdk_tools = os.path.join(android_sdk_root, 'tools')
176 CheckDirExists(android_sdk_tools, 'Android SDK tools') 173 CheckDirExists(android_sdk_tools, 'Android SDK tools')
177 174
178 android_sdk_platform_tools = os.path.join(android_sdk_root, 'platform-tools') 175 android_sdk_platform_tools = os.path.join(android_sdk_root, 'platform-tools')
179 CheckDirExists(android_sdk_platform_tools, 'Android SDK platform tools') 176 CheckDirExists(android_sdk_platform_tools, 'Android SDK platform tools')
180 177
181 pathList = [old_path, 178 pathList = [old_path,
182 android_ndk_root, 179 android_ndk_root,
183 android_sdk_tools, 180 android_sdk_tools,
184 android_sdk_platform_tools, 181 android_sdk_platform_tools,
185 # for Ninja - maybe don't need? 182 # for Ninja - maybe don't need?
186 android_toolchain 183 android_toolchain
187 ] 184 ]
188 os.environ['PATH'] = ':'.join(pathList) 185 os.environ['PATH'] = ':'.join(pathList)
189 186
190 android_target_arch = target_arch
191 if target_arch == 'ia32':
192 android_target_arch = 'x86'
193
194 gypDefinesList = [ 187 gypDefinesList = [
195 'target_arch=%s' % target_arch, 188 'target_arch=ia32',
196 'android_target_arch=%s' % android_target_arch,
197 'OS=%s' % target_os, 189 'OS=%s' % target_os,
198 'android_build_type=0', 190 'android_build_type=0',
199 'host_os=%s' % host_os, 191 'host_os=%s' % host_os,
200 'linux_fpic=1', 192 'linux_fpic=1',
201 'release_optimize=s', 193 'release_optimize=s',
202 'linux_use_tcmalloc=0', 194 'linux_use_tcmalloc=0',
203 'android_sdk=%s', os.path.join(android_sdk_root, 'platforms', 195 'android_sdk=%s', os.path.join(android_sdk_root, 'platforms',
204 'android-%d' % android_sdk_version), 196 'android-%d' % android_sdk_version),
205 'android_sdk_tools=%s' % android_sdk_platform_tools 197 'android_sdk_tools=%s' % android_sdk_platform_tools
206 ] 198 ]
207 199
208 os.environ['GYP_DEFINES'] = ' '.join(gypDefinesList) 200 os.environ['GYP_DEFINES'] = ' '.join(gypDefinesList)
209 201
210 202
211 def Execute(args): 203 def Execute(args):
212 process = subprocess.Popen(args) 204 process = subprocess.Popen(args)
213 process.wait() 205 process.wait()
214 if process.returncode != 0: 206 if process.returncode != 0:
215 raise Exception(args[0] + " failed") 207 raise Exception(args[0] + " failed")
216 208
217 209
218 def GClientRunHooks(): 210 def GClientRunHooks():
219 Execute(['gclient', 'runhooks']) 211 Execute(['gclient', 'runhooks'])
220 212
221 213
222 def RunhooksIfNeeded(host_os, mode, target_arch, target_os): 214 def RunhooksIfNeeded(host_os, mode, arch, target_os):
223 if host_os != 'linux': 215 if host_os != 'linux':
224 return 216 return
225 build_root = utils.GetBuildRoot(host_os) 217 build_root = utils.GetBuildRoot(host_os)
226 build_cookie_path = os.path.join(build_root, 'lastHooksTargetOS.txt') 218 build_cookie_path = os.path.join(build_root, 'lastHooksTargetOS.txt')
227 219
228 old_target_os = None 220 old_target_os = None
229 old_target_arch = None
230 try: 221 try:
231 with open(build_cookie_path) as f: 222 with open(build_cookie_path) as f:
232 lines = f.readlines() 223 old_target_os = f.read(1024)
233 old_target_os = lines[0]
234 old_target_arch = lines[1]
235 except IOError as e: 224 except IOError as e:
236 pass 225 pass
237 if (target_os != old_target_os) or (target_arch != old_target_arch): 226 if target_os != old_target_os:
238 try: 227 try:
239 os.mkdir(build_root) 228 os.mkdir(build_root)
240 except OSError as e: 229 except OSError as e:
241 pass 230 pass
242 with open(build_cookie_path, 'w') as f: 231 with open(build_cookie_path, 'w') as f:
243 f.write(target_os + '\n') 232 f.write(target_os)
244 f.write(target_arch + '\n')
245 GClientRunHooks() 233 GClientRunHooks()
246 234
247 235
248 def CurrentDirectoryBaseName(): 236 def CurrentDirectoryBaseName():
249 """Returns the name of the current directory""" 237 """Returns the name of the current directory"""
250 return os.path.relpath(os.curdir, start=os.pardir) 238 return os.path.relpath(os.curdir, start=os.pardir)
251 239
252 240
253 def FilterEmptyXcodebuildSections(process): 241 def FilterEmptyXcodebuildSections(process):
254 """ 242 """
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 args += [target] 411 args += [target]
424 412
425 if target_os != HOST_OS: 413 if target_os != HOST_OS:
426 SetCrossCompilationEnvironment( 414 SetCrossCompilationEnvironment(
427 HOST_OS, target_os, arch, old_path) 415 HOST_OS, target_os, arch, old_path)
428 416
429 RunhooksIfNeeded(HOST_OS, mode, arch, target_os) 417 RunhooksIfNeeded(HOST_OS, mode, arch, target_os)
430 418
431 toolchainprefix = None 419 toolchainprefix = None
432 if target_os == 'android': 420 if target_os == 'android':
433 if arch == 'ia32': 421 toolchainprefix = ('%s/i686-linux-android'
434 toolchainprefix = ('%s/i686-linux-android' 422 % os.environ['ANDROID_TOOLCHAIN'])
435 % os.environ['ANDROID_TOOLCHAIN'])
436 if arch == 'arm':
437 toolchainprefix = ('%s/arm-linux-androideabi'
438 % os.environ['ANDROID_TOOLCHAIN'])
439 toolsOverride = SetTools(arch, toolchainprefix) 423 toolsOverride = SetTools(arch, toolchainprefix)
440 if toolsOverride: 424 if toolsOverride:
441 printToolOverrides = target_os != 'android' 425 printToolOverrides = target_os != 'android'
442 for k, v in toolsOverride.iteritems(): 426 for k, v in toolsOverride.iteritems():
443 args.append( k + "=" + v) 427 args.append( k + "=" + v)
444 if printToolOverrides: 428 if printToolOverrides:
445 print k + " = " + v 429 print k + " = " + v
446 if not os.path.isfile(toolsOverride['CC.target']): 430 if not os.path.isfile(toolsOverride['CC.target']):
447 if arch == 'arm': 431 if arch == 'arm':
448 print arm_cc_error 432 print arm_cc_error
(...skipping 16 matching lines...) Expand all
465 process.wait() 449 process.wait()
466 if process.returncode != 0: 450 if process.returncode != 0:
467 print "BUILD FAILED" 451 print "BUILD FAILED"
468 return 1 452 return 1
469 453
470 return 0 454 return 0
471 455
472 456
473 if __name__ == '__main__': 457 if __name__ == '__main__':
474 sys.exit(Main()) 458 sys.exit(Main())
OLDNEW
« no previous file with comments | « runtime/vm/assembler_arm.cc ('k') | tools/gyp/all.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698