| 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], required: true) |
| # Assert that the platform-specific include directory is included in the compiler arguments. |
| cc.has_header('jni_md.h', dependencies: [jni_dep], required: true) |
| |
| # 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], |
| ) |