On 02/20/2013 03:44 AM, Stephen Kelly wrote: > Brad King wrote: >> I think what we need is for the cmTarget::LinkInterface structure >> to have a new "TargetNames" member populated by ComputeLinkInterface >> from a new "INTERFACE_TARGET_DEPENDS" property (better names?). >> On export of the link interfaces the net collection of target names >> that refer to targets imported by the exporting project should be >> put in this property. Then cmComputeLinkDepends can complain when >> following the link interface and a library with one of these names >> cannot be found as a target. >> > I may have missed something, but I've pushed a missing-imported-targets- > error branch to my clone which is quite simple. I haven't put a lot of > thought into it. It's just a proof of concept.
Wonderful start. Thanks for working on it. Alex, does this do what you want? As for the implementation itself: + // TODO: The link interface is config-dependent, so possibly this should + // be too. Yes. However, how will this tie into a future INTERFACE_LINK_LIBRARIES? Perhaps at that time we can use $<TARGET_NAME:...> to know that names should be targets since the property value won't have to work with older CMake versions. For now let's call it something like IMPORTED_LINK_INTERFACE_TARGETS_<CONFIG> instead of INTERFACE_TARGET_DEPENDS. It makes sense only for imported targets anyway. It should be documented for use only in producing this error message and have no other effects. For the error message: + e << "The target " << this->GetName() << " depends on the " + "IMPORTED target " << *li << ", which does not exist."; let's make it clear that the target *expects* the name to be an imported target. Something like: Imported target "<a>" expects a target "<b>" to be imported, but no such imported target exists. Thanks, -Brad -- 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
