diff options
4 files changed, 39 insertions, 3 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index cb51f3b..8ac7658 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1029,12 +1029,12 @@ int dummy; args += self.build.get_project_args(compiler, target.subproject) args += target.get_java_args() args += compiler.get_output_args(self.get_target_private_dir(target)) - sourcepath = '' + curdir = target.get_subdir() + sourcepath = os.path.join(self.build_to_src, curdir) + os.pathsep for i in target.include_dirs: for idir in i.get_incdirs(): sourcepath += os.path.join(self.build_to_src, i.curdir, idir) + os.pathsep - if sourcepath != '': - args += ['-sourcepath', sourcepath] + args += ['-sourcepath', sourcepath] rel_src = src.rel_to_builddir(self.build_to_src) plain_class_path = src.fname[:-4] + 'class' rel_obj = os.path.join(self.get_target_private_dir(target), plain_class_path) diff --git a/test cases/java/6 no includedirs/com/mesonbuild/Simple.java b/test cases/java/6 no includedirs/com/mesonbuild/Simple.java new file mode 100644 index 0000000..05a73ac --- /dev/null +++ b/test cases/java/6 no includedirs/com/mesonbuild/Simple.java @@ -0,0 +1,8 @@ +package com.mesonbuild; + +class Simple { + public static void main(String [] args) { + TextPrinter t = new TextPrinter("Printing from Java."); + t.print(); + } +} diff --git a/test cases/java/6 no includedirs/com/mesonbuild/TextPrinter.java b/test cases/java/6 no includedirs/com/mesonbuild/TextPrinter.java new file mode 100644 index 0000000..7e330a6 --- /dev/null +++ b/test cases/java/6 no includedirs/com/mesonbuild/TextPrinter.java @@ -0,0 +1,14 @@ +package com.mesonbuild; + +class TextPrinter { + + private String msg; + + TextPrinter(String s) { + msg = s; + } + + public void print() { + System.out.println(msg); + } +} diff --git a/test cases/java/6 no includedirs/meson.build b/test cases/java/6 no includedirs/meson.build new file mode 100644 index 0000000..b399211 --- /dev/null +++ b/test cases/java/6 no includedirs/meson.build @@ -0,0 +1,14 @@ +# It used to be necessary to pass: +# +# include_directories: include_directories('.') +# +# to any use of jar() to compile source code with inter-file class +# dependencies. This is now the default behaviour. + +project('noincludedirsjava', 'java') + +javaprog = jar('myprog', + 'com/mesonbuild/Simple.java', + 'com/mesonbuild/TextPrinter.java', + main_class : 'com.mesonbuild.Simple') +test('subdirtest', javaprog) |