Can terminate the program if the compiler is not found
# Compile a unit file and return the compiler return code
#
# Can terminate the program if the compiler is not found
private fun compile_single_docunits(dus: Array[DocUnit]): Int
do
# Generate all unitfiles
var files = new Array[String]
for du in dus do
files.add generate_single_docunit(du)
end
if files.is_empty then return 0
toolcontext.info("Compile {dus.length} single(s) doc-unit(s) at once", 1)
# Mass compile them
var nitc = toolcontext.find_nitc
var opts = new Array[String]
if mmodule != null then
# FIXME playing this way with the include dir is not safe nor robust
opts.add "-I {mmodule.filepath.dirname}"
end
var cmd = "{nitc} --ignore-visibility --no-color -q '{files.join("' '")}' {opts.join(" ")} > '{prefix}.out1' 2>&1 </dev/null --dir {prefix.dirname}"
var res = toolcontext.safe_exec(cmd)
if res != 0 then
# Mass compilation failure
return res
end
# Rename each file into it expected binary name
for du in dus do
var f = du.test_file.as(not null)
toolcontext.safe_exec("mv '{f.strip_extension(".nit")}' '{f}.bin'")
du.is_compiled = true
end
return res
end
src/testing/testing_doc.nit:308,2--345,4