Как связать два custom_targets в мезоне?

Два правильно построили мою цель, мне нужно связать две пользовательские команды в мезоне:

  • gob2 - переводит файл .gob в пару файлов .c и .h
  • patch_src - небольшая программа на Python, которая делает небольшой патч для вывода gob2.

Но я не могу понять, как передать команде patch_src выходные данные программы gob2 в качестве входных данных. Если я сделаю следующее:

gob2 = find_program('gob2')
patch_src = find_program('patch_src')

gen_src = custom_target('gen-output',
  output : ['gtk-image-viewer.h','gtk-image-viewer-private.h','gtk-image-viewer.c'],
  input : 'gtk-image-viewer.gob',
  command : [gob2, '-o', '@OUTDIR@', '@INPUT@'],
  )

fixed_src = custom_target('patch-output',
  output : ['gtk-image-viewer-fixed.c'],
  input : 'gtk-image-viewer.c',
  command : [patch_src, 'gtk-image-viewer.c','@OUTPUT@'],
  )

Я, очевидно, получаю сообщение об ошибке gtk-image-viewer.c не найдено, что имеет смысл, поскольку он записан в @OUTPUTDIR@. Но как мне указать мезону искать gtk-image-viewer.c в @OUTPUTDIR@?


person Dov Grobgeld    schedule 04.04.2018    source источник


Ответы (1)


Вы можете передать gen_src[3], например, как input напрямую, и мезон установит зависимости и будет использовать правильный путь к нему.

fixed_src = custom_target('patch-output',
  output : ['gtk-image-viewer-fixed.c'],
  input  : gen_src[3],
  command : [patch_src, '@INPUT@','@OUTPUT@'],
)
person TingPing    schedule 06.04.2018