diff options
author | Niclas Moeslund Overby <noverby@prozum.dk> | 2018-06-12 13:43:25 +0200 |
---|---|---|
committer | Niclas Moeslund Overby <noverby@prozum.dk> | 2018-07-03 21:33:54 +0200 |
commit | bc8239ded025d05d924e0e09b359941505e729b5 (patch) | |
tree | c86400fc462490fdf6e801295b4ec9a53d293741 | |
parent | 60b9c8300c7cb8f3b5afe1e01967f59420f23fb3 (diff) | |
download | meson-bc8239ded025d05d924e0e09b359941505e729b5.zip meson-bc8239ded025d05d924e0e09b359941505e729b5.tar.gz meson-bc8239ded025d05d924e0e09b359941505e729b5.tar.bz2 |
java: add jar linking test
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 6 | ||||
-rw-r--r-- | test cases/java/7 linking/com/mesonbuild/Linking.java | 9 | ||||
-rw-r--r-- | test cases/java/7 linking/meson.build | 8 | ||||
-rw-r--r-- | test cases/java/7 linking/sub/com/mesonbuild/SimpleLib.java | 7 | ||||
-rw-r--r-- | test cases/java/7 linking/sub/meson.build | 2 |
5 files changed, 29 insertions, 3 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index f0a755c..88415e8 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -981,8 +981,9 @@ int dummy; class_list.append(plain_class_path) class_dep_list = [os.path.join(self.get_target_private_dir(target), i) for i in class_list] manifest_path = os.path.join(self.get_target_private_dir(target), 'Manifest.txt') - os.makedirs(os.path.dirname(os.path.join(self.environment.get_build_dir(), manifest_path)), exist_ok=True) - with open(manifest_path, 'w') as manifest: + manifest_fullpath = os.path.join(self.environment.get_build_dir(), manifest_path) + os.makedirs(os.path.dirname(manifest_fullpath), exist_ok=True) + with open(manifest_fullpath, 'w') as manifest: if any(target.link_targets): manifest.write('Class-Path: ') cp_paths = [os.path.join(self.get_target_dir(l), l.get_filename()) for l in target.link_targets] @@ -994,7 +995,6 @@ int dummy; if e != '': commands.append(main_class) commands.append(self.get_target_filename(target)) - commands.append(manifest_path) # 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. diff --git a/test cases/java/7 linking/com/mesonbuild/Linking.java b/test cases/java/7 linking/com/mesonbuild/Linking.java new file mode 100644 index 0000000..170e2aa --- /dev/null +++ b/test cases/java/7 linking/com/mesonbuild/Linking.java @@ -0,0 +1,9 @@ +package com.mesonbuild; + +import com.mesonbuild.SimpleLib; + +class Linking { + public static void main(String [] args) { + SimpleLib.func(); + } +} diff --git a/test cases/java/7 linking/meson.build b/test cases/java/7 linking/meson.build new file mode 100644 index 0000000..0ae0db3 --- /dev/null +++ b/test cases/java/7 linking/meson.build @@ -0,0 +1,8 @@ +project('linkingjava', 'java') + +subdir('sub') + +javaprog = jar('myprog', 'com/mesonbuild/Linking.java', + main_class : 'com.mesonbuild.Linking', + link_with : simplelib) +test('mytest', javaprog)
\ No newline at end of file diff --git a/test cases/java/7 linking/sub/com/mesonbuild/SimpleLib.java b/test cases/java/7 linking/sub/com/mesonbuild/SimpleLib.java new file mode 100644 index 0000000..835b2e4 --- /dev/null +++ b/test cases/java/7 linking/sub/com/mesonbuild/SimpleLib.java @@ -0,0 +1,7 @@ +package com.mesonbuild; + +public class SimpleLib { + public static void func() { + System.out.println("Java linking is working.\n"); + } +} diff --git a/test cases/java/7 linking/sub/meson.build b/test cases/java/7 linking/sub/meson.build new file mode 100644 index 0000000..13fd202 --- /dev/null +++ b/test cases/java/7 linking/sub/meson.build @@ -0,0 +1,2 @@ +simplelib = jar('simplelib', + 'com/mesonbuild/SimpleLib.java') |