[cmake-developers] An option to set LINK_INTERFACE_LIBRARIES to empty on all shared library targets?
Rolf Eike Beer
eike at sf-mail.de
Sat Oct 1 08:15:43 EDT 2011
Am Samstag 01 Oktober 2011, 13:57:09 schrieb Stephen Kelly:
> Rolf Eike Beer wrote:
> >> > The "tricky" part of this is to tell CMake to not enforce the
> >> > implicit
> >> > dependencies to be exported when creating an export file for
> >> > targets
> >> > created with this property enabled. Or better: to not enforce
> >> > _any_
> >> > dependencies of a shared library to be exported then.
> >>
> >> I don't think I understand your description of the tricky part or your
> >> suggested solution. Can you expand on it?
> >
> > What I once tried to do was: build a bunch of libraries (both shared and
> > static), link in some ways, and then export just one shared library that
> > had the link dependencies set to empty. CMake didn't let me, it always
> > wanted to have me export all the other stuff, too.
>
> When you talk about exports you're talking about install(foo EXPORTS ...)
> right?
Yes.
> And when you say CMake didn't let you, do you mean that the installed
>
> lib/cmake/foo/fooTargets-debug.cmake
>
> contains
>
> IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG "Bar;Baz"
>
> though it shouldn't contain Baz? What did you do to make it not contain Baz,
> assuming I've restated your issue correctly?
Nope, it gave me a CMake error when trying to make an export for Bar because
it depends on Baz and Baz wasn't exported.
At the end I just exported everything for our local build stuff and didn't
pass any of these files to users that could have used them, but provided a
Find*.cmake for them.
Eike
More information about the cmake-developers
mailing list