/
niceSOFT
/
cmake
Обзор
Документация
Войти
/
niceSOFT
/
cmake
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Help/guide/tutorial/Step2/Exercise1.cmake
72 строки
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) # TODO1: Implement MacroAppend macro(MacroAppend ListVar Value) endmacro() # TODO2: Call MacroAppend, then return the value from FuncAppend function(FuncAppend ListVar Value) endfunction() # Testing for the above, final expected value is "Alpha;Beta;Gamma;Delta" if(SKIP_TESTS) return() endif() set(Original "Beta;Gamma") set(Expected "Alpha;Beta;Gamma;Delta") set(BeginList ${Original}) set(EndList "Alpha") MacroAppend(BeginList "Delta") foreach(value IN LISTS BeginList) MacroAppend(EndList ${value}) endforeach() if(BeginList STREQUAL Original) message("MacroAppend unimplemented or did nothing") elseif(NOT EndList STREQUAL Expected) message(WARNING "MacroAppend error, final value: ${EndList}") else() message("MacroAppend correct") endif() set(BeginList ${Original}) set(EndList "Alpha") FuncAppend(BeginList "Delta") foreach(value IN LISTS BeginList) FuncAppend(EndList ${value}) endforeach() if(BeginList STREQUAL Original) message("FuncAppend unimplemented or did nothing") elseif(NOT EndList STREQUAL Expected) message(WARNING "FuncAppend error, final value: ${EndList}") else() message("FuncAppend correct") endif() # Bonus Tests FuncAppend(UndefinedList "Test") set(EmptyList "") FuncAppend(EmptyList "Test") set(FalseList "False") FuncAppend(FalseList "Test") if( (UndefinedList STREQUAL "Test") AND (EmptyList STREQUAL "Test") AND (FalseList STREQUAL "False;Test") ) message("You implemented the empty list case, well done!") endif()