mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-04 05:33:50 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python
 | 
						|
# Copyright (C) 2016 the V8 project authors. All rights reserved.
 | 
						|
# This code is governed by the BSD license found in the LICENSE file.
 | 
						|
 | 
						|
import os, shutil, subprocess, sys
 | 
						|
 | 
						|
OUT_DIR = os.environ.get('OUT_DIR') or 'test'
 | 
						|
SRC_DIR = os.environ.get('SRC_DIR') or 'src'
 | 
						|
 | 
						|
def shell(*args):
 | 
						|
    sp = subprocess.Popen(list(args), stdout=subprocess.PIPE)
 | 
						|
    cmd_str = ' '.join(args)
 | 
						|
 | 
						|
    print '> ' + cmd_str
 | 
						|
 | 
						|
    for line in iter(sp.stdout.readline, ''):
 | 
						|
        sys.stdout.write(line)
 | 
						|
 | 
						|
    sp.communicate()
 | 
						|
 | 
						|
    if sp.returncode == 1:
 | 
						|
        raise Exception('Command failed: ' + cmd_str)
 | 
						|
 | 
						|
targets = dict()
 | 
						|
def target(*deps):
 | 
						|
    def other(orig):
 | 
						|
        def wrapped():
 | 
						|
            print 'Running target: ' + orig.__name__
 | 
						|
 | 
						|
            for dep in deps:
 | 
						|
                targets[dep]()
 | 
						|
            return orig()
 | 
						|
        wrapped.__name__ = orig.__name__
 | 
						|
        targets[orig.__name__] = wrapped
 | 
						|
        return wrapped
 | 
						|
    return other
 | 
						|
 | 
						|
@target()
 | 
						|
def build():
 | 
						|
    shell(sys.executable, 'tools/generation/generator.py',
 | 
						|
          'create',
 | 
						|
          '--out', OUT_DIR,
 | 
						|
          SRC_DIR)
 | 
						|
 | 
						|
@target()
 | 
						|
def clean():
 | 
						|
    shell(sys.executable, 'tools/generation/generator.py', 'clean', OUT_DIR)
 | 
						|
 | 
						|
if len(sys.argv) == 1:
 | 
						|
    targets['build']()
 | 
						|
 | 
						|
for target in sys.argv[1:]:
 | 
						|
    if not target in targets:
 | 
						|
        sys.stderr.write('No target named: "' + target + '".\n' +
 | 
						|
            'Available targets: ' + ', '.join(list(targets)) + '\n')
 | 
						|
        sys.exit(1)
 | 
						|
    targets[target]()
 |