
    ## extracts a labelled key value (the label and the value if it exists)
    macro(list_extract_labelled_keyvalue __lst label)
      list_extract_labelled_value(${__lst} "${label}")
      ans(__lbl_value)
      if(NOT "${__lbl_value}_" STREQUAL "_")
        if(ARGN)
          set_ans("${ARGN};${__lbl_value}")
        else()
          set_ans("${label};${__lbl_value}")
        endif()
      else()
        set_ans("")
      endif()
    endmacro()