2013-04-24 2 views
1

Я пишу на родной язык C Расширение в Ruby 2.0 с помощью Rake::ExtensionTask.new('NAME'). Мне нужно сделать это зависит от другой задачи, которые я определяюRuby ExtensionTask: Как сделать его зависимым от другой задачи рейка?

task :myTask do |t| 
.... 
end 

Мой вопрос, как я могу сделать эту установку таким образом, что, когда я бегу rake compile, расширение компиляции/создание зависит от завершения моей определенной задачи, т.е. , мое задание?

Я попытался следующие, как хорошо, но теперь я не вижу «компилировать» вариант при работе rake -T:

task :myTask 

task :extension_compile => [:myTask] 
    Rake::ExtensionTask.new("NAME") 
end 
+0

Что такое определение задачи : компилировать? Как это происходит: extension_compile связано с: компиляцией? – Yossi

ответ

3

чтобы добавить зависимость к существующей задаче, вы должны использовать хэш обозначения, как вы делали:

task :compile => [:myTask] 

Вы не видите :compile задачи при запуске rake -T, поскольку rake показывает только задачи, которые имеют описание:

desc "This is a compilation task" 
task :compile 

Сейчас работает rake -T будет выход:

rake compile # This is a compilation task 
+0

Спасибо! Это работало. Однако я столкнулся с другой проблемой. теперь выполняется команда rake компиляции: «rake compile: myNativeExtension», которая не имеет зависимости, которую мы принудительно включили: компилируем. В итоге я добавил следующее к моему исходному коду -> Rake :: Task [: компиляция] .invoke. Теперь, когда я делаю rake -T, появляется только «extension_compile», а не компиляция. Я могу жить с этим, althoguh мне нравится находить полное решение. Еще раз спасибо. – aalavi

1

Ваш второй фрагмент выглядит правильно, просто добавьте описание, чтобы быть в состоянии видеть его в список грабли

desc "Here's your description" 
task :extension_compile => [:myTask] 
    Rake::ExtensionTask.new("NAME") 
end 
+0

Благодарим вас за комментарий. У меня уже есть описание на месте. Я не смог обеспечить зависимость между: compile и: myTask. – aalavi

Смежные вопросы