gn: добавить предварительно скомпилированные объектные файлы в исполняемый файл - PullRequest
0 голосов
/ 15 марта 2019

У меня есть проект gn и ninja. Представьте, что структура каталогов выглядит следующим образом:

src/
  build/
  module1/
  module2/
  module3/
  main_module/
  BUILD.gn

main_module зависит от module1 и module2, которые, в свою очередь, зависят от module3. Модули 1, 2 и 3 построены как статические библиотеки. Я нахожусь в ситуации, когда мне нужно предоставить некоторые дополнительные предварительно скомпилированные объектные файлы с module3. Они должны быть связаны в конечном исполняемом файле. Как мне добавить эти файлы в цель executable таким образом, чтобы, если позже я добавлю другой исполняемый файл, зависящий от module3, он также будет правильно собран?

Дополнительные .o файлы поступают из внешнего источника, и в идеале я хотел бы копировать их каждый раз, когда собираю. Таким образом, я создал цель copy, которая копирует их в выходной каталог. Проблема заключается в том, что при копировании файлов цель copy неявным образом не включает их в исполняемый файл (который зависит от него).

Я пытался использовать цель source_set, но она предназначена для набора исходных файлов, которые должны быть скомпилированы. Поэтому, когда я указываю .o файлы как sources, ничего не происходит.

Есть ли простое решение для этого, возможно, с использованием конфигураций?

...