X-Git-Url: http://nitlanguage.org diff --git a/src/compiler/compiler_ffi.nit b/src/compiler/compiler_ffi.nit index ca22005..42423f9 100644 --- a/src/compiler/compiler_ffi.nit +++ b/src/compiler/compiler_ffi.nit @@ -43,16 +43,17 @@ redef class MModule ensure_compile_nitni_base(v) - nitni_ccu.header_c_types.add("#include \"{name}._ffi.h\"\n") + nitni_ccu.header_c_types.add("#include \"{c_name}._ffi.h\"\n") nitni_ccu.header_c_types.add """ extern void nitni_global_ref_incr(void*); extern void nitni_global_ref_decr(void*); """ + var cflags = self.cflags[""].join(" ") nitni_ccu.write_as_nitni(self, v.compiler.modelbuilder.compile_dir) for file in nitni_ccu.files do - var f = new ExternCFile(file, c_compiler_options) + var f = new ExternCFile(file, cflags) f.pkgconfigs.add_all pkgconfigs v.compiler.extern_bodies.add(f) end @@ -76,11 +77,8 @@ extern void nitni_global_ref_decr(void*); redef fun collect_linker_libs do - var s = c_linker_options - if s.is_empty then return null - var res = new ArraySet[String] - res.add s - return res + if not self.ldflags.keys.has("") then return null + return self.ldflags[""] end private var compiled_callbacks = new Array[NitniCallback] @@ -255,11 +253,11 @@ end redef class CCompilationUnit fun write_as_nitni(mmodule: MModule, compdir: String) do - var base_name = "{mmodule.name}._nitni" + var base_name = "{mmodule.c_name}._nitni" var h_file = "{base_name}.h" write_header_to_file( mmodule, "{compdir}/{h_file}", new Array[String], - "{mmodule.cname.to_s.to_upper}_NITG_NITNI_H") + "{mmodule.c_name.to_s.to_upper}_NITG_NITNI_H") var c_file = "{base_name}.c" write_body_to_file( mmodule, "{compdir}/{c_file}", ["\"{h_file}\""] ) @@ -390,7 +388,7 @@ redef class MExplicitCall var recv_var = null if mproperty.is_init then var recv_mtype = recv_mtype - recv_var = nitni_visitor.init_instance(recv_mtype) + recv_var = nitni_visitor.init_instance_or_extern(recv_mtype) nitni_visitor.add("{mtype.ctype} recv /* var self: {mtype} */;") nitni_visitor.add("recv = {recv_var};") else