I want to check whether a lists contains a specific entry like in the following code snipplet:
macro(foo)
if ($(ARGN} contains "bar")
...
endif
endmacro()
CMake does not offer a contains
. What is best / easiest way to get the desired result?
In CMake's wiki I found a LIST_CONTAINS macro, but the wiki page is outdated. Is this still the best way to go or has CMake gained new capabilities?
Fewer lines:
But see the
IN_LIST
syntax from @sakra for a more-modern syntax.I have been using one liner like
if ("${PLATFORM}" MATCHES "^(os|ios|android|linux|win32)$")
to check ifPLATFORM
is in the listWith CMake 3.3 or later, the
if
command supports anIN_LIST
operator, e.g.:For older versions of CMake, you can use the built-in list(FIND) function: