当创建动态库时,
- 如果源文件(例如CPP)中包含第三方头文件,但是头文件(例如hpp)中不包含该第三方文件头,采用PRIVATE。
- 如果源文件和头文件中都包含该第三方文件头,采用PUBLIC。
- 如果头文件中包含该第三方文件头,但是源文件(例如CPP)中不包含,采用 INTERFACE。
原文:CMake target_link_libraries Interface Dependencies
/questions/26037954/cmake-target-link-libraries-interface-dependencies
其他属性可以参考/cmake/help/v3.0/manual/cmake-buildsystem.#transitive-usage-requirements