summaryrefslogtreecommitdiffstats
path: root/test cases/java/9 jni/meson.build
blob: 7a681659131f7bf4a28b193004b57e3d26aa22a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
project('jnijava', ['c', 'java'])

if build_machine.system() == 'cygwin'
  error('MESON_SKIP_TEST: cygwin test failures')
endif

if build_machine.system() == 'windows' and build_machine.cpu_family() == 'x86'
  error('MESON_SKIP_TEST: failing builds on 32bit Windows because a 32bit JDK is not available in the Azure Pipelines Windows images')
endif

fs = import('fs')
javamod = import('java')

cc = meson.get_compiler('c')
java = find_program('java')

jni_dep = dependency('jni', version : '>=1.8', modules: ['jvm', 'awt'])

# Assert that the header can actually be found with the dependency.
cc.has_header('jni.h', dependencies: [jni_dep])
# Assert that the platform-specific include directory is included in the compiler arguments.
cc.has_header('jni_md.h', dependencies: [jni_dep])

# generate native headers
subdir('src')
subdir('lib')

test(
  'jnitest',
  java,
  args: [
    '-Djava.library.path=@0@'.format(fs.parent(jnijava.full_path())),
    '-jar',
    jnijar,
  ],
  protocol : 'exitcode',
  depends : [jnijava],
)