diff --git a/lime/tools/helpers/ModuleHelper.hx b/lime/tools/helpers/ModuleHelper.hx index de4a4598d..f17625ee2 100644 --- a/lime/tools/helpers/ModuleHelper.hx +++ b/lime/tools/helpers/ModuleHelper.hx @@ -155,7 +155,7 @@ class ModuleHelper { private static function parseModuleSource (source:String, moduleData:ModuleData, include:Array, exclude:Array, currentPath:String):Void { var files = FileSystem.readDirectory (currentPath); - var filePath:String, className:String; + var filePath:String, className:String, packageName:String; for (file in files) { @@ -163,8 +163,19 @@ class ModuleHelper { if (FileSystem.isDirectory (filePath)) { - parseModuleSource (source, moduleData, include, exclude, filePath); + packageName = StringTools.replace (filePath, source, ""); + packageName = StringTools.replace (packageName, "\\", "/"); + while (StringTools.startsWith (packageName, "/")) packageName = packageName.substr (1); + + packageName = StringTools.replace (packageName, "/", "."); + + if (StringHelper.filter (packageName, include, exclude)) { + + parseModuleSource (source, moduleData, include, exclude, filePath); + + } + } else { if (Path.extension (file) != "hx") continue;