LINUX.ORG.RU

История изменений

Исправление dimgel, (текущая версия) :

clang-scan-deps не нужен.

  1. На вход берёт https://clang.llvm.org/docs/JSONCompilationDatabase.html, на выходе make-правила – зависимости (вместо нужного мне module map), которые мне мне gcc и так уже генерит. Причём:

  2. Выплёвывает в stdout все зависимости всех файлов скопом – а не как в .d-файлах, где у каждого сорца свой файл с зависимостями.

  3. Нет опции «без системных инклудов», в отличие от gcc.

  4. При анализе сорца, содержащего import myModule, clang-scan-deps ругнулся «модуль myModule не найден». Разумеется он не найден, ты сука тупая, я тебя вызвал чтобы зависимости сгенерить перед компиляцией в т.ч. этих самых модулей. Так что степень корректности генерируемых правил для модулей уже не проверял.

UPD. Впрочем, возможно, что оно пытается найти исходник модуля, и эта ошибка – следствие отсутствия module map.

  1. Ну и брать на вход лог компиляции (чем и является, как выяснилось, compilation database) для того чтобы выяснить требуемый порядок компиляции – это что-то уже за гранью. Вкупе с предыдущм пунктом, у меня не то что матерных – вообще никаких слов нету, чтобы выразить своё отношение.

Исходная версия dimgel, :

clang-scan-deps не нужен.

  1. На вход берёт https://clang.llvm.org/docs/JSONCompilationDatabase.html, на выходе make-правила – зависимости (вместо нужного мне module map), которые мне мне gcc и так уже генерит. Причём:

  2. Выплёвывает в stdout все зависимости всех файлов скопом – а не как в .d-файлах, где у каждого сорца свой файл с зависимостями.

  3. Нет опции «без системных инклудов», в отличие от gcc.

  4. При анализе сорца, содержащего import myModule, clang-scan-deps ругнулся «модуль myModule не найден». Разумеется он не найден, ты сука тупая, я тебя вызвал чтобы зависимости сгенерить перед компиляцией в т.ч. этих самых модулей. Так что степень корректности генерируемых правил для модулей уже не проверял.

  5. Ну и брать на вход лог компиляции (чем и является, как выяснилось, compilation database) для того чтобы выяснить требуемый порядок компиляции – это что-то уже за гранью. Вкупе с предыдущм пунктом, у меня не то что матерных – вообще никаких слов нету, чтобы выразить своё отношение.