@@ -21,8 +21,8 @@ def GlobRecursive(path, pattern, **kwargs):
2121class CppScriptException (Exception ):
2222 pass
2323
24- def filename_to_gen_filename (name , src ):
25- return os .path .join (src , '.gen' , os .path .relpath (name .replace ('.hpp' , '.gen.cpp' ), src ))
24+ def filename_to_gen_filename (name , env ):
25+ return os .path .join (env [ 'gen_dir' ] , os .path .relpath (name .replace ('.hpp' , '.gen.cpp' ), env [ ' src' ] ))
2626
2727
2828def collapse_list (list , key , action ):
@@ -132,7 +132,7 @@ def is_virtual_method(cursor):
132132
133133# Builder
134134def generate_header_emitter (target , source , env ):
135- return [env .File (env ['gen_header' ])] + [env .File (filename_to_gen_filename (str (i ), env [ 'src' ] )) for i in source ], source
135+ return [env .File (env ['gen_header' ])] + [env .File (filename_to_gen_filename (str (i ), env )) for i in source ], source
136136
137137
138138def generate_header (target , source , env ):
@@ -154,8 +154,8 @@ def generate_header(target, source, env):
154154 except AttributeError :
155155 new_defs = {str (s ) : parse_and_write_header (index , * get_file_scons (s ), env ) for s in source }
156156
157- write_register_header (new_defs , env [ 'src' ], str ( target [ 0 ]) )
158- write_property_header (new_defs , os . path . join ( env [ 'src' ], 'properties.gen.h' ) )
157+ write_register_header (new_defs , env )
158+ write_property_header (new_defs , env )
159159
160160 with open (env ['defs_file' ], 'w' ) as file :
161161 json .dump (new_defs , file , indent = 2 , default = lambda x : x if not isinstance (x , set ) else list (x ))
@@ -176,8 +176,8 @@ def generate_header_cmake(target, source, env):
176176 cached_defs = load_defs_json (env ['defs_file' ])
177177 new_defs = {str (s ) : parse_and_write_header (index , * get_file_cmake (s ), env ) for s in source }
178178
179- write_register_header (new_defs , env [ 'src' ], str ( target [ 0 ]) )
180- write_property_header (new_defs , os . path . join ( env [ 'src' ], 'properties.gen.h' ) )
179+ write_register_header (new_defs , env )
180+ write_property_header (new_defs , env )
181181
182182 with open (env ['defs_file' ], 'w' ) as file :
183183 json .dump (new_defs , file , indent = 2 , default = lambda x : x if not isinstance (x , set ) else list (x ))
@@ -454,11 +454,12 @@ def apply_macros(item, macros):
454454
455455def parse_and_write_header (index , filename , filecontent , env ):
456456 defs = parse_header (index , filename , filecontent , env ['src' ], env ['auto_methods' ])
457- write_header (filename , defs , env [ 'src' ] )
457+ write_header (filename , defs , env )
458458 return defs
459459
460460
461- def write_header (file , defs , src ):
461+ def write_header (file , defs , env ):
462+ src = env ['src' ]
462463 header_defs = []
463464 for class_name_full , content in defs .items ():
464465 class_name = content ['class_name' ]
@@ -556,7 +557,8 @@ def write_header(file, defs, src):
556557 ([property_set_get_defs ] if property_set_get_defs != '' else []) + \
557558 ([outside_bind ] if outside_bind != '' else [])
558559
559- file_name = filename_to_gen_filename (file , src )
560+ file_name = filename_to_gen_filename (file , env )
561+ print (file_name )
560562 content = ''
561563 if len (defs ) != 0 :
562564 header_include = '#include <cppscript_bindings.h>\n \n #include <{}>\n \n using namespace godot;\n \n ' .format (os .path .relpath (file , src ).replace ('\\ ' , '/' ))
@@ -567,7 +569,9 @@ def write_header(file, defs, src):
567569 fileopen .write (content )
568570
569571
570- def write_register_header (defs , src , target ):
572+ def write_register_header (defs , env ):
573+ src = env ['src' ]
574+ target = env ['gen_header' ]
571575 scripts_header = ''
572576 classes_register_levels = {name [12 :] : [] for name in INIT_LEVELS }
573577
@@ -604,7 +608,8 @@ def write_register_header(defs, src, target):
604608 file .write (scripts_header )
605609
606610
607- def write_property_header (new_defs , filepath ):
611+ def write_property_header (new_defs , env ):
612+ filepath = os .path .join (env ['src' ], 'properties.gen.h' )
608613 body = ''
609614 for _ , file in new_defs .items ():
610615 for class_name_full , content in file .items ():
0 commit comments