diff options
author | jfrijters <jfrijters> | 2013-02-18 12:39:37 +0400 |
---|---|---|
committer | jfrijters <jfrijters> | 2013-02-18 12:39:37 +0400 |
commit | dcb6658e5f78e184b795218014d09d23cdacab66 (patch) | |
tree | 7808538506479396b339f545c7313a299fb7e149 | |
parent | e000e21824f8691ad0abac4561d5f37b8ed6343c (diff) |
Don't include empty classes.jar.
-rw-r--r-- | ikvmc/CompilerClassLoader.cs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/ikvmc/CompilerClassLoader.cs b/ikvmc/CompilerClassLoader.cs index 20cc2846..d8c69946 100644 --- a/ikvmc/CompilerClassLoader.cs +++ b/ikvmc/CompilerClassLoader.cs @@ -753,6 +753,7 @@ namespace IKVM.Internal for (int i = 0; i < options.jars.Count; i++) { { + bool hasEntries = false; MemoryStream mem = new MemoryStream(); using (ZipOutputStream zip = new ZipOutputStream(mem)) { @@ -787,6 +788,7 @@ namespace IKVM.Internal zip.PutNextEntry(zipEntry); zip.Write(item.data, 0, item.data.Length); zip.CloseEntry(); + hasEntries = true; } if (stubs.Count != 0) { @@ -802,16 +804,21 @@ namespace IKVM.Internal } bw.Flush(); zip.CloseEntry(); + hasEntries = true; } } - mem = new MemoryStream(mem.ToArray()); - string name = options.jars[i].Name; - if (options.targetIsModule) + // don't include empty classes.jar + if (i != options.classesJar || hasEntries) { - name = Path.GetFileNameWithoutExtension(name) + "-" + moduleBuilder.ModuleVersionId.ToString("N") + Path.GetExtension(name); + mem = new MemoryStream(mem.ToArray()); + string name = options.jars[i].Name; + if (options.targetIsModule) + { + name = Path.GetFileNameWithoutExtension(name) + "-" + moduleBuilder.ModuleVersionId.ToString("N") + Path.GetExtension(name); + } + jarList.Add(name); + moduleBuilder.DefineManifestResource(name, mem, ResourceAttributes.Public); } - jarList.Add(name); - moduleBuilder.DefineManifestResource(name, mem, ResourceAttributes.Public); } } } |