mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-26 11:14:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			127 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| Import('env')
 | |
| 
 | |
| env.tool_sources=[]
 | |
| env.add_source_files(env.tool_sources,"*.cpp")
 | |
| 
 | |
| Export('env')
 | |
| 
 | |
| 
 | |
| def make_translations_header(target,source,env):
 | |
| 
 | |
| 
 | |
| 	dst = target[0].srcnode().abspath
 | |
| 
 | |
| 	g = open(dst,"wb")
 | |
| 
 | |
| 	
 | |
| 	""""
 | |
| 	"""
 | |
| 
 | |
| 	g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
 | |
| 	g.write("#ifndef _EDITOR_TRANSLATIONS_H\n")
 | |
| 	g.write("#define _EDITOR_TRANSLATIONS_H\n")
 | |
| 
 | |
| 	import zlib
 | |
| 	import os.path
 | |
| 
 | |
| 	paths = [node.srcnode().abspath for node in source]
 | |
| 	sorted_paths = sorted(paths, key=lambda path: os.path.splitext(os.path.basename(path))[0])
 | |
| 
 | |
| 	xl_names=[]
 | |
| 	for i in range(len(sorted_paths)):
 | |
| 		print("Appending translation: "+sorted_paths[i])
 | |
| 		f = open(sorted_paths[i],"rb")
 | |
| 		buf = f.read()
 | |
| 		decomp_size = len(buf)
 | |
| 		buf = zlib.compress(buf)
 | |
| 		name =  os.path.splitext(os.path.basename(sorted_paths[i]))[0]
 | |
| 
 | |
| 		#g.write("static const int _translation_"+name+"_compressed_size="+str(len(buf))+";\n")
 | |
| 		#g.write("static const int _translation_"+name+"_uncompressed_size="+str(decomp_size)+";\n")
 | |
| 		g.write("static const unsigned char _translation_"+name+"_compressed[]={\n")
 | |
| 		for i in range(len(buf)):
 | |
| 			g.write(str(ord(buf[i]))+",\n")
 | |
| 
 | |
| 		g.write("};\n")
 | |
| 
 | |
| 		xl_names.append([name,len(buf),str(decomp_size)])
 | |
| 
 | |
| 	g.write("struct EditorTranslationList {\n")
 | |
| 	g.write("\tconst char* lang;\n");
 | |
| 	g.write("\tint comp_size;\n");
 | |
| 	g.write("\tint uncomp_size;\n");
 | |
| 	g.write("\tconst unsigned char* data;\n");
 | |
| 	g.write("};\n\n");
 | |
| 	g.write("static EditorTranslationList _editor_translations[]={\n")
 | |
| 	for x in xl_names:
 | |
| 		g.write("\t{ \""+x[0]+"\", "+str(x[1])+", "+str(x[2])+",_translation_"+x[0]+"_compressed},\n")
 | |
| 	g.write("\t{NULL,0,0,NULL}\n")
 | |
| 	g.write("};\n")
 | |
| 
 | |
| 	g.write("#endif")
 | |
| 
 | |
| 
 | |
| def make_fonts_header(target,source,env):
 | |
| 
 | |
| 
 | |
| 	dst = target[0].srcnode().abspath
 | |
| 
 | |
| 	g = open(dst,"wb")
 | |
| 
 | |
| 	
 | |
| 	""""
 | |
| 	"""
 | |
| 
 | |
| 	g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
 | |
| 	g.write("#ifndef _EDITOR_FONTS_H\n")
 | |
| 	g.write("#define _EDITOR_FONTS_H\n")
 | |
| 
 | |
| 	#saving uncompressed, since freetype will reference from memory pointer
 | |
| 	xl_names=[]
 | |
| 	for i in range(len(source)):
 | |
| 		print("Appending font: "+source[i].srcnode().abspath)
 | |
| 		f = open(source[i].srcnode().abspath,"rb")
 | |
| 		buf = f.read()
 | |
| 		import os.path
 | |
| 	
 | |
| 		name =  os.path.splitext(os.path.basename(source[i].srcnode().abspath))[0]
 | |
| 
 | |
| 		g.write("static const int _font_"+name+"_size="+str(len(buf))+";\n")
 | |
| 		g.write("static const unsigned char _font_"+name+"[]={\n")
 | |
| 		for i in range(len(buf)):
 | |
| 			g.write(str(ord(buf[i]))+",\n")
 | |
| 
 | |
| 		g.write("};\n")
 | |
| 	
 | |
| 	g.write("#endif")
 | |
| 	
 | |
| 	
 | |
| if (env["tools"]!="no"):
 | |
| 
 | |
| 	import glob
 | |
| 
 | |
| 	dir = env.Dir('.').abspath
 | |
| 	tlist = glob.glob(dir + "/translations/*.po")
 | |
| 
 | |
| 	print("translations: ",tlist)
 | |
| 	env.Depends('#tools/editor/translations.h',tlist)
 | |
| 	env.Command('#tools/editor/translations.h',tlist,make_translations_header)
 | |
| 
 | |
| 	flist = glob.glob(dir + "/editor_fonts/*.ttf")
 | |
| 	flist.append( glob.glob(dir + "/editor_fonts/*.otf") )
 | |
| 
 | |
| 	print("fonts: ",flist)
 | |
| 	env.Depends('#tools/editor/builtin_fonts.h',flist)
 | |
| 	env.Command('#tools/editor/builtin_fonts.h',flist,make_fonts_header)
 | |
| 
 | |
| 	SConscript('editor/SCsub');
 | |
| 	#SConscript('scintilla/SCsub');
 | |
| 	SConscript('collada/SCsub');
 | |
| 	SConscript('docdump/SCsub');
 | |
| 	#SConscript('freetype/SCsub');
 | |
| 	SConscript('doc/SCsub')
 | |
| 	SConscript('pck/SCsub')
 | |
| 
 | |
| 	lib = env.Library("tool",env.tool_sources)
 | |
| 
 | |
| 	env.Prepend(LIBS=[lib])
 | 
