Merge pull request #1787 from player-03/CFFI_haxelib_libpath

Fix error when locating Lime's bundled NDLLs.
This commit is contained in:
player-03
2024-05-27 15:30:19 -04:00
committed by GitHub

View File

@@ -155,15 +155,15 @@ class CFFI
if (result == null)
{
var haxelib = __findHaxelib("lime");
var ndllFolder = __findNDLLFolder();
if (haxelib != "")
if (ndllFolder != "")
{
result = __tryLoad(haxelib + "/ndll/" + __sysName() + "/" + library, library, method, args);
result = __tryLoad(ndllFolder + __sysName() + "/" + library, library, method, args);
if (result == null)
{
result = __tryLoad(haxelib + "/ndll/" + __sysName() + "64/" + library, library, method, args);
result = __tryLoad(ndllFolder + __sysName() + "64/" + library, library, method, args);
}
}
}
@@ -204,39 +204,27 @@ class CFFI
#end
}
private static function __findHaxelib(library:String):String
private static function __findNDLLFolder():String
{
#if (sys && !macro && !html5)
var process = new Process("haxelib", ["path", "lime"]);
try
{
var proc = new Process("haxelib", ["path", library]);
if (proc != null)
while (true)
{
var stream = proc.stdout;
var line = StringTools.trim(process.stdout.readLine());
try
if (StringTools.startsWith(line, "-L "))
{
while (true)
{
var s = stream.readLine();
if (s.substr(0, 1) != "-")
{
stream.close();
proc.close();
__loaderTrace("Found haxelib " + s);
return s;
}
}
process.close();
return Path.addTrailingSlash(line.substr(3));
}
catch (e:Dynamic) {}
stream.close();
proc.close();
}
}
catch (e:Dynamic) {}
process.close();
#end
return "";
@@ -308,7 +296,7 @@ class CFFI
}
else if (!lazy)
{
var ndllFolder = __findHaxelib("lime") + "/ndll/" + __sysName();
var ndllFolder = __findNDLLFolder() + __sysName();
throw "Could not find lime.ndll. This file is provided with Lime's Haxelib releases, but not via Git. "
+ "Please copy it from Lime's latest Haxelib release into either "
+ ndllFolder + " or " + ndllFolder + "64, as appropriate for your system. "