I see. We may be able to work with this. Thanks a lot! generator expressions don't work with LINK_FLAGS (though I heard they will be supported in LINK_OPTIONS in 3.13, which would require us to migrate. But even then, generator expressions don't support and logic around this like file(GNERATE ..) or string(REPLACE ..) that our (cmake-) files use frequently. i.e. we are changing paths to upload on an Android target. Another big issue is that we are using the target name for add_test commands, i.e. in order to compute some library names based on the target name as part of the test command. I can't use file(GENERATE to derive the target name and put the add_test part into a .cmake script because add_test is not scriptable. Thanks.
On Mon, Nov 5, 2018 at 10:21 AM Robert Maynard <robert.mayn...@kitware.com> wrote: > Yes, you can do that. I don't know if there is an easier way than the > following: > > function(get_full_name target full_name) > get_target_property(name ${target} NAME) > get_target_property(suffix ${target} SUFFIX) > get_target_property(prefix ${target} PREFIX) > get_target_property(type ${target} TYPE) > > if(NOT prefix) > set(prefix ${CMAKE_${type}_PREFIX}) > endif() > > if(NOT suffix) > set(suffix ${CMAKE_${type}_SUFFIX}) > endif() > > set(${full_name} "${prefix}${name}${suffix}" PARENT_SCOPE) > endfunction() > > You will need to modify it if you want to support custom per config > names. Unless you really needs this information at configuration you > should use the $<TARGET_FILE_NAME:tgt> generator expression as it will > always be correct. > On Mon, Nov 5, 2018 at 1:04 PM Hendrik Greving > <hendrik.greving....@gmail.com> wrote: > > > > The name property doesn't return the library name for libraries, i.e. on > Linux, no lib prefix and .so suffix. Also the PREFIX and SUFFIX (see above) > don't appear to be set. Is it possible to retrieve the default library name > on a given platform? > > > > On Mon, Nov 5, 2018 at 9:57 AM Robert Maynard < > robert.mayn...@kitware.com> wrote: > >> > >> That is correct behavior. OUTPUT_NAME is a customization point to > >> allow projects to change the name, so if it isn't set CMake will use > >> the NAME property. > >> On Mon, Nov 5, 2018 at 12:42 PM Hendrik Greving > >> <hendrik.greving....@gmail.com> wrote: > >> > > >> > I think OUTPUT_NAME is not set by default. I am getting var-NOTFOUND > >> > Same for RUNTIME_OUTPUT_NAME, LIBRARY_OUTPUT_NAME, PREFIX and SUFFIX > >> > > >> > On Mon, Nov 5, 2018 at 9:26 AM Robert Maynard < > robert.mayn...@kitware.com> wrote: > >> >> > >> >> At configure time you query OUTPUT_NAME target property > >> >> (https://cmake.org/cmake/help/v3.11/prop_tgt/OUTPUT_NAME.html) and > if > >> >> not set you use NAME ( > >> >> https://cmake.org/cmake/help/v3.11/prop_tgt/NAME.html ) > >> >> On Mon, Nov 5, 2018 at 11:48 AM Hendrik Greving > >> >> <hendrik.greving....@gmail.com> wrote: > >> >> > > >> >> > Hi, is there a way to get the default library or executable name > at configure time (except obsolete LOCATION property)? i.e. > lib${target_name}.so in Linux, where target_name is NAME target property? > Thanks in advance. > >> >> > -- > >> >> > > >> >> > 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 >
-- 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