Как я могу объявить эту зависимость в моем Rakefile? - PullRequest
4 голосов
/ 29 марта 2011

Я пытаюсь создать статическую библиотеку, имя которой я получаю только после обработки некоторых файлов. У меня есть что-то вроде этого:

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

но я чувствую, что это слишком уродливо. Есть ли лучший способ объявить эту зависимость?

Ответы [ 2 ]

3 голосов
/ 05 апреля 2011

Я думаю, что эта тема уже имеет лучший ответ: Как запустить Rake-задачи из Rake-задач?

2 голосов
/ 05 апреля 2011
Rake::Task[libname].invoke

Это выглядит немного лучше, на мой взгляд, я не думаю, что есть способ вызвать рейк-задачу внутри рейк-задачи, кроме вызова .execute или .invoke.

...