macro(setup_version _packageName)
    if(DEFINED "${_packageName}_VERSION")
        string(REGEX MATCHALL "[0-9]+" _versionComponents 
            "${${_packageName}_VERSION}")
        list(LENGTH _versionComponents _len)
        if(${_len} GREATER 0)
            list(GET _versionComponents 0 "${_packageName}_VERSION_MAJOR")
        endif()
        if(${_len} GREATER 1)
            list(GET _versionComponents 1 "${_packageName}_VERSION_MINOR")
        endif()
        if(${_len} GREATER 2)
            list(GET _versionComponents 2 "${_packageName}_VERSION_PATCH")
        endif()
        if(${_len} GREATER 3)
            list(GET _versionComponents 3 "${_packageName}_VERSION_TWEAK")
        endif()
        set("${_packageName}_VERSION_COUNT" ${_len})
    else()
        set("${_packageName}_VERSION_COUNT" 0)
        set("${_packageName}_VERSION" "${_packageName}_VERSION-NOTFOUND")
    endif()
endmacro()
