Merge pull request #1615 from player-03/eval_tools

Add the `-eval` flag to run Lime tools using Eval.
This commit is contained in:
player-03
2023-04-06 19:34:24 -04:00
committed by GitHub
3 changed files with 28 additions and 33 deletions

BIN
run.n vendored

Binary file not shown.

View File

@@ -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"
#if lime
"-lib", "lime",
"-lib", "hxp",
#end
"-cp", tempDirectory,
"-cp", Path.combine(Haxelib.getPath(new Haxelib("hxp")), "src")
];
#else
var args = [
name,
"--interp",
"-main",
"lime.tools.HXProject",
"-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)

View File

@@ -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();