diff options
author | Niclas Moeslund Overby <noverby@prozum.dk> | 2018-06-19 17:24:57 +0200 |
---|---|---|
committer | Niclas Moeslund Overby <noverby@prozum.dk> | 2018-07-03 21:33:54 +0200 |
commit | 60b9c8300c7cb8f3b5afe1e01967f59420f23fb3 (patch) | |
tree | 336a59e0a7b8cedd55292187ccf98de5f19778c0 /mesonbuild/build.py | |
parent | 70bc754a2c73da688caf553a00562562e1b5e75a (diff) | |
download | meson-60b9c8300c7cb8f3b5afe1e01967f59420f23fb3.zip meson-60b9c8300c7cb8f3b5afe1e01967f59420f23fb3.tar.gz meson-60b9c8300c7cb8f3b5afe1e01967f59420f23fb3.tar.bz2 |
java: implement java linking
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r-- | mesonbuild/build.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 7d071e0..dc14326 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -1911,6 +1911,9 @@ class Jar(BuildTarget): for s in self.sources: if not s.endswith('.java'): raise InvalidArguments('Jar source %s is not a java file.' % s) + for t in self.link_targets: + if not isinstance(t, Jar): + raise InvalidArguments('Link target %s is not a jar target.' % t) self.filename = self.name + '.jar' self.outputs = [self.filename] self.java_args = kwargs.get('java_args', []) @@ -1928,6 +1931,13 @@ class Jar(BuildTarget): # All jar targets are installable. pass + def is_linkable_target(self): + return True + + def get_classpath_args(self): + cp_paths = [os.path.join(l.get_subdir(), l.get_filename()) for l in self.link_targets] + return ['-cp', os.pathsep.join(cp_paths)] + class CustomTargetIndex: """A special opaque object returned by indexing a CustomTarget. This object @@ -1950,7 +1960,6 @@ class CustomTargetIndex: def get_subdir(self): return self.target.get_subdir() - class ConfigureFile: def __init__(self, subdir, sourcename, targetname, configuration_data): |