[cmake-developers] Support for imported targets in CMAKE_REQUIRED_LIBRARIES
Alexander Neundorf
neundorf at kde.org
Wed Jan 18 16:18:19 EST 2012
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.
Alex
More information about the cmake-developers
mailing list