From a3fb0fb2e2d00747458c6bf8e1243d733963ce88 Mon Sep 17 00:00:00 2001 From: Fred Morcos Date: Thu, 4 Apr 2024 14:07:02 +0200 Subject: [PATCH] Meson: Integrate libdecaf library and header detection --- meson/libdecaf/meson.build | 58 +++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/meson/libdecaf/meson.build b/meson/libdecaf/meson.build index c7b274bfc3..a7770e1c46 100644 --- a/meson/libdecaf/meson.build +++ b/meson/libdecaf/meson.build @@ -5,38 +5,52 @@ if not opt_libdecaf.disabled() dep_libdecaf = dependency('libdecaf', required: false) if not dep_libdecaf.found() - dep_libdecaf = cxx.find_library( - 'decaf', - dirs: [ - '/usr', - '/usr' / 'lib', - '/usr' / 'local', - '/usr' / 'local' / 'lib', - ], - required: opt_libdecaf - ) - endif - - if dep_libdecaf.found() - message('Libdecaf: Checking for header file') + all_lib_dirs = [ + '/usr', + '/usr' / 'lib', + '/usr' / 'local', + '/usr' / 'local' / 'lib', + ] - include_dirs = include_directories( + all_include_dirs = [ '/usr' / 'include', '/usr' / 'include' / 'decaf', '/usr' / 'local' / 'include', '/usr' / 'local' / 'include' / 'decaf', - is_system: true, - ) + ] - cxx.has_header( - 'decaf.hxx', - required: true, - include_directories: include_dirs, + fs = import('fs') + + lib_dirs = [] + foreach lib_dir: all_lib_dirs + if fs.is_dir(lib_dir) + lib_dirs += lib_dir + endif + endforeach + + include_dirs = [] + foreach include_dir: all_include_dirs + if fs.is_dir(include_dir) + include_dirs += include_dir + endif + endforeach + include_dirs = include_directories(include_dirs, is_system: true) + + dep_libdecaf = cxx.find_library( + 'decaf', + dirs: lib_dirs, + required: opt_libdecaf, + has_headers: [ + 'decaf.hxx', + 'decaf' / 'spongerng.hxx', + 'decaf' / 'eddsa.hxx', + ], + header_include_directories: include_dirs, ) dep_libdecaf = declare_dependency( - include_directories: dir, dependencies: dep_libdecaf, + include_directories: include_dirs, ) endif endif -- 2.47.2