/
niceSOFT
/
cmake
Обзор
Документация
Войти
/
niceSOFT
/
cmake
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Help/guide/tutorial/Step2/Exercise2.cmake
51 строка
1 KB
Vito Gamberini
Tutorial: Rewrite using conventions enabled by CMake 3.23
17 сен 2025, 18:57
17 сен 2025, 18:57
b2e3e3e
Код
Авторство
О чём код?
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()