我正在尝试构建一个静态库,它的名字只有在我处理一些文件后才能得到。我有这样的事情:
task :lib,:config do |t,args|
# ... do some processing here, get a string representing the
# fullpath of the lib. Imaging libname contains a.lib
file libname => object_files
end
但是,当然,由于我不知道任务运行时依赖项的名称,因此不会执行应该构建 a.lib 的代码。我试着这样做:
task :lib,:config do |t,args|
# ... do some processing here, get a string representing the
# fullpath of the lib. Imaging libname contains a.lib
file libname => object_files
task :lib => [libname]
end
将此添加为依赖项,但它不起作用。我现在有这样的,并且有效:
task :lib,:config do |t,args|
# ... do some processing here, get a string representing the
# fullpath of the lib. Imaging libname contains a.lib
file libname => object_files
Rake.application[libname].invoke
end
但我觉得它太丑了。有没有更好的方法来声明这种依赖?
最佳答案
Rake::Task[libname].invoke
在我看来,这看起来稍微好一些,我认为除了调用 .execute 或 .invoke 之外,没有其他方法可以在 rake 任务中执行 rake 任务。
关于ruby - 如何在我的 Rakefile 中声明此依赖项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5474757/