meson.build 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. project('random-build-examples', 'c', 'cpp', 'cython')
  2. py_mod = import('python')
  3. py3 = py_mod.find_installation(pure: false)
  4. cc = meson.get_compiler('c')
  5. cy = meson.get_compiler('cython')
  6. if not cy.version().version_compare('>=0.29.35')
  7. error('tests requires Cython >= 0.29.35')
  8. endif
  9. _numpy_abs = run_command(py3, ['-c',
  10. 'import os; os.chdir(".."); import numpy; print(os.path.abspath(numpy.get_include() + "../../.."))'],
  11. check: true).stdout().strip()
  12. npymath_path = _numpy_abs / 'core' / 'lib'
  13. npy_include_path = _numpy_abs / 'core' / 'include'
  14. npyrandom_path = _numpy_abs / 'random' / 'lib'
  15. npymath_lib = cc.find_library('npymath', dirs: npymath_path)
  16. npyrandom_lib = cc.find_library('npyrandom', dirs: npyrandom_path)
  17. py3.extension_module(
  18. 'extending_distributions',
  19. 'extending_distributions.pyx',
  20. install: false,
  21. include_directories: [npy_include_path],
  22. dependencies: [npyrandom_lib, npymath_lib],
  23. )
  24. py3.extension_module(
  25. 'extending',
  26. 'extending.pyx',
  27. install: false,
  28. include_directories: [npy_include_path],
  29. dependencies: [npyrandom_lib, npymath_lib],
  30. )
  31. py3.extension_module(
  32. 'extending_cpp',
  33. 'extending_distributions.pyx',
  34. install: false,
  35. override_options : ['cython_language=cpp'],
  36. cython_args: ['--module-name', 'extending_cpp'],
  37. include_directories: [npy_include_path],
  38. dependencies: [npyrandom_lib, npymath_lib],
  39. )