diff --git a/lime/project/HXProject.hx b/lime/project/HXProject.hx index 4d7d5134c..9dd47235b 100644 --- a/lime/project/HXProject.hx +++ b/lime/project/HXProject.hx @@ -1114,15 +1114,25 @@ class HXProject { for (haxelib in haxelibs) { var name = haxelib.name; + var version = HaxelibHelper.getVersion (haxelib); - if (haxelib.version != "") { + if (haxelib.version != null) { - name += ":" + haxelib.version; + name += ":" + version; } #if lime + // TODO: Need to be able to handle this without 'haxelib path' + + if (version == HaxelibHelper.getVersion (new Haxelib (haxelib.name))) { + + // Fix case where using dev directory newer than other versions + name = haxelib.name; + + } + if (HaxelibHelper.pathOverrides.exists (name)) { var param = "-cp " + HaxelibHelper.pathOverrides.get (name); diff --git a/lime/project/ProjectXMLParser.hx b/lime/project/ProjectXMLParser.hx index 752e17b1d..9d4717e5a 100644 --- a/lime/project/ProjectXMLParser.hx +++ b/lime/project/ProjectXMLParser.hx @@ -1318,15 +1318,15 @@ class ProjectXMLParser extends HXProject { } - if (version != "" && defines.exists (name) && defines.get (name) != version) { + var haxelib = new Haxelib (name, version); + + if (version != "" && defines.exists (name) && !haxelib.versionMatches (defines.get (name))) { LogHelper.warn ("Ignoring requested haxelib \"" + name + "\" version \"" + version + "\" (version \"" + defines.get (name) + "\" was already included)"); continue; } - var haxelib = new Haxelib (name, version); - if (path == null) { if (defines.exists ("setup")) { @@ -1363,7 +1363,7 @@ class ProjectXMLParser extends HXProject { if (!defines.exists (haxelib.name)) { - defines.set (haxelib.name, HaxelibHelper.getVersion (haxelib)); + defines.set (haxelib.name, Std.string (HaxelibHelper.getVersion (haxelib))); } diff --git a/lime/tools/helpers/HaxelibHelper.hx b/lime/tools/helpers/HaxelibHelper.hx index 2beecdf7d..35d48ce6a 100644 --- a/lime/tools/helpers/HaxelibHelper.hx +++ b/lime/tools/helpers/HaxelibHelper.hx @@ -340,6 +340,8 @@ class HaxelibHelper { } + getPath (haxelib, true, clearCache); + //if (haxelib.version != "") { //return haxelib.version;