Замена препроцессора Xcode пользовательским процессом

Мне нужно просмотреть файлы, которые Xcode скомпилирует, прежде чем препроцессор нанесет на них удар. Короче говоря, мне нужно перед препроцессором воткнуть препроцессор.

Весь поиск в Google не дал мне ничего, когда дело доходит до подробностей о том, как запустить процесс сборки Xcode по умолчанию для файлов на основе C после изменения правила сборки для «исходных файлов C». Xcode, кажется, вызывает процесс (скрипт оболочки? пение вуду?) под названием «CompileC», но я не могу найти его, чтобы вызвать его самостоятельно после того, как я закончу с исходным файлом.

Любые идеи? Для любопытных: мне нужно изменить определенные макросы в очень специфических ситуациях (например, в зависимости от имени исходного файла или даты сборки). И, похоже, нет умного способа сделать это: #ifdef filename="bobsyeruncle.m"


person MyztikJenz    schedule 26.10.2009    source источник
comment
Как вы можете получить объектный файл до того, как компилятор его сгенерирует?   -  person Azeem.Butt    schedule 26.10.2009
comment
И зачем ему суффикс .m?   -  person Azeem.Butt    schedule 26.10.2009
comment
Не объектный файл, а исходный файл. Извините, я исправлю вопрос, чтобы быть более ясным.   -  person MyztikJenz    schedule 27.10.2009
comment
Разве FILE не сделает то, что вы хотите?   -  person Azeem.Butt    schedule 27.10.2009
comment
Markdown съел символы подчеркивания ФАЙЛ   -  person Azeem.Butt    schedule 27.10.2009
comment
Ну ладно, поставьте два символа подчеркивания с каждой стороны, и вот имя файла, которое использует препроцессор.   -  person Azeem.Butt    schedule 27.10.2009
comment
Не похоже, что FILE будет делать то, что мне нужно. Хотя я могу получить имя файла (или дату с DATE), я не могу принимать какие-либо решения на основе их значений. #if FILE == debugFile.m сообщает мне, что debugFile.m является недопустимым токеном препроцессора.   -  person MyztikJenz    schedule 27.10.2009


Ответы (1)


Похоже, сценарий правила сборки будет работать: http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/200-Build_Phases/bs_build_phases.html#//apple_ref/doc/uid/TP40002690-CJAEACAD

person Anderson    schedule 06.02.2010