[CMake] Generator expression for "is in list"?
CHEVRIER, Marc
marc.chevrier at sap.com
Mon Apr 9 03:00:19 EDT 2018
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-bounces at cmake.org> on behalf of Sam Edwards <cfsworks at gmail.com>
Date: Saturday 7 April 2018 at 23:35
To: "cmake at cmake.org" <cmake at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20180409/94800f32/attachment.html>
More information about the CMake
mailing list