Есть ли какой-либо путь в CMake, чтобы вынудить путь, указанный через include_directories (или возможно через другую функцию) использовать флаг-isystem вместо флага-I при создании с gcc?
См. http://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html#Directory-Options для получения дополнительной информации о-I и-isystem.
Да, вы заставляете путь быть включенным в систему с помощью необязательного флага 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
Вы можете попробовать использовать CMAKE_C_FLAGS
и CMAKE_CXX_FLAGS
для добавления дополнительных флагов.