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

Reply via email to