Файл цепочки инструментов CMake для пользовательской цепочки инструментов (опция компилятора -c имеет другое значение)

Я пытаюсь создать файл CMake toolchain для компилятора Tasking Aurix (ctc), в котором -c Варианты имеют разное значение:

-c --iso=<year>                    ISO C standard (90, 99) (default: 99)

Можно ли опустить -c параметр для рецептов объектных файлов или, может быть, можно настроить собственный шаблон для таких рецептов?

В настоящее время у меня есть отвратительный обходной путь, поэтому после CMake я вызываю скрипт, который редактирует сгенерированный make-файл и изменяет опцию -c в -c 99 но желательно, чтобы я мог генерировать действительные make-файлы из CMake напрямую.

1 ответ

Решение

ОК, я смог найти решение. Чтобы добиться этого, мне пришлось переписать поведение по умолчанию, установив CMAKE_<LANG>_COMPILE_OBJECT переменная, поэтому в моем случае ниже линии

set(target_compiler ${CMAKE_C_COMPILER})
set(CMAKE_C_FLAGS "-c 99")
set(CMAKE_C_COMPILE_OBJECT "${target_compiler} <INCLUDES> <FLAGS> -o <OBJECT> <SOURCE>")

решил мою проблему

Другие вопросы по тегам