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], )