Ninja 相当于 Make 的“从该目录向下构建”功能(使用 CMake)?

2024-02-13

使用CMake和Make构建项目时,可以执行make从构建树的子目录(即从包含顶级目录的目录下面的目录)Makefile), and make将(据我所知)构建该目录下或该目录下的所有目标。这是因为 CMake 生成了一个Makefile对于每个包含目标的目录,因此当您位于包含目标的目录中时,make找到Makefile来制定这些目标。

然而,当 CMake 生成 Ninja 文件时,它只生成one build.ninja文件,位于构建树的顶层。所以打电话ninja从顶级目录以外的目录失败(即使是-f选项不起作用,因为ninja找不到rules.ninja file).

有没有什么方法可以模拟在目录及其下构建目标的“类make”行为?据我所知,不存在与“特定目录及其下的所有目标”相对应的 Ninja 目标。 (这可以使用以每个目录命名的虚假目标来模拟,这些目标依赖于该目录及其下的所有目标,但 CMake 默认情况下不会生成此类目标。)


ninja <DIR>/all适用于最新版本的 Ninja (1.7.2)。 1.3.4 版本不允许这样做。

我找不到对此的引用手册 https://ninja-build.org/manual.html。然而,CMake 有这个记录here https://cmake.org/cmake/help/v3.8/generator/Ninja.html:

最新版本的 ninja 程序可以通过“all”目标构建项目。还提供了“安装”目标。

对于项目的每个子目录 sub/dir,都会生成其他目标:

  • 子/目录/全部
    取决于子目录所需的所有目标。
  • 子/目录/安装
    运行子目录中的安装步骤(如果有)。
  • 子/目录/测试
    运行子目录中的测试步骤(如果有)。
  • 子/目录/包
    运行子目录中的包步骤(如果有)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ninja 相当于 Make 的“从该目录向下构建”功能(使用 CMake)? 的相关文章

随机推荐

  • R - 更改 corrplot 轴标签的大小

    我正在使用以下内容corrplot require corrplot needs the corrplot package corrplot cor lpp axis1 lpp axis2 method c number bg grey10
  • 如何将我的函数放入类中。Beginner

    我下面有一个 Json 函数 需要构造一个具有两个函数的类 我的第二个函数如何 知道 data这是第一个函数的响应 def results json request request get json data json loads json
  • Oracle SQL 循环遍历日期范围

    我正在尝试编写一个执行以下操作的查询 从 Visit 表中获取 Start Date 和 End Date 对于日期范围内包含的每个日期 搜索遭遇表 查看特定提供者在该日期是否看过患者 生成一个表格 显示每个日期以及谁在该日期见过该患者 日
  • 为什么我的 JFrame 没有显示?

    我很确定我以前已经这样做过 但由于某种原因 当我运行它时 JFrame 不会显示 JLabel originalString new JLabel Original String str getMutator JLabel currentS
  • 如何在 flutter/dart 中从购物车中删除商品

    当您有单独的列表小部件时 如何从 flutter 中的列表中删除购物车项目 我有三个包含以下代码的文件 carts dart gt 我在其中显示所有列表项 cart list item gt 我在其中创建了一个小部件 api service
  • 如何模拟任何未直接调用的函数?

    TL DR 我如何修补或模拟 任何未被直接调用 使用的函数 设想 我有一个简单的单元测试片段 utils functions py def get user agents sends requests to a private networ
  • 为什么我应该使用“->”而不是“.”在对象的指针中? [复制]

    这个问题在这里已经有答案了 我同意这可能是一个非常初学者的问题 但我不知道为什么我不能使用 访问对象指针的成员 e g JMP sum obj new JMP 0 JMP a sum obj gt number a number sum o
  • 从句子级别的旋转文本中取消旋转 PHP 中的文本

    我需要在 php 页面中整齐地输出旋转文本 我已经有了 hi hello greetings 格式的预旋转文本 我有一个在其他地方找到的 php 代码 但它不会在句子级别输出旋转文本 其中有两个 这是需要修复的代码
  • 如何在magento中提交表单后获取发布数据变量

    如何获取后变量的数据 就像如果我使用 post 方法发布表单 那么我可以使用 REQUEST 或 POST 获取它 我怎样才能在 mgento 中做到这一点 您可以使用以下命令读取值 this gt getRequest gt getPar
  • 在 Django 应用程序内对弹性搜索进行单元测试

    我有一个使用弹性搜索的 Django 应用程序 我想要 100 的代码测试覆盖率 因此我需要测试对 elasticsearch 在本地 安装 的 API 调用 所以我的问题是 模拟整个elasticsearch 更好还是我应该运行elast
  • cin.getline() 正在跳过 C++ 中的输入[重复]

    这个问题在这里已经有答案了 如果我使用以下代码 getline 不会采用最后一个输入 对于 for 循环的最后一次迭代 它只是跳过它 int main int n map
  • d3 sunburst 不使用内联 json 绘制

    我一直在尝试绘制内联旭日形 但结果始终是一个空块 有人可以看一下并提示我为什么吗 非常感谢你的帮助 基本上这是示例代码 我只是尝试将 json 加载更改为内联 json 这样我就可以更轻松地解析数据 function draw chart
  • 删除后未找到结果

    我有以下删除语句 delete s p o
  • 通过 jQuery AJAX 将数据发布到 Python CGI 脚本

    我正在尝试设置一个简单的脚本 其中使用 jQuery ajax 函数将一些数据发送到 Python CGI 脚本 Python 脚本只会将发布到其中的数据设为大写 然后将该数据返回到 HTML 文件 其中 div 将使用内容进行更新 我有如
  • iPhone 开发 - 限制用户与应用程序的交互并显示进度指示器

    我有一个案例 我从服务器获取信息 我的应用程序有一个选项卡栏和导航按钮 我希望应用程序显示进度指示器并禁用所有其他控件 以便用户在从服务器提取数据时无法跳转 我怎样才能做到这一点 我想到的一种方法是显示带有进度窗口的透明视图 很像消息警报窗
  • H2数据库:聚集索引支持

    我使用 H2 数据库来存储包含大量时间序列的环境数据 时间序列只是定期 例如每小时一次 记录在数据库中的传感器的测量值 表中存储的数据 CREATE TABLE hydr dt timestamp value double sensorid
  • 在 Skylake 上展开 1 周期循环会使性能降低 25%。 uops调度问题?

    TL DR我有一个循环需要 1 个周期才能在 Skylake 上执行 它执行 3 次加法 1 次增量 跳转 当我将其展开超过 2 次 无论多少次 时 我的程序运行速度会慢 25 左右 这可能与对齐有关 但我不清楚是什么 编辑 这个问题曾经询
  • ARDUINO 常数有什么用?以前是22,现在是100

    我正在使用热电偶并下载了 MAX6675 库 我想知道以下几行中 ARDUINO 常量的值是做什么用的 if ARDUINO gt 100 lcd write byte 0 else lcd print 0 BYTE endif lcd p
  • 使用 Youtube v3 API 下载字幕

    在尝试使用 OAuth 2 0 授权下载视频 不归我所有 的字幕时 我收到 403 禁止错误 其中指出 与请求关联的权限不足以下载字幕轨道 该请求可能无法正确处理 已授权 或者视频订单可能未启用第三方为此字幕提供的内容 在进一步的研究中 我
  • Ninja 相当于 Make 的“从该目录向下构建”功能(使用 CMake)?

    使用CMake和Make构建项目时 可以执行make从构建树的子目录 即从包含顶级目录的目录下面的目录 Makefile and make将 据我所知 构建该目录下或该目录下的所有目标 这是因为 CMake 生成了一个Makefile对于每