abstact_compiler: add `ModelBuilder::compile_dir`
authorJean Privat <jean@pryen.org>
Fri, 21 Feb 2014 16:23:53 +0000 (11:23 -0500)
committerJean Privat <jean@pryen.org>
Fri, 21 Feb 2014 16:23:53 +0000 (11:23 -0500)
So each part do not have to retrieve it from opt_compile_dir

Signed-off-by: Jean Privat <jean@pryen.org>

src/abstract_compiler.nit

index 6a4923b..b02369f 100644 (file)
@@ -107,8 +107,14 @@ redef class ModelBuilder
                        cc_paths.append(path_env.split_with(':'))
                end
 
+               var compile_dir = toolcontext.opt_compile_dir.value
+               if compile_dir == null then compile_dir = ".nit_compile"
+               self.compile_dir = compile_dir
        end
 
+       # The compilation directory
+       var compile_dir: String
+
        protected fun write_and_make(compiler: AbstractCompiler)
        do
                var mainmodule = compiler.mainmodule
@@ -119,9 +125,6 @@ redef class ModelBuilder
                var time0 = get_time
                self.toolcontext.info("*** WRITING C ***", 1)
 
-               var compile_dir = toolcontext.opt_compile_dir.value
-               if compile_dir == null then compile_dir = ".nit_compile"
-
                compile_dir.mkdir
 
                if self.toolcontext.opt_stacktrace.value then compiler.build_c_to_nit_bindings
@@ -349,8 +352,7 @@ abstract class AbstractCompiler
        # Binds the generated C function names to Nit function names
        fun build_c_to_nit_bindings
        do
-               var compile_dir = modelbuilder.toolcontext.opt_compile_dir.value
-               if compile_dir == null then compile_dir = ".nit_compile"
+               var compile_dir = modelbuilder.compile_dir
 
                var stream = new OFStream.open("{compile_dir}/C_fun_names")
                stream.write("%\{\n#include \"c_functions_hash.h\"\n%\}\n")