Meson,如何获得包含外部依赖的目录



我在介子中有一个子项目使用imgui。由于介子中的一个错误,我必须重写imgui的命令行参数,否则就无法编译:

即,我做这样的事情:

imgui_lib = library(
'imgui',
sources : [imgui_sources],
dependencies : [dependency('imgui')],
include_directories : [
'../../../ext/imgui/bindings'
],
cpp_args : ['-DIMGUI_USER_CONFIG="imgui_user_config.h"'])
imgui_dep = declare_dependency(
link_with:imgui_lib,
include_directories: [
'.',
imgui_bindings,
])

错误在于介子删除了变量中的引号,因此-DIMGUI_USER_CONFIG="imgui_user_config.h"变成了-DIMGUI_USER_CONFIG=imgui_user_config.h

这是微不足道的错误,并导致编译错误。

这很好,但它要求我在使用imgui时重复这种模式,即每次都必须进行覆盖,这并不有趣。

作为我的imgui_dep对象的一部分,我希望imgui路径成为includes的一部分

imgui_dep = declare_dependency(
link_with:imgui_lib,
include_directories: [
'.',
imgui_bindings,
imgui.get_include_dirs()
])

到目前为止,我尝试过:

imgui.get_variable('includedir')

但这导致了错误:ERROR: Could not get pkg-config variable and no default provided for <PkgConfigDependency imgui: True None>

我想要的只是该依赖项中包含目录的路径,仅此而已,如何获取它们?

我通常做的很简单:

my_lib_inc_dir = './my_lib/includes'
# Create dependency
my_lib_dep = declare_dependency(
dependencies: my_lib,
include_directories: include_directories(my_lib_inc_dir)
)

然后只需将您的lib与此依赖项链接,它就会自动提取include-dir位置。

最新更新