import typing
import auto_super_init
import frontend
-import common_ffi
import platform
import c_tools
var m2m = toolcontext.modelbuilder.mmodule2nmodule
for m in mainmodule.in_importation.greaters do if m2m.keys.has(m) then
var amod = m2m[m]
- linker_options.add(amod.c_linker_options)
+ var libs = amod.collect_linker_libs
+ if libs != null then linker_options.add_all(libs)
end
if not toolcontext.opt_no_stacktrace.value then linker_options.add("-lunwind")
# Write nitni results to file
fun finalize_nitni(v: AbstractCompilerVisitor) do end
+
+ # Give requided addinional system libraries (as given to LD_LIBS)
+ # Note: can return null instead of an empty set
+ fun collect_linker_libs: nullable Set[String] do return null
end
end
end
+ 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
+ end
+
var compiled_callbacks: Array[NitniCallback] = new Array[NitniCallback]
# Returns true if callbacks has yet to be generated and register it as being generated