У меня есть проект 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
, ничего не происходит.
Есть ли простое решение для этого, возможно, с использованием конфигураций?