meson.build.template 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. project('${modulename}',
  2. ['c', 'fortran'],
  3. version : '0.1',
  4. meson_version: '>= 1.1.0',
  5. default_options : [
  6. 'warning_level=1',
  7. 'buildtype=${buildtype}'
  8. ])
  9. fc = meson.get_compiler('fortran')
  10. py = import('python').find_installation('''${python}''', pure: false)
  11. py_dep = py.dependency()
  12. incdir_numpy = run_command(py,
  13. ['-c', 'import os; os.chdir(".."); import numpy; print(numpy.get_include())'],
  14. check : true
  15. ).stdout().strip()
  16. incdir_f2py = run_command(py,
  17. ['-c', 'import os; os.chdir(".."); import numpy.f2py; print(numpy.f2py.get_include())'],
  18. check : true
  19. ).stdout().strip()
  20. inc_np = include_directories(incdir_numpy)
  21. np_dep = declare_dependency(include_directories: inc_np)
  22. incdir_f2py = incdir_numpy / '..' / '..' / 'f2py' / 'src'
  23. inc_f2py = include_directories(incdir_f2py)
  24. fortranobject_c = incdir_f2py / 'fortranobject.c'
  25. inc_np = include_directories(incdir_numpy, incdir_f2py)
  26. # gh-25000
  27. quadmath_dep = fc.find_library('quadmath', required: false)
  28. ${lib_declarations}
  29. ${lib_dir_declarations}
  30. py.extension_module('${modulename}',
  31. [
  32. ${source_list},
  33. fortranobject_c
  34. ],
  35. include_directories: [
  36. inc_np,
  37. ${inc_list}
  38. ],
  39. dependencies : [
  40. py_dep,
  41. quadmath_dep,
  42. ${dep_list}
  43. ${lib_list}
  44. ${lib_dir_list}
  45. ],
  46. ${fortran_args}
  47. install : true)