Advance Wayland and KDE package bring-up
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
macro(assert_var_defined varname)
|
||||
if(NOT DEFINED ${varname})
|
||||
message(SEND_ERROR "${varname} is not defined.")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(assert_vars_strequal varname exp_varname)
|
||||
if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
|
||||
assert_var_defined(${varname})
|
||||
endif()
|
||||
if(NOT ${varname} STREQUAL ${exp_varname})
|
||||
message(SEND_ERROR "${varname} is '${${varname}}', expecting '${${exp_varname}}'.")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(assert_var_str_value varname value)
|
||||
if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
|
||||
assert_var_defined(${varname})
|
||||
endif()
|
||||
set(_value_var "${value}")
|
||||
if(NOT ${varname} STREQUAL _value_var)
|
||||
message(SEND_ERROR "${varname} is '${${varname}}', expecting '${value}'.")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(assert_var_num_value varname value)
|
||||
if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
|
||||
assert_var_defined(${varname})
|
||||
endif()
|
||||
set(_value_var "${value}")
|
||||
if(NOT ${varname} EQUAL _value_var)
|
||||
message(SEND_ERROR "${varname} is '${${varname}}', expecting '${value}'.")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(assert_var_bool_value varname value)
|
||||
if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
|
||||
assert_var_defined(${varname})
|
||||
endif()
|
||||
if(${value} AND NOT ${varname})
|
||||
message(FATAL_ERROR "${varname} was FALSE")
|
||||
elseif(${varname} AND NOT ${value})
|
||||
message(FATAL_ERROR "${varname} was TRUE")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(assert_var_relative_path varname)
|
||||
if(ARGC LESS 2 OR NOT "${ARGV1}" STREQUAL "ALLOW_UNDEFINED")
|
||||
assert_var_defined(${varname})
|
||||
endif()
|
||||
if(DEFINED ${varname} AND IS_ABSOLUTE "${${varname}}")
|
||||
message(SEND_ERROR "${varname} (${${varname}}) should be a relative path, but is absolute.")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(assert_var_absolute_path varname)
|
||||
if(ARGC LESS 2 OR NOT "${ARGV1}" STREQUAL "ALLOW_UNDEFINED")
|
||||
assert_var_defined(${varname})
|
||||
endif()
|
||||
if(DEFINED ${varname} AND NOT IS_ABSOLUTE "${${varname}}")
|
||||
message(SEND_ERROR "${varname} (${${varname}}) should be an absolute path, but is relative.")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
function(assert_vars_setequal varname exp_varname)
|
||||
if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
|
||||
assert_var_defined(${varname})
|
||||
endif()
|
||||
# need real variables
|
||||
set(list1 "${${varname}}")
|
||||
set(list2 "${${exp_varname}}")
|
||||
list(LENGTH list1 list1_len)
|
||||
list(LENGTH list2 list2_len)
|
||||
set(same_els FALSE)
|
||||
if(list1_len EQUAL list2_len)
|
||||
set(same_els TRUE)
|
||||
foreach(item ${list1})
|
||||
list(FIND list2 "${item}" pos)
|
||||
if(pos EQUAL "-1")
|
||||
set(same_els FALSE)
|
||||
break()
|
||||
else()
|
||||
# deal nicely with duplicates
|
||||
list(REMOVE_AT list2 "${pos}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
if(NOT same_els)
|
||||
message(SEND_ERROR "${varname} is '${${varname}}', expecting '${${exp_varname}}'.")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
Reference in New Issue
Block a user