如何获取 Rakefile 以自动重建依赖项文件
How do I get a Rakefile to automatically rebuild a dependency file?
我正在使用 rake 进行C++项目。 我正在使用 gcc -MM -MF 自动生成依赖项,并"导入"以导入它们。 目前为止,一切都好。
但是,rake 不会在应该重建"depends.mf"文件时重建。 Ruby 文档中的示例是错误的:
file ".depends.mf" => [SRC_LIST] do |t|
sh "makedepend -f- -- #{CFLAGS} -- #{t.prerequisites} > #{t.name}"
end
import ".depends.mf"
当SRC_LIST包含的任何文件也发生更改时,需要重建 .depends.mf 文件。 例如,假设SRC_LIST是单个文件 a.cpp,而该文件 #includes a.hpp。 如果我们修改 a.hpp,我们可能会修改它以 #include 新文件,因此我们需要重新制作 .depends.mf,但上面的行不会这样做。
所以我们真的希望.depends.mf依赖于源文件所依赖的相同的东西。 这些东西列在.depends.mf中。 很容易将 .depends.mf 修改为提及自己(gcc -MT 'foo.o foo.mf'(,但这不起作用:rake 只在阅读之前决定是否重建 .depends.mf。 阅读后不会重建它。
那么,我该怎么办? 切换到 SCONS? ;)
答案很简单:
Rake::MakefileLoader.new.load(".depends.mf") if File.file?(".depends.mf")
相关文章:
- 如何从C++中的依赖类型中获得它所依赖的类型
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 将依赖名称显式标记为类型名和模板的奇怪之处
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- C++GTKMM gui循环依赖关系
- 通过ccmake在cmake中缓存依赖选项
- 当基类是依赖类型时,这是一个缺陷吗
- 从不同的附加依赖项中识别等同命名的函数
- 如何在 CMake 中对目标依赖项进行分组?
- Android 在编译二进制文件时重建静态库
- 是否可以依赖函数范围的静态变量来执行程序关闭期间调用的方法?
- 为什么构建目录中新构建的共享库与安装目录中的副本具有不同的依赖项集?
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 通过依赖类型使用非类型模板参数的单类型模板参数类模板的部分专用化
- 为什么内存屏障依赖于变量?
- node-gyp 的先有鸡还是先有蛋的问题:指向依赖项中的头文件
- 反转依赖于 end() 的迭代器
- 如何获取 Rakefile 以自动重建依赖项文件
- C++重建删除依赖文件
- 使用GCC依赖文件会导致Make每次都完全重建项目