G CC генерация зависимости; сохранить исходную структуру каталогов целей для модификации - PullRequest
0 голосов
/ 11 апреля 2020

По сути, я использую команду g++ -MM Source/Somefolder/foo.cpp, это, очевидно, сгенерирует вывод, такой как:

foo.o: Source/Somefolder/foo.cpp Source/Somefolder/../base.h \
  Source/Somefolder/foo2.h Source/Somefolder/foo.h
#... Other targets & dependency's

Я хочу сохранить структуру каталога цели (foo.o: ...) пропорционально рабочему каталогу где g++ было выполнено, в результате чего:

Source/Somefolder/foo.o: Source/Somefolder/foo.cpp Source/Somefolder/../base.h \
  Source/Somefolder/foo2.h Source/Somefolder/foo.h
#... Other targets & dependency's

Я также хотел бы как-то изменить значение целей. Что было бы идеально, так это регулярное выражение для извлечения групп и какое-то форматирование для объединения их вместе. Если это невозможно сделать напрямую с помощью g ++, то это нормально, я уверен, что есть какая-то команда, которую я могу выполнить, чтобы изменить выходной файл, или даже через канал, чтобы это исправить. Что было бы идеально, так это регулярное выражение для извлечения групп и какое-то форматирование для объединения их вместе. В результате этого:

Регулярное выражение: /^.*?\/(.*)$/g
Форматирование: Build/%1

Build/Somefolder/foo.o: Source/Somefolder/foo.cpp Source/Somefolder/../base.h \
  Source/Somefolder/foo2.h Source/Somefolder/foo.h
#... Other targets & dependency's
...