Import('env')


def make_doc_header(target,source,env):

	src = source[0].srcnode().abspath
	dst = target[0].srcnode().abspath
	f = open(src,"rb")
	g = open(dst,"wb")
	buf = f.read()
	decomp_size = len(buf)
	import zlib
	buf = zlib.compress(buf)


	g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
	g.write("#ifndef _DOC_DATA_RAW_H\n")
	g.write("#define _DOC_DATA_RAW_H\n")
	g.write("static const int _doc_data_compressed_size="+str(len(buf))+";\n")
	g.write("static const int _doc_data_uncompressed_size="+str(decomp_size)+";\n")
	g.write("static const unsigned char _doc_data_compressed[]={\n")
	for i in range(len(buf)):
		g.write(str(ord(buf[i]))+",\n")
	g.write("};\n")
	g.write("#endif")





	

if (env["tools"]=="yes"):

	reg_exporters_inc='#include "register_exporters.h"\n'
	reg_exporters='void register_exporters() {\n'
	for e in env.platform_exporters:
		env.tool_sources.append("#platform/"+e+"/export/export.cpp")
		reg_exporters+='\tregister_'+e+'_exporter();\n'
		reg_exporters_inc+='#include "platform/'+e+'/export/export.h"\n'
	reg_exporters+='}\n'
	f = open("register_exporters.cpp","wb")
	f.write(reg_exporters_inc)
	f.write(reg_exporters)
	f.close()
	
	env.Depends("#tools/editor/doc_data_compressed.h","#doc/base/classes.xml")
	env.Command("#tools/editor/doc_data_compressed.h","#doc/base/classes.xml",make_doc_header)

	#make_doc_header(env.File("#tools/editor/doc_data_raw.h").srcnode().abspath,env.File("#doc/base/classes.xml").srcnode().abspath,env)
	
	env.add_source_files(env.tool_sources,"*.cpp")
	
	Export('env')
	SConscript('icons/SCsub');	
	SConscript('plugins/SCsub');
	SConscript('fileserver/SCsub');
	SConscript('io_plugins/SCsub');

