diff options
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 6 | ||||
-rw-r--r-- | test cases/java/4 inner class/com/mesonbuild/Simple.java | 15 | ||||
-rw-r--r-- | test cases/java/4 inner class/meson.build | 5 |
3 files changed, 24 insertions, 2 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index b002656..d8dc333 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -803,8 +803,10 @@ int dummy; if e != '': commands.append(main_class) commands.append(self.get_target_filename(target)) - for cls in class_list: - commands += ['-C', self.get_target_private_dir(target), cls] + # Java compilation can produce an arbitrary number of output + # class files for a single source file. Thus tell jar to just + # grab everything in the final package. + commands += ['-C', self.get_target_private_dir(target), '.'] elem = NinjaBuildElement(self.all_outputs, outname_rel, jar_rule, []) elem.add_dep(class_dep_list) elem.add_item('ARGS', commands) diff --git a/test cases/java/4 inner class/com/mesonbuild/Simple.java b/test cases/java/4 inner class/com/mesonbuild/Simple.java new file mode 100644 index 0000000..fd0e0bf --- /dev/null +++ b/test cases/java/4 inner class/com/mesonbuild/Simple.java @@ -0,0 +1,15 @@ +package com.mesonbuild; + +class Simple { + class Inner { + public String getString() { + return "Inner class is working.\n"; + } + } + + public static void main(String [] args) { + Simple s = new Simple(); + Simple.Inner ic = s.new Inner(); + System.out.println(ic.getString()); + } +} diff --git a/test cases/java/4 inner class/meson.build b/test cases/java/4 inner class/meson.build new file mode 100644 index 0000000..bed5c0f --- /dev/null +++ b/test cases/java/4 inner class/meson.build @@ -0,0 +1,5 @@ +project('simplejava', 'java') + +javaprog = jar('myprog', 'com/mesonbuild/Simple.java', + main_class : 'com.mesonbuild.Simple') +test('mytest', javaprog) |