## this function creates a string containing status information
  function(progress_string value maximum ticks)
    math(EXPR multiplier "20/${maximum}")
    math(EXPR value "${value} * ${multiplier}")
    math(EXPR maximum "${maximum} * ${multiplier}")
    math(EXPR rest_count "${maximum} - ${value}")
    string_repeat("=" ${value})
    ans(status)
    string_repeat(" " ${rest_count})
    ans(rest)
    math(EXPR status_ticker "${ticks} % 5")
    string_repeat("." ${status_ticker})
    ans(status_ticker)
    return("[${status}${rest}]${status_ticker}          ")
  endfunction()