| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | cmake_minimum_required(VERSION 3.23)function(FilterFoo OutVar)# TODO3: Search all the variables in the argument list passed to FilterFoo,#        and place those containing "Foo" into the list named by "OutVar"  set(${OutVar} ${${OutVar}} PARENT_SCOPE)endfunction()# Testing for the abovefunction(check_contains var)  if(NOT var IN_LIST OutList)    message(WARNING "OutList does not contain: ${var}")    set(Failed True PARENT_SCOPE)  endif()endfunction()function(check_nonfoo)  list(FILTER ARGN EXCLUDE REGEX Foo)  if(NOT ARGN STREQUAL "")    message(WARNING "OutList contains extra item(s): ${ARGN}")    set(Failed True PARENT_SCOPE)  endif()endfunction()if(SKIP_TESTS)  return()endif()set(InList FooBar BarBaz FooBaz BazBar QuxFoo BazQux)FilterFoo(OutList ${InList})if(NOT DEFINED OutList)  message("FilterFoo unimplemented or does nothing")  return()endif()set(Failed False)check_contains(FooBar)check_contains(FooBaz)check_contains(QuxFoo)check_nonfoo(${OutList})if(NOT Failed)  message("Success!")endif()
 |