diff --git a/run.n b/run.n index 4e278d9823..2544816fbf 100644 Binary files a/run.n and b/run.n differ diff --git a/src/lime/tools/HXProject.hx b/src/lime/tools/HXProject.hx index 78eab02131..a891752af6 100644 --- a/src/lime/tools/HXProject.hx +++ b/src/lime/tools/HXProject.hx @@ -376,38 +376,18 @@ class HXProject extends Script var tempDirectory = System.getTemporaryDirectory(); var classFile = Path.combine(tempDirectory, name + ".hx"); - var nekoOutput = Path.combine(tempDirectory, name + ".n"); System.copyFile(path, classFile); - #if lime - var args = [ - name, - "-main", - "lime.tools.HXProject", - "-cp", - tempDirectory, - "-neko", - nekoOutput, - "-cp", - Path.combine(Haxelib.getPath(new Haxelib("hxp")), "src"), - "-lib", - "lime", - "-lib", - "hxp" - ]; - #else var args = [ name, - "--interp", - "-main", - "lime.tools.HXProject", - "-cp", - tempDirectory, - "-cp", - Path.combine(Haxelib.getPath(new Haxelib("hxp")), "src") + #if lime + "-lib", "lime", + "-lib", "hxp", + #end + "-cp", tempDirectory, + "-cp", Path.combine(Haxelib.getPath(new Haxelib("hxp")), "src") ]; - #end var input = File.read(classFile, false); var tag = "@:compiler("; @@ -430,10 +410,6 @@ class HXProject extends Script var cacheDryRun = System.dryRun; System.dryRun = false; - #if lime - System.runCommand("", "haxe", args); - #end - var inputFile = Path.combine(tempDirectory, "input.dat"); var outputFile = Path.combine(tempDirectory, "output.dat"); @@ -457,10 +433,12 @@ class HXProject extends Script try { - #if lime - System.runCommand("", "neko", [FileSystem.fullPath(nekoOutput), inputFile, outputFile]); + #if (lime && !eval) + var nekoOutput = FileSystem.fullPath(Path.combine(tempDirectory, name + ".n")); + System.runCommand("", "haxe", args.concat(["--main", "lime.tools.HXProject", "-neko", nekoOutput])); + System.runCommand("", "neko", [nekoOutput, inputFile, outputFile]); #else - System.runCommand("", "haxe", args.concat(["--", inputFile, outputFile])); + System.runCommand("", "haxe", args.concat(["--run", "lime.tools.HXProject", inputFile, outputFile])); #end } catch (e:Dynamic) diff --git a/tools/RunScript.hx b/tools/RunScript.hx index 5b4663cf07..0f4243a155 100644 --- a/tools/RunScript.hx +++ b/tools/RunScript.hx @@ -199,6 +199,23 @@ class RunScript } } + if (args.indexOf("-eval") >= 0) + { + args.remove("-eval"); + Log.info("Experimental: executing `lime " + args.slice(0, args.length - 1).join(" ") + + "` using Eval (https://haxe.org/blog/eval/)"); + + var args = [ + "-D", "lime", + "-cp", "tools", + "-cp", "tools/platforms", + "-cp", "src", + "-lib", "format", + "-lib", "hxp", + "--run", "CommandLineTools"].concat(args); + Sys.exit(runCommand("", "haxe", args)); + } + if (!FileSystem.exists("tools/tools.n") || args.indexOf("-rebuild") > -1) { rebuildTools();