From: Jean Privat Date: Thu, 30 Oct 2014 00:36:49 +0000 (-0400) Subject: compiler: do not create empty .h file X-Git-Tag: v0.6.10~3^2~7 X-Git-Url: http://nitlanguage.org compiler: do not create empty .h file Signed-off-by: Jean Privat --- diff --git a/src/compiler/abstract_compiler.nit b/src/compiler/abstract_compiler.nit index c785dd6..ee80ae5 100644 --- a/src/compiler/abstract_compiler.nit +++ b/src/compiler/abstract_compiler.nit @@ -253,26 +253,7 @@ class MakefileToolchain for f in compiler.files do var i = 0 - var hfile: nullable OFStream = null var count = 0 - var cfilename = "{f.name}.0.h" - var cfilepath = "{compile_dir}/{cfilename}" - hfile = new OFStream.open(cfilepath) - hfile.write "#include \"{hfilename}\"\n" - for key in f.required_declarations do - if not compiler.provided_declarations.has_key(key) then - var node = compiler.requirers_of_declarations.get_or_null(key) - if node != null then - node.debug "No provided declaration for {key}" - else - print "No provided declaration for {key}" - end - abort - end - hfile.write compiler.provided_declarations[key] - hfile.write "\n" - end - hfile.close var file: nullable OFStream = null for vis in f.writers do if vis == compiler.header then continue @@ -282,8 +263,8 @@ class MakefileToolchain if file == null or count > 10000 then i += 1 if file != null then file.close - cfilename = "{f.name}.{i}.c" - cfilepath = "{compile_dir}/{cfilename}" + var cfilename = "{f.name}.{i}.c" + var cfilepath = "{compile_dir}/{cfilename}" self.toolcontext.info("new C source files to compile: {cfilepath}", 3) cfiles.add(cfilename) file = new OFStream.open(cfilepath) @@ -299,7 +280,28 @@ class MakefileToolchain file.write "\n" end end - if file != null then file.close + if file == null then continue + file.close + + var cfilename = "{f.name}.0.h" + var cfilepath = "{compile_dir}/{cfilename}" + var hfile: nullable OFStream = null + hfile = new OFStream.open(cfilepath) + hfile.write "#include \"{hfilename}\"\n" + for key in f.required_declarations do + if not compiler.provided_declarations.has_key(key) then + var node = compiler.requirers_of_declarations.get_or_null(key) + if node != null then + node.debug "No provided declaration for {key}" + else + print "No provided declaration for {key}" + end + abort + end + hfile.write compiler.provided_declarations[key] + hfile.write "\n" + end + hfile.close end self.toolcontext.info("Total C source files to compile: {cfiles.length}", 2)