CMake/Tests/RunCMake/cmake_parse_arguments/test_utils.cmake

31 lines
961 B
CMake

function(TEST variable)
if(ARGC GREATER 2)
set(i 0)
foreach(value IN LISTS ${variable})
math(EXPR j "${i} + 1")
set(${variable}[${i}] "${value}")
TEST(${variable}[${i}] "${ARGV${j}}")
set(i ${j})
endforeach()
else()
set(expected "${ARGN}")
if("${expected}" STREQUAL "UNDEFINED")
if(DEFINED ${variable})
message(FATAL_ERROR "'${variable}' shall be undefined but has value '${${variable}}'")
endif()
elseif("${expected}" STREQUAL "FALSE")
if(NOT ${variable} STREQUAL "FALSE")
message(FATAL_ERROR "'${variable}' shall be FALSE")
endif()
elseif("${expected}" STREQUAL "TRUE")
if(NOT ${variable} STREQUAL "TRUE")
message(FATAL_ERROR "'${variable}' shall be TRUE")
endif()
else()
if(NOT ${variable} STREQUAL "${expected}")
message(FATAL_ERROR "'${variable}' shall be '${expected}'")
endif()
endif()
endif()
endfunction()