Параметры компиляции CMake только для теста компиляции - PullRequest
1 голос
/ 04 апреля 2019

Я использую CMake для кросс-компиляции проекта C для встроенной (гетерогенной) многоядерной системы.Компилятор принимает обязательный аргумент (-t<type>, тип цели).Этот флаг должен быть установлен для прохождения теста компилятора CMake.Я добавляю этот флаг в файл набора инструментов следующим образом:

add_compile_options(-tMYPLATFORMTYPE)

Проблема с этим подходом состоит в том, что все файлы проекта будут скомпилированы с этим флагом.Есть ли способ настроить флаги компиляции только для тестовой компиляции, не затрагивая основную конфигурацию проекта?(Примечание: в проекте разные файлы должны иметь разные значения для этого флага.)

Я ищу что-то вроде:

set(CMAKE_TRY_COMPILE_COMPILE_OPTIONS "-tMYPLATFORMTYPE")

Я мог отключить тест компиляции, но я бы предпочел оставить его.

1 Ответ

0 голосов
/ 04 апреля 2019

Вы можете проверить свойство IN_TRY_COMPILE и установить флаг только для конфигураций try-compile:

get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
if(IS_IN_TRY_COMPILE)
    add_compile_options(-tMYPLATFORMTYPE)
endif()
...