Используйте-isystem вместо-I с CMake

Есть ли какой-либо путь в CMake, чтобы вынудить путь, указанный через include_directories (или возможно через другую функцию) использовать флаг-isystem вместо флага-I при создании с gcc?

См. http://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html#Directory-Options для получения дополнительной информации о-I и-isystem.

48
задан JRM 30 July 2010 в 11:47
поделиться

2 ответа

Да, вы заставляете путь быть включенным в систему с помощью необязательного флага SYSTEM

include_directories(SYSTEM path)

http://www.cmake.org/cmake/help/cmake-2-8-docs .html # command: include_directories

Начиная с CMake 2.8.12 вы можете использовать новые target_include_directories для включения системных каталогов на целевом уровне, одновременно используя новые функции требований использования cmake:

target_include_directories(foo SYSTEM PUBLIC path)

Теперь target foo будет использовать путь как система, и все, что связано с foo также будет использовать path так же автоматически, как и системное включение. Вы можете контролировать распространение этих требований использования, изменив ключевое слово PUBLIC на PRIVATE или INTERFACE.

http://cmake.org/cmake/help/v2.8.12/cmake.html#command:target_include_directories

61
ответ дан 26 November 2019 в 18:58
поделиться

Вы можете попробовать использовать CMAKE_C_FLAGS и CMAKE_CXX_FLAGS для добавления дополнительных флагов.

-5
ответ дан 26 November 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: