Pārlūkot izejas kodu

add Common.mkdir_from_path and use it to generate neko output directory

Simon Krajewski 11 gadi atpakaļ
vecāks
revīzija
864c55ca39
4 mainītis faili ar 8 papildinājumiem un 8 dzēšanām
  1. 5 0
      common.ml
  2. 1 4
      gencs.ml
  3. 1 4
      genjava.ml
  4. 1 0
      genneko.ml

+ 5 - 0
common.ml

@@ -920,6 +920,11 @@ let rec mkdir_recursive base dir_list =
 				Unix.mkdir path 0o755;
 		mkdir_recursive (if (path = "") then "/" else path) remaining
 
+let mkdir_from_path path =
+	let parts = Str.split_delim (Str.regexp "[\\/]+") path in
+	let dir_list = List.rev (List.tl (List.rev parts)) in
+	mkdir_recursive "" dir_list
+
 let mem_size v =
 	Objsize.size_with_headers (Objsize.objsize v [] [])
 

+ 1 - 4
gencs.ml

@@ -2657,10 +2657,7 @@ let configure gen =
     mkdir (gen.gcon.file ^ "/src/Resources");
     Hashtbl.iter (fun name v ->
       let full_path = gen.gcon.file ^ "/src/Resources/" ^ name in
-      let parts = Str.split_delim (Str.regexp "[\\/]+") full_path in
-      let dir_list = List.rev (List.tl (List.rev parts)) in
-
-      Common.mkdir_recursive "" dir_list;
+      mkdir_from_path full_path;
 
       let f = open_out full_path in
       output_string f v;

+ 1 - 4
genjava.ml

@@ -2141,10 +2141,7 @@ let configure gen =
       res := { eexpr = TConst(TString name); etype = gen.gcon.basic.tstring; epos = Ast.null_pos } :: !res;
 
       let full_path = gen.gcon.file ^ "/src/" ^ name in
-      let parts = Str.split_delim (Str.regexp "[\\/]+") full_path in
-      let dir_list = List.rev (List.tl (List.rev parts)) in
-
-      Common.mkdir_recursive "" dir_list;
+      mkdir_from_path full_path;
 
       let f = open_out full_path in
       output_string f v;

+ 1 - 0
genneko.ml

@@ -848,6 +848,7 @@ let generate com =
 	let use_nekoc = Common.defined com Define.UseNekoc in
 	if not use_nekoc then begin
 		try
+			mkdir_from_path com.file;
 			let ch = IO.output_channel (open_out_bin com.file) in
 			Nbytecode.write ch (Ncompile.compile ctx.version e);
 			IO.close_out ch;