CMake笔记:PUBLIC/PRIVATE/INTERFACE的使用
基本介绍
PUBLIC: 自身以及依赖我者使用
PRIVATE: 只有自身使用
INTERFACE: 只有依赖我者使用
举例
PUBLIC: 宏BASE_TEST在base\math库中均有定义
PRIVATE: 宏BASE_TEST只在base库中有定义
INTERFACE:宏BASE_TEST只在math库中定义,在base库中没有
base库
add_library(base base.cpp)
target_compile_definitions(base INTERFACE BASE_TEST)
math库
add_library(math math.cpp)
target_link_libraries(math base)
visual studio中测试
target_link_libraries、target_compile_definitions在visual studio 2019中实际测试均是以上结果