Google Test System Includes

Google test is using system interface includes. This does not work for my project/build, so I am trying to not have those interface includes be -isystem. I did the following…


Instead I’ve had to resort to just wiping out the system directories.


Unfortunately even clearing the target properties explicitly, system includes are still showing up…

Note this set and add_subdirectory is before adding my other targets as well. However, the INTERFACE includes of google test are still being used as -isystem. Any idea why?

After using

set_target_properties(gmock gtest gtest_main gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "")

My issue seems to be resolved. But I still wonder why CMAKE_NO_SYSTEM_FROM_IMPORTED wasn’t working?

The variable governs the treatment of include directories of imported targets. Imported targets are usually created behind the scenes of find_package() and you use such imported targets by means of target_link_libraries(). In your case, you used add_subdirectory() which, essentially, does what googletest/CMakeLists.txt does and that does not involve imported targets.

See to learn more about imported targets.