Add SYSTEM target property to mark in-tree targets as third-party code
This will allow third-party code vendored within a project source tree to be treated as if imported as a system library. Doing so will help suppress warnings in the third-party's header files when used from other first-party code in the same build.
Original Description
Add SYSTEM keyword to target_link_libraries. This could allow to signal that includes of provided items (in case a target name is given) should be treated as system includes.
target_link_libraries(<target>
[SYSTEM] <PRIVATE|PUBLIC|INTERFACE> <item>...
[[SYSTEM]<PRIVATE|PUBLIC|INTERFACE> <item>...]...)
This will allow users to make use of more warnings without getting insane when using other projects like v8, rocksdb, s2geometry in their repository. Maintaining forks of those projects is hard and not all operating systems provide nice ready to install packages that will be found by CMake.
Edited by Brad King