Warning, /frameworks/extra-cmake-modules/tests/test_helpers.cmake is written in an unsupported language. File is not indexed.
0001 macro(assert_var_defined varname)
0002 if(NOT DEFINED ${varname})
0003 message(SEND_ERROR "${varname} is not defined.")
0004 endif()
0005 endmacro()
0006
0007 macro(assert_vars_strequal varname exp_varname)
0008 if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
0009 assert_var_defined(${varname})
0010 endif()
0011 if(NOT ${varname} STREQUAL ${exp_varname})
0012 message(SEND_ERROR "${varname} is '${${varname}}', expecting '${${exp_varname}}'.")
0013 endif()
0014 endmacro()
0015
0016 macro(assert_var_str_value varname value)
0017 if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
0018 assert_var_defined(${varname})
0019 endif()
0020 set(_value_var "${value}")
0021 if(NOT ${varname} STREQUAL _value_var)
0022 message(SEND_ERROR "${varname} is '${${varname}}', expecting '${value}'.")
0023 endif()
0024 endmacro()
0025
0026 macro(assert_var_num_value varname value)
0027 if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
0028 assert_var_defined(${varname})
0029 endif()
0030 set(_value_var "${value}")
0031 if(NOT ${varname} EQUAL _value_var)
0032 message(SEND_ERROR "${varname} is '${${varname}}', expecting '${value}'.")
0033 endif()
0034 endmacro()
0035
0036 macro(assert_var_bool_value varname value)
0037 if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
0038 assert_var_defined(${varname})
0039 endif()
0040 if(${value} AND NOT ${varname})
0041 message(FATAL_ERROR "${varname} was FALSE")
0042 elseif(${varname} AND NOT ${value})
0043 message(FATAL_ERROR "${varname} was TRUE")
0044 endif()
0045 endmacro()
0046
0047 macro(assert_var_relative_path varname)
0048 if(ARGC LESS 2 OR NOT "${ARGV1}" STREQUAL "ALLOW_UNDEFINED")
0049 assert_var_defined(${varname})
0050 endif()
0051 if(DEFINED ${varname} AND IS_ABSOLUTE "${${varname}}")
0052 message(SEND_ERROR "${varname} (${${varname}}) should be a relative path, but is absolute.")
0053 endif()
0054 endmacro()
0055
0056 macro(assert_var_absolute_path varname)
0057 if(ARGC LESS 2 OR NOT "${ARGV1}" STREQUAL "ALLOW_UNDEFINED")
0058 assert_var_defined(${varname})
0059 endif()
0060 if(DEFINED ${varname} AND NOT IS_ABSOLUTE "${${varname}}")
0061 message(SEND_ERROR "${varname} (${${varname}}) should be an absolute path, but is relative.")
0062 endif()
0063 endmacro()
0064
0065 function(assert_vars_setequal varname exp_varname)
0066 if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
0067 assert_var_defined(${varname})
0068 endif()
0069 # need real variables
0070 set(list1 "${${varname}}")
0071 set(list2 "${${exp_varname}}")
0072 list(LENGTH list1 list1_len)
0073 list(LENGTH list2 list2_len)
0074 set(same_els FALSE)
0075 if(list1_len EQUAL list2_len)
0076 set(same_els TRUE)
0077 foreach(item ${list1})
0078 list(FIND list2 "${item}" pos)
0079 if(pos EQUAL "-1")
0080 set(same_els FALSE)
0081 break()
0082 else()
0083 # deal nicely with duplicates
0084 list(REMOVE_AT list2 "${pos}")
0085 endif()
0086 endforeach()
0087 endif()
0088 if(NOT same_els)
0089 message(SEND_ERROR "${varname} is '${${varname}}', expecting '${${exp_varname}}'.")
0090 endif()
0091 endfunction()
0092