File: VersioningUtils.cmake

package info (click to toggle)
libwpe 1.16.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 748 kB
  • sloc: ansic: 5,890; sh: 102; cpp: 57; python: 51; makefile: 5
file content (27 lines) | stat: -rw-r--r-- 1,114 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function (READ_VERSION_HEADER var_prefix def_regex file_path)
    file(STRINGS "${file_path}" lines)
    foreach (line ${lines})
        if (line MATCHES "^#define[ \t]+(${def_regex})[ \t]+([0-9]+)$")
            set("${var_prefix}${CMAKE_MATCH_1}"
                "${CMAKE_MATCH_2}"
                PARENT_SCOPE
            )
        endif ()
    endforeach ()
endfunction ()

macro (SET_PROJECT_VERSION major minor micro)
    set(PROJECT_VERSION_MAJOR "${major}")
    set(PROJECT_VERSION_MINOR "${minor}")
    set(PROJECT_VERSION_MICRO "${micro}")
    set(PROJECT_VERSION "${major}.${minor}.${micro}")
endmacro ()

# Libtool library version, not to be confused with API version.
# See http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
macro (CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE library_name current revision age)
    math(EXPR ${library_name}_VERSION_MAJOR "${current} - ${age}")
    set(${library_name}_VERSION_MINOR ${age})
    set(${library_name}_VERSION_MICRO ${revision})
    set(${library_name}_VERSION ${${library_name}_VERSION_MAJOR}.${age}.${revision})
endmacro ()