Дерево зависимостей с использованием модулей Clang TS

Я рассмотрел несколько примеров, демонстрирующих новые возможности модулей Clang. Насколько я понял, для того, чтобы построить набор .cppm файлы, мне нужно:

  • Прекомпилируйте каждый из них в .pcm,
  • Компилировать каждый .o объект, как я бы сделал до модулей.
  • Свяжите все вместе.

Например, если у меня есть hello.mxx, hello.cxx а также main.cxx файл в src папку, я иду вперед и запускаю следующее:

$CXX -std=c++2a -fmodules-ts --precompile -x c++-module -Xclang -fmodules-embed-all-files -Xclang -fmodules-codegen -Xclang -fmodules-debuginfo -o pcm/hello.pcm src/hello.mxx

$CXX -std=c++2a -fmodules-ts -o obj/hello.pcm.o -c pcm/hello.pcm
$CXX -std=c++2a -fmodules-ts -x c++ -o obj/hello.cxx.o -fmodule-file=pcm/hello.pcm -c src/hello.cxx

$CXX -std=c++2a -fmodules-ts -x c++ -o obj/main.cxx.o -fmodule-file=pcm/hello.pcm -c src/main.cxx

$CXX -o hello obj/*.o

Все идет нормально. Теперь я хочу масштабировать все это до проекта, который больше, чем два файла. Используя, например, обычный старый makeЯ бы использовал -MMD -MP Флаги при компиляции каждого файла для определения дерева зависимостей. Всякий раз, когда редактируется заголовок, я могу легко перекомпилировать только те объекты, на которые влияет редактирование.

Как я могу добиться того же?

Более того, при использовании #includes можно просто скомпилировать каждый объект отдельно и в произвольном порядке, здесь мне нужно сначала скомпилировать зависимости каждого модуля перед компиляцией модуля.

Я что-то пропустил? Я понимаю, весь этот вопрос, вероятно, сбивает с толку.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector