介子找不到cmake子目录

Meson can't find cmake subdirectory

在我的一个 meson.build 文件中,我有需要为 spdlog 生成依赖项的代码。

libspd = cmake.subproject('spdlog')
spd_dep = libspd.dependency('spd_dep')

有问题的 meson.build 位于名为 vendor 的目录中,spdlog 目录也位于其中。

./
  ...
  vendor/
    meson.build
    spdlog/
      CMakeLists.txt
      ...

但是,当我配置项目时,介子抛出这个错误: Neither a subproject directory nor a spdlog.wrap file was found.。为什么是这样?显然,spdlog 目录与 meson.build 中的目录在同一个目录中,对吧?

此外,我知道我应该使用包装文件,但由于限制,这是不可能的。我也在 IRC 上询问过,但没有人回应,我在截止日期前。

Meson 已为子项目预定义位置 - All subprojects must be in subprojects directory。所以,你应该有结构:

  vendor/
    meson.build
    subprojects/
      spdlog/
        CMakeLists.txt