aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiclas Moeslund Overby <noverby@prozum.dk>2018-06-12 13:43:25 +0200
committerNiclas Moeslund Overby <noverby@prozum.dk>2018-07-03 21:33:54 +0200
commitbc8239ded025d05d924e0e09b359941505e729b5 (patch)
treec86400fc462490fdf6e801295b4ec9a53d293741
parent60b9c8300c7cb8f3b5afe1e01967f59420f23fb3 (diff)
downloadmeson-bc8239ded025d05d924e0e09b359941505e729b5.zip
meson-bc8239ded025d05d924e0e09b359941505e729b5.tar.gz
meson-bc8239ded025d05d924e0e09b359941505e729b5.tar.bz2
java: add jar linking test
-rw-r--r--mesonbuild/backend/ninjabackend.py6
-rw-r--r--test cases/java/7 linking/com/mesonbuild/Linking.java9
-rw-r--r--test cases/java/7 linking/meson.build8
-rw-r--r--test cases/java/7 linking/sub/com/mesonbuild/SimpleLib.java7
-rw-r--r--test cases/java/7 linking/sub/meson.build2
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')