[CMake] Getting library name from library target to pass to legacy Makefile

Marc CHEVRIER marc.chevrier at gmail.com
Mon Jul 22 02:03:52 EDT 2019


You can use generator expression TARGET_FILE_BASE_NAME, available with version 3.15.
Le 22 juil. 2019 à 05:24 +0200, Dustyn Blasig <dustyn at blasig.us>, a écrit :
> Hi All,
>
> I am integrating a legacy Makefile with our CMake flow, and need to pass the name of a CMake library target to the Makefile via add_custom_command(). The library uses the OUTPUT_NAME property to override the default.
>
> add_library(foo_lib SHARED ...)
> set_target_properties(foo_lib PROPERTIES OUTPUT_NAME foo) # Generates libfoo.so
> add_custom_command(... COMMAND make ... FOO_LIB_LINKER_NAME=<????> ...)
>
> I need <????> to be the value passed to -l of g++, namely -lfoo or -lfood for debug builds. I can't seem to find an expression/property that gives this shortened name. The generator expressions like TARGET_LINKER_FILE_NAME give libfoo.so.
>
> What is the appropriate way to get just the stem of the library with the configuration-specific suffix if needed?
>
> Thanks!
> --
>
> 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:
> https://cmake.org/mailman/listinfo/cmake
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190722/bea42123/attachment.html>


More information about the CMake mailing list