[cmake-developers] Support for imported targets in CMAKE_REQUIRED_LIBRARIES

Alexander Neundorf neundorf at kde.org
Wed Jan 18 16:24:01 EST 2012


On Wednesday 18 January 2012, Alexander Neundorf wrote:
> Hi,
> 
> the variable CMAKE_REQUIRED_LIBRARIES is used by several of the
> check-modules for listing additional libraries which should be linked.
> It is common to use variables set by Find-modules for this, e.g.
> set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARIES} )
> 
> Now, if the module did not simply set JPEG_LIBRARIES to the full path, but
> instead created an imported target, e.g. FindJPEG::libjpeg, this leads to a
> problem.
> The check-modules will simply append this to the linker command, so there
> will be -lFindJPEG::libjpeg, which will not work.
> This actually happened in KDE the first time more than 2 years ago.
> 
> On cmake stage there is now a branch HandleTargetsInCMakeRequiredLibraries,
> where I ported the solution from KDE to CMake and applied it to all places
> where CMAKE_REQUIRED_LIBRARIES is used.
> I did not test it yet (but it should work, since it is exactly the same as
> in KDE).
> 
> Please have a look at it.
It's here:
http://cmake.org/gitweb?p=stage/cmake.git;a=log;h=refs/heads/HandleTargetsInCMakeRequiredLibraries

Alex



More information about the cmake-developers mailing list