Требуется ясность в свойстве CMAKE_NO_SYSTEM_FROM_IMPORTED - PullRequest
0 голосов
/ 22 февраля 2019

Многие из проектов с открытым исходным кодом включают набор каталогов с атрибутом CMake SYSTEM.При этом эти файлы заголовков предоставляются gcc с параметром -isystem:

include_directories(SYSTEM ${pybind11_INCLUDE_DIRS})

При включении заголовков C ++ с использованием -isystem возникают проблемы в AIX, поскольку gcc в AIX по умолчанию добавляет неявные extern "C" дляЗаголовки включены с опцией -isystem.Это вызывает templates in extern "C" ошибок в AIX.(Более подробную информацию можно найти по адресу здесь )

Итак, мы пытались выяснить, можем ли мы использовать любую функцию CMake, чтобы использовать опцию -I для этих заголовков C ++, хотя они включеныс опцией SYSTEM в AIX.В противном случае нам нужно изменить целый ряд вызовов include_directories() в этих проектах только для AIX.

Я обнаружил атрибут CMAKE_NO_SYSTEM_FROM_IMPORTED, который устанавливает значение по умолчанию NO_SYSTEM_FROM_IMPORTED для целей.Но его установка не переопределяет атрибут SYSTEM, установленный в include_directories().

Пожалуйста, дайте мне знать, правильно ли мы используем CMAKE_NO_SYSTEM_FROM_IMPORTED и есть ли какая-либо другая опция CMake для достижения вышеуказанного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...