Brad King wrote: > Okay, I think we've had some confusion due to differing assumptions > about the meaning of "old" and "new" tll signatures. Let me be more > explicit. For the signature policy, there are two groups of signatures: > > * Group A (what I called "old" signatures): > > target_link_libraries(lhs a b c) > target_link_libraries(lhs LINK_INTERFACE_LIBRARIES a b c) > > * Group B (what I called "new" signatures): > > target_link_libraries(lhs LINK_PUBLIC a LINK_PRIVATE b LINK_INTERFACE c) > target_link_libraries(lhs PUBLIC a PRIVATE b INTERFACE c)
Is it really worthwhile to introduce both INTERFACE and LINK_INTERFACE? > The semantics of the two group B signatures are *identical*. There > is absolutely ZERO distinction between PUBLIC and LINK_PUBLIC. Ok. So, * LINK_PUBLIC is treated as an alias for PUBLIC * LINK_PRIVATE is treated as an alias for PRIVATE * LINK_INTERFACE_LIBRARIES is *not* treated as an ALIAS for INTERFACE Correct? > I expected to see things like > > - else if(args[i] == "LINK_PUBLIC") > + else if(args[i] == "PUBLIC" || args[i] == "LINK_PUBLIC") That would mean mixtures like this would be allowed: target_link_libraries(lhs LINK_PUBLIC a PRIVATE b) Should they be? > Now, the signature policy should have the following behavior: > > * OLD: Group A *and* group B can be used for one lhs > * NEW: Group A *xor* group B can be used for one lhs Right. Thanks, Steve. -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
