macro(rvc_set_win_dll_ver _prefix _ver) string(STRIP ${_ver} ${_prefix}_VERSION_STRING) set(VERSION_REGEX "^.?([0-9]+)\\.([0-9]+)\\.([0-9]+)-?(.*)") string(REGEX REPLACE "${VERSION_REGEX}" "\\1" ${_prefix}_VERSION_MAJOR "${${_prefix}_VERSION_STRING}") string(REGEX REPLACE "${VERSION_REGEX}" "\\2" ${_prefix}_VERSION_MINOR "${${_prefix}_VERSION_STRING}") string(REGEX REPLACE "${VERSION_REGEX}" "\\3" ${_prefix}_VERSION_REVISION "${${_prefix}_VERSION_STRING}") string(REGEX REPLACE "${VERSION_REGEX}" "\\4" ${_prefix}_VERSION_SUFFIX "${${_prefix}_VERSION_STRING}") set(${_prefix}_API_VERSION "${${_prefix}_VERSION_MAJOR}") set(${_prefix}_VERSION "${${_prefix}_VERSION_MAJOR}.${${_prefix}_VERSION_MINOR}.${${_prefix}_VERSION_REVISION}") if (${_prefix}_VERSION_SUFFIX) set(${_prefix}_VERSION_FULL "${${_prefix}_VERSION}-${${_prefix}_VERSION_SUFFIX}") else() set(${_prefix}_VERSION_FULL "${${_prefix}_VERSION}") endif() message(STATUS "${_prefix}_VERSION = ${${_prefix}_VERSION_FULL}") if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/version.h.in) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h) endif() # On windows create dll version information. if (WIN32) set (RC_VERSION_MAJOR ${RVC_VERSION_MAJOR}) set (RC_VERSION_MINOR ${${_prefix}_VERSION_MAJOR}) set (RC_VERSION_BUILD ${${_prefix}_VERSION_MINOR}) set (RC_VERSION_PATCH ${${_prefix}_VERSION_REVISION}) configure_file( ${CMAKE_SOURCE_DIR}/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY) set ( ${_prefix}_SRCS ${${_prefix}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc) endif() endmacro(rvc_set_win_dll_ver)