Merge pull request #1787 from player-03/CFFI_haxelib_libpath
Fix error when locating Lime's bundled NDLLs.
This commit is contained in:
@@ -155,15 +155,15 @@ class CFFI
|
|||||||
|
|
||||||
if (result == null)
|
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)
|
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
|
#end
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function __findHaxelib(library:String):String
|
private static function __findNDLLFolder():String
|
||||||
{
|
{
|
||||||
#if (sys && !macro && !html5)
|
#if (sys && !macro && !html5)
|
||||||
|
var process = new Process("haxelib", ["path", "lime"]);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var proc = new Process("haxelib", ["path", library]);
|
while (true)
|
||||||
|
|
||||||
if (proc != null)
|
|
||||||
{
|
{
|
||||||
var stream = proc.stdout;
|
var line = StringTools.trim(process.stdout.readLine());
|
||||||
|
|
||||||
try
|
if (StringTools.startsWith(line, "-L "))
|
||||||
{
|
{
|
||||||
while (true)
|
process.close();
|
||||||
{
|
return Path.addTrailingSlash(line.substr(3));
|
||||||
var s = stream.readLine();
|
|
||||||
|
|
||||||
if (s.substr(0, 1) != "-")
|
|
||||||
{
|
|
||||||
stream.close();
|
|
||||||
proc.close();
|
|
||||||
__loaderTrace("Found haxelib " + s);
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (e:Dynamic) {}
|
|
||||||
|
|
||||||
stream.close();
|
|
||||||
proc.close();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e:Dynamic) {}
|
catch (e:Dynamic) {}
|
||||||
|
|
||||||
|
process.close();
|
||||||
#end
|
#end
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
@@ -308,7 +296,7 @@ class CFFI
|
|||||||
}
|
}
|
||||||
else if (!lazy)
|
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. "
|
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 "
|
+ "Please copy it from Lime's latest Haxelib release into either "
|
||||||
+ ndllFolder + " or " + ndllFolder + "64, as appropriate for your system. "
|
+ ndllFolder + " or " + ndllFolder + "64, as appropriate for your system. "
|
||||||
|
|||||||
Reference in New Issue
Block a user