[CMake] add_dependencies: Disallow use with INTERFACE_LIBRARY. WHY?!?

Andrey Pokrovskiy wonder.mice at gmail.com
Tue Feb 17 20:14:24 EST 2015


Hi,

Current CMake disallows Interface Libraries to have dependencies.
However, I suspect that was done for a reason. Here is the commit for
that change:

  commit 6db7e6d24c68085f16dcf6d8a86ae0f74e9a1f01
  Author: Stephen Kelly <steveire at gmail.com>
  Date:   Wed Dec 25 15:11:50 2013 +0100
     add_dependencies: Disallow use with INTERFACE_LIBRARY.

It says what it does but not why...

>From CMake documentation: "A primary use-case for INTERFACE libraries
is header-only libraries".
But what if those headers are generated during build time? Or what if
it depends on libraries that are part of the build? Or what if that
library is a result of ExternalProject_Add()?

I though about it and I can't come with any idea why that was
explicitly disallowed. Maybe it's possible to allow it back? Any
ideas?


More information about the CMake mailing list