许多开源项目包括一组带有CMake的SYSTEM
属性的目录。这样,这些头文件通过-isystem
选项提供给gcc:
include_directories(SYSTEM ${pybind11_INCLUDE_DIRS})
使用-isystem
包含C ++头在AIX上存在问题,因为默认情况下AIX上的gcc为extern "C"
选项中包含的头添加了隐式-isystem
。这会在AIX上导致templates in extern "C"
错误。 (更多详细信息,请访问here)
因此,我们试图查看我们是否可以使用任何CMake功能来将-I
选项用于这些C ++头,尽管AIX的SYSTEM
选项中包含了这些选项。否则,我们需要仅在AIX中更改这些项目中的许多include_directories()
调用。
我遇到了CMAKE_NO_SYSTEM_FROM_IMPORTED
属性,该属性为目标设置了NO_SYSTEM_FROM_IMPORTED
的默认值。但是,设置它不会覆盖SYSTEM
中设置的include_directories()
属性。
请让我知道我们是否正确使用了CMAKE_NO_SYSTEM_FROM_IMPORTED
,是否还有其他CMake选项可以实现以上目标。