Improved export-sets in CMake

Alexander Neundorf neundorf at kde.org
Mon Aug 13 20:17:14 UTC 2012


On Monday 04 June 2012, Stephen Kelly wrote:
> Stephen Kelly wrote:
> > Yury G.  Kudryashov <urkud.urkud <at> gmail.com> writes:
> >> > After that I'd post to the cmake list for initial feedback.
> >> 
> >> `git bisect` tells me that 'Remove cmTargetExport constructor'
> >> (07901863b6) makes test #53 (ExportImport) fail. I fail to understand
> >> why.
> > 
> > I looked into this, and the problem is that you do not initialize the
> > FrameworkGenerator member, and the class has no default ctor to
> > initialize
> > 
> > it either. You need a line like:
> >       te->FrameworkGenerator = frameworkGenerator;
> 
> Ah, looks like you figured that out last month.
> 
> > Please also add a test or extend the existing test. Also, why is the
> > content of 9bbb00ef9214aef75152f4b8c6147294a57b2103 in a separate commit?
> > It would make sense to add that stuff in the commit that adds the class.
> > 
> > Do you have time to finish this feature?

Ok, cmake 2.8.9 has been released.

How does actually the interface for this proposed extension look like ?

Currently I could do the following:

------------------------------------

add_library(foo SHARED foo.c)

install(TARGETS foo EXPORT FooExport DESTINATION lib )
install(TARGETS foo EXPORT FooExportX DESTINATION libx )

install(EXPORT FooExport  DESTINATION lib/foo )
install(EXPORT FooExport  DESTINATION lib/foo2 )
install(EXPORT FooExportX DESTINATION lib/fooX )

add_library(bar SHARED bar.c)
target_link_libraries(bar foo)

install(TARGETS bar EXPORT BarExport DESTINATION lib )

install(EXPORT BarExport DESTINATION lib/bar )

------------------------------------

and I would get the error with the BarExport export set, that it does not 
contain target foo, which it depends on.

Just to show what is possible, I added those two additional install(EXPORT ..) 
commands, one where the same export is installed to a different location, and 
a second one where the same target is installed to two different locations, 
each with a separate export set.

So, how is this intended to be handled ?

Alex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-buildsystem/attachments/20120813/3e2db6ff/attachment.html>


More information about the Kde-buildsystem mailing list