123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- 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()
|