- var native_name = location.file.strip_extension(".nit")
- native_name += ("_nit.h")
- if native_name.file_exists then v.add_decl("#include <{native_name.basename("")}>")
+
+ if is_extern_hybrid then
+ # adds reference to frontier files
+ # if module uses the native interface
+ var nitni_header_name = "{name}._nitni.h"
+ v.add_decl("#include \"{nitni_header_name}\"")
+ var nitni_body_name = "{name}._nitni.c"
+ cprogram.files.add( "{cprogram.compdir}/{nitni_body_name}" )
+
+ # add reference to extern implementation
+ var native_name = location.file.filename.strip_extension(".nit")
+ var native_body = native_name + ".nit.c"
+ if native_body.file_exists then
+ cprogram.files.add(native_body)
+ else # try old style filename
+ native_body = native_name + "_nit.c"
+ if native_body.file_exists then cprogram.files.add(native_body)
+ end
+ if uses_ffi then
+ var ffi_header_name = "{cname}._ffi.h"
+ v.add_decl("#include \"{ffi_header_name}\"")
+ var ffi_body_name = "{cname}._ffi.c"
+ cprogram.files.add( "{cprogram.compdir}/{ffi_body_name}" )
+ end
+ end
+