diff --git a/src/lime/tools/AssetHelper.hx b/src/lime/tools/AssetHelper.hx index 2f9ef857c..a109a4d0d 100644 --- a/src/lime/tools/AssetHelper.hx +++ b/src/lime/tools/AssetHelper.hx @@ -191,6 +191,25 @@ class AssetHelper return manifests; } + public static function deleteStaleAssets(project:HXProject, targetDirectory:String):Void + { + var newAssets = [for (asset in project.assets) asset.targetPath]; + + var recordFile:String = targetDirectory + "/.assets"; + if (FileSystem.exists(recordFile)) + { + for (oldAsset in File.getContent(recordFile).split("\n")) + { + if (oldAsset.length > 0 && newAssets.indexOf(oldAsset) < 0) + { + System.deleteFile(targetDirectory + "/bin/" + oldAsset); + } + } + } + + File.saveContent(recordFile, newAssets.join("\n")); + } + private static function getAssetData(project:HXProject, pathGroups:Map>, libraries:Map, library:String, asset:Asset):Dynamic { diff --git a/src/lime/tools/PlatformTarget.hx b/src/lime/tools/PlatformTarget.hx index 87cf6e1d0..2feba96b9 100644 --- a/src/lime/tools/PlatformTarget.hx +++ b/src/lime/tools/PlatformTarget.hx @@ -103,6 +103,8 @@ class PlatformTarget // AssetHelper.processLibraries (project, targetDirectory); // #end update(); + + AssetHelper.deleteStaleAssets(project, targetDirectory); } if (command == "build" || command == "test")