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 above
- function(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()
|