Operator IN_LIST in generator expressions will be available in CMake version 3.12, (i.e. the next version). In the meantime, I am afraid there is no solution in the context of generator expressions. However, you can directly use the contents of the property in your CMakeLists.txt. Example: get_property (link_libs TARGET mytarget PROPERTY LINK_LIBRARIES) if (“mylib” IN_LIST link_libs) … endif()
The only difference is the evaluation time: * Generator expressions are evaluated after all CMakeLists.txt processing, so any changes to the target done AFTER the use of $<TARGET_PROPERTY:LINK_LIBRARIES> will be taken into account. * Using get_property: evaluation is done at the point where the command is used, so any changes done AFTER will NOT be taken into account From: CMake <cmake-boun...@cmake.org> on behalf of Sam Edwards <cfswo...@gmail.com> Date: Saturday 7 April 2018 at 23:35 To: "cmake@cmake.org" <cmake@cmake.org> Subject: [CMake] Generator expression for "is in list"? Hello list! I'm trying to write a generator expression that only evaluates if my target is directly (not transitively) linked into the consuming target. I figured the easiest way to do that would be to test if the target's name appears in $<TARGET_PROPERTY:LINK_LIBRARIES>, however I'm not seeing a generator expression for substring or "string in list" tests. What is the preferred way to accomplish this? Best, Sam
-- 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