aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-11-20 00:26:45 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2016-11-20 16:57:58 -0500
commitc9a46fcc93461ece4ac6d83b1875cd0f5fe0c684 (patch)
tree3fa5f023ef151774b823ef9fcd05e253b3430c73
parent0250b2cce633f2c66850e88cb9ccc0f17b6fa95a (diff)
downloadmeson-c9a46fcc93461ece4ac6d83b1875cd0f5fe0c684.zip
meson-c9a46fcc93461ece4ac6d83b1875cd0f5fe0c684.tar.gz
meson-c9a46fcc93461ece4ac6d83b1875cd0f5fe0c684.tar.bz2
Can set compiler arguments in Java.
-rw-r--r--mesonbuild/backend/ninjabackend.py3
-rw-r--r--mesonbuild/build.py6
-rw-r--r--test cases/java/3 args/com/mesonbuild/Simple.java7
-rw-r--r--test cases/java/3 args/meson.build9
4 files changed, 24 insertions, 1 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 2bfb822..659a53d 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -859,6 +859,9 @@ int dummy;
def generate_single_java_compile(self, src, target, compiler, outfile):
args = []
args += compiler.get_buildtype_args(self.environment.coredata.get_builtin_option('buildtype'))
+ args += self.build.get_global_args(compiler)
+ 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))
for i in target.include_dirs:
for idir in i.get_incdirs():
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 0e23777..98f05c2 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -28,6 +28,7 @@ known_basic_kwargs = {'install' : True,
'cs_args' : True,
'vala_args' : True,
'd_args' : True,
+ 'java_args' : True,
'link_args' : True,
'link_depends': True,
'link_with' : True,
@@ -1342,7 +1343,7 @@ class Jar(BuildTarget):
if not s.endswith('.java'):
raise InvalidArguments('Jar source %s is not a java file.' % s)
self.filename = self.name + '.jar'
- incdirs = kwargs.get('include_directories', [])
+ self.java_args = kwargs.get('java_args', [])
def get_main_class(self):
return self.main_class
@@ -1350,6 +1351,9 @@ class Jar(BuildTarget):
def type_suffix(self):
return "@jar"
+ def get_java_args(self):
+ return self.java_args
+
class ConfigureFile():
def __init__(self, subdir, sourcename, targetname, configuration_data):
diff --git a/test cases/java/3 args/com/mesonbuild/Simple.java b/test cases/java/3 args/com/mesonbuild/Simple.java
new file mode 100644
index 0000000..325a49a
--- /dev/null
+++ b/test cases/java/3 args/com/mesonbuild/Simple.java
@@ -0,0 +1,7 @@
+package com.mesonbuild;
+
+class Simple {
+ public static void main(String [] args) {
+ System.out.println("Java is working.\n");
+ }
+}
diff --git a/test cases/java/3 args/meson.build b/test cases/java/3 args/meson.build
new file mode 100644
index 0000000..7a73cf8
--- /dev/null
+++ b/test cases/java/3 args/meson.build
@@ -0,0 +1,9 @@
+project('simplejava', 'java')
+
+add_project_arguments('-target', '1.6', language : 'java')
+
+javaprog = jar('myprog', 'com/mesonbuild/Simple.java',
+ main_class : 'com.mesonbuild.Simple',
+ java_args : ['-source', '1.6'])
+test('mytest', javaprog)
+