[cmake-developers] [ANNOUNCE] CMake 3.12.0-rc2 is ready for testing
Patrick Stotko
stotko at informatik.uni-bonn.de
Sat Jun 30 17:03:49 EDT 2018
It seems that CMake does not find PkgConfig::GooCanvas because it is
imported but not globally imported, i.e. it is maybe a visibility problem.
For reference, the relaxation of this limitation
(https://gitlab.kitware.com/cmake/cmake/merge_requests/2040) is covered
by this additional check for the LHS target:
https://gitlab.kitware.com/cmake/cmake/blob/c9349cc1b94a08b4f5ed86a397e72ceed50847dd/Source/cmTargetLinkLibrariesCommand.cxx#L383
Maybe a corresponding check for locally imported RHS targets is missing
here:
https://gitlab.kitware.com/cmake/cmake/blob/c9349cc1b94a08b4f5ed86a397e72ceed50847dd/Source/cmTargetLinkLibrariesCommand.cxx#L396
Best regards,
Patrick Stotko
Am 30.06.2018 um 21:15 schrieb Rolf Eike Beer:
>> * The "target_link_libraries()" command may now be called to modify
>> targets created outside the current directory.
> I played a bit around with that as I hope it would simplify some things in
> OSM2go, but it looks there are still some limitations:
>
> in main:
>
> add_library(osm2go_lib ...)
>
> add_subdirectory(sub)
>
> in sub:
>
> pkg_search_module(GooCanvas REQUIRED IMPORTED_TARGET goocanvas)
> target_sources(osm2go_lib PRIVATE
> src/platforms/gtk/canvas_goocanvas.cpp
> )
> target_link_libraries(osm2go_lib PRIVATE PkgConfig::GooCanvas)
>
> Breaks:
>
> CMake Error at CMakeLists.txt:43 (add_library):
> Target "osm2go_lib" links to target "PkgConfig::GooCanvas" but the target
> was not found. Perhaps a find_package() call is missing for an IMPORTED
> target, or an ALIAS target is missing?
>
> Is this intended to work?
>
> There is an easy workaround, but it feels nasty:
>
> add_library(osm2go_x_lib INTERFACE)
> target_link_libraries(osm2go_x_lib INTERFACE PkgConfig::GooCanvas)
> target_link_libraries(osm2go_lib PRIVATE osm2go_x_lib)
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake-developers/attachments/20180630/9cccef1d/attachment.html>
More information about the cmake-developers
mailing list