The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.3 KiB
53 lines
1.3 KiB
5 years ago
|
project('mpi', 'c', 'cpp', default_options: ['b_asneeded=false'])
|
||
|
|
||
|
method = get_option('method')
|
||
|
|
||
|
cc = meson.get_compiler('c')
|
||
|
mpic = dependency('mpi', language : 'c', required : false, method : method)
|
||
|
if not mpic.found()
|
||
|
error('MESON_SKIP_TEST: MPI not found, skipping.')
|
||
|
endif
|
||
|
exec = executable('exec',
|
||
|
'main.c',
|
||
|
dependencies : [mpic])
|
||
|
|
||
|
test('MPI C', exec, timeout: 10)
|
||
|
|
||
|
|
||
|
# C++ MPI not supported by MS-MPI
|
||
|
cpp = meson.get_compiler('cpp')
|
||
|
mpicpp = dependency('mpi', language : 'cpp', required: false, method : method)
|
||
|
if not cpp.links('''
|
||
|
#include <mpi.h>
|
||
|
#include <stdio.h>
|
||
|
int main(int argc, char **argv) {MPI::Init(argc, argv);}
|
||
|
''', dependencies: mpicpp, name: 'C++ MPI')
|
||
|
mpicpp = disabler()
|
||
|
endif
|
||
|
execpp = executable('execpp',
|
||
|
'main.cpp',
|
||
|
dependencies : [mpicpp])
|
||
|
|
||
|
test('MPI C++', execpp, timeout: 10)
|
||
|
|
||
|
|
||
|
if add_languages('fortran', required : false)
|
||
|
fc = meson.get_compiler('fortran')
|
||
|
mpif = dependency('mpi', language : 'fortran', required: false, method : method)
|
||
|
if not fc.links('use mpi; end', dependencies: mpif, name: 'Fortran MPI')
|
||
|
mpif = disabler()
|
||
|
endif
|
||
|
|
||
|
exef = executable('exef',
|
||
|
'main.f90',
|
||
|
dependencies : mpif)
|
||
|
|
||
|
test('MPI Fortran', exef, timeout: 10)
|
||
|
endif
|
||
|
|
||
|
|
||
|
# Check we can apply a version constraint
|
||
|
if mpic.version() != 'unknown'
|
||
|
dependency('mpi', version: '>=@0@'.format(mpic.version()), method : method)
|
||
|
endif
|