Skip to content
Snippets Groups Projects
meson.build 2.06 KiB
project('usadelndsoc', ['cpp', 'fortran'],
        version : '0.1',
        meson_version: '>= 0.55.0',
        default_options : ['cpp_std=c++17', 'build.cpp_std=c++17'])

cpp = meson.get_compiler('cpp')

cppad_dep = dependency('cppad')
eigen3_dep = dependency('eigen3')

if not cppad_dep.found()
  cppad_dep = cpp.find_library('libcppad_lib',
                               dirs : [get_option('cppad_lib')],
                               has_headers : ['cppad/cppad.h'],
                               header_include_directories : [get_option('cppad_inc')])
  if not cppad_dep.found()
    cppad_dep = cpp.find_library('cppad_lib',
                                 dirs : [get_option('cppad_lib')],
                                 has_headers : ['cppad/cppad.h'],
                                 header_include_directories : [get_option('cppad_inc')],
                                 required : true)
  endif
endif

if not eigen3_dep.found()
  if cpp.has_header('Eigen/Core', include_directories : [get_option('eigen_lib')])
    eigen3_dep = declare_dependency(include_directories : [get_option('eigen_lib')])
  else
    error('Eigen/Core header not found')
  endif
endif

py_mod = import('python')
py3 = py_mod.find_installation('python3')
py3_dep = py3.dependency()

incdir_numpy = run_command(py3,
  [
    '-c',
    'import numpy; print(numpy.get_include())'
  ],
  check: true
).stdout().strip()
numpy_dep = declare_dependency(
  compile_args : ['-DNPY_NO_DEPRECATED_API=NPY_1_9_API_VERSION'],
  include_directories : [include_directories(incdir_numpy)],
  dependencies  : [py3_dep],
)

incdir_pybind11 = run_command(py3,
  [
    '-c',
    'import pybind11; print(pybind11.get_include())'
  ],
  check: true
).stdout().strip()
inc_pybind11 = include_directories(incdir_pybind11)
pybind11_dep = declare_dependency(
  include_directories : [include_directories(incdir_pybind11)],
  dependencies : [py3_dep]
)
deps = [cppad_dep, eigen3_dep]

#executable('main', ['src/main.cpp'], dependencies : deps)
#executable('main2', ['src/xtest.f95', 'src/adjac/adjac.f95'])

subdir('usadelndsoc')
subdir('doc')