По сути, я использую команду 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