[CMake] PROPERTY for list of link libraries

J Decker d3ck0r at gmail.com
Fri Jan 22 10:42:45 EST 2016


LOCATION was/is deprecated... the preferred method is generator expressions
https://cmake.org/cmake/help/v3.3/manual/cmake-generator-expressions.7.html
$<TARGET_FILE_DIR:tgt>
$<TARGET_FILE_NAME:tgt>

On Fri, Jan 22, 2016 at 7:19 AM, Tom Kacvinsky
<tom.kacvinsky at vectorcast.com> wrote:
> On Fri, Jan 22, 2016 at 9:23 AM, Tom Kacvinsky
> <tom.kacvinsky at vectorcast.com> wrote:
>> I have need for a cross platform methods of getting libraries linked
>> into an executable.
>>
>> Say for instance, we have
>>
>> add_library(foo STATIC a.c)
>> add_exceutable(bar b.c)
>> target_link_libraries(bar foo)
>>
>> So I know for that bar has a dependency on foo.lib (on Windows) and
>> libfoo.a on Linux.
>>
>> And so forth.  What I would like to do is after everything is set up,
>> query the properties of bar
>> and find the list of libraries linked into bar in such a fashion I get
>> that platform's specific library name (instead of the library's target
>> name).
>>
>> IS this possible?  I read the docs and didn't see a property for
>> getting this list.  Did I miss something?  If so I plan on using
>> either get_property of get_target_property.
>>
>> Thanks.
>
> Answering my own question
>
> get_property(libs TARGET a_target PROPERTY LINK_LIBRARIES)
> foreach(lib ${libs})
>   if(TARGET ${lib})
>     get_property(path TARGET ${lib} PROPERTY LOCATION)
>     message(STATUS ${path})
>   else()
>     message(STATUS ${lib})
>   endif()
> endforeach()
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake


More information about the CMake mailing list