Browse Source

Merge branch 'sourcemaps' of https://github.com/zz85/three.js into sourcemaps

OpenShift guest 12 years ago
parent
commit
e1784ef3e5
1 changed files with 42 additions and 29 deletions
  1. 42 29
      utils/build.py

+ 42 - 29
utils/build.py

@@ -10,50 +10,63 @@ import tempfile
 
 
 def main(argv=None):
 def main(argv=None):
 
 
-  parser = argparse.ArgumentParser()
-  parser.add_argument('--include', action='append', required=True)
-  parser.add_argument('--externs', action='append', default=['externs/common.js'])
-  parser.add_argument('--minify', action='store_true', default=False)
-  parser.add_argument('--output', default='../build/three.js')
+	parser = argparse.ArgumentParser()
+	parser.add_argument('--include', action='append', required=True)
+	parser.add_argument('--externs', action='append', default=['externs/common.js'])
+	parser.add_argument('--minify', action='store_true', default=False)
+	parser.add_argument('--output', default='../build/three.js')
+	parser.add_argument('--sourcemaps', action='store_true', default=False)
 
 
-  args = parser.parse_args()
+	args = parser.parse_args()
 
 
-  output = args.output
+	output = args.output
 
 
-  # merge
+	# merge
 
 
-  print(' * Building ' + output)
+	print(' * Building ' + output)
 
 
-  fd, path = tempfile.mkstemp()
-  tmp = open(path, 'w')
+	# enable sourcemaps support
 
 
-  for include in args.include:
-    with open('includes/' + include + '.json','r') as f: files = json.load(f)
-    for filename in files:
-      with open(filename, 'r') as f: tmp.write(f.read())
+	if args.sourcemaps:
+		sourcemap = output + '.map'
+		sourcemapping = '\n//@ sourceMappingURL=' + sourcemap
+		sourcemapargs = ' --create_source_map ' + sourcemap + ' --source_map_format=V3'
+	else:
+		sourcemap = sourcemapping = sourcemapargs = ''
 
 
-  tmp.close()
+	fd, path = tempfile.mkstemp()
+	tmp = open(path, 'w')
+	sources = []
 
 
-  # save
+	for include in args.include:
+		with open('includes/' + include + '.json','r') as f: files = json.load(f)
+		for filename in files:
+			sources.append(filename)
+			with open(filename, 'r') as f: tmp.write(f.read())
 
 
-  if args.minify is False:
+	tmp.close()
 
 
-      shutil.copy(path, output)
-      os.chmod(output, 0o664); # temp files would usually get 0600
+	# save
 
 
-  else:
+	if args.minify is False:
+			shutil.copy(path, output)
+			os.chmod(output, 0o664); # temp files would usually get 0600
 
 
-    externs = ' --externs '.join(args.externs)
-    os.system('java -jar compiler/compiler.jar --warning_level=VERBOSE --jscomp_off=globalThis --externs %s --jscomp_off=checkTypes --language_in=ECMASCRIPT5_STRICT --js %s --js_output_file %s' % (externs, path, output))
+	else:
 
 
-    # header
+		externs = ' --externs '.join(args.externs)
+		source = ' '.join(sources)
+		cmd = 'java -jar compiler/compiler.jar --warning_level=VERBOSE --jscomp_off=globalThis --externs %s --jscomp_off=checkTypes --language_in=ECMASCRIPT5_STRICT --js %s --js_output_file %s %s' % (externs, source, output, sourcemapargs)
+		os.system(cmd)
 
 
-    with open(output,'r') as f: text = f.read()
-    with open(output,'w') as f: f.write('// three.js - http://github.com/mrdoob/three.js\n' + text)
+		# header
 
 
-  os.close(fd)
-  os.remove(path)
+		with open(output,'r') as f: text = f.read()
+		with open(output,'w') as f: f.write('// three.js - http://github.com/mrdoob/three.js\n' + text + sourcemapping)
+
+	os.close(fd)
+	os.remove(path)
 
 
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
-  main()
+	main()