target_link_libraries(A B)
's affect on A
is the same as target_link_libraries(A PUBLIC B)
. However, if there are multiple calls to target_link_libraries(A ...)
, they all need to be either plain or keyword. CMP0023 disallowed mixing them. These days the PUBLIC/PRIVATE/INTERFACE
keywords are preferred. As discussed in CMake Issue 25981, the target_link_libraries
documentation could use an overhaul to present the modern conventions first.