Ruby ExtensionTask:如何让它依赖于另一个 rake 任务?

aal*_*avi 1 ruby rake

我写一个原生C的扩展Ruby 2.0Rake::ExtensionTask.new('NAME')。我需要让它依赖于我定义的另一个任务

task :myTask do |t|
....
end
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何进行此设置,以便在运行rake compile时扩展编译/创建取决于我定义的任务(即 myTask)的完成情况?

我也尝试了以下操作,但现在我在运行时看不到“编译”选项rake -T

task :myTask

task :extension_compile => [:myTask]
  Rake::ExtensionTask.new("NAME")
end
Run Code Online (Sandbox Code Playgroud)

Yos*_*ssi 5

要将依赖项添加到现有任务,您应该像以前一样使用哈希符号:

task :compile => [:myTask]
Run Code Online (Sandbox Code Playgroud)

:compile运行时看不到任务,rake -T因为rake只显示具有描述的任务:

desc "This is a compilation task"
task :compile
Run Code Online (Sandbox Code Playgroud)

现在运行rake -T将产生:

rake compile  # This is a compilation task
Run Code Online (Sandbox Code Playgroud)