• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1## -*- mode:cmake; coding:utf-8; -*-
2# Set output:
3# CHANGELOG_LAST_LINE
4# CHANGELOG_LAST_VERSION - Last changelog version
5# CHANGELOG_LAST_VERSION_MAJOR - Last changelog major version
6# CHANGELOG_LAST_VERSION_MINOR - Last changelog minor version
7# CHANGELOG_LAST_VERSION_PATCH - Last changelog patch version
8# CHANGELOG_LAST_MESSAGE - Last changelog description
9
10if (NOT DEB_CHANGELOG)
11   set(DEB_CHANGELOG "${CMAKE_SOURCE_DIR}/Changelog")
12endif()
13
14if (NOT EXISTS ${DEB_CHANGELOG})
15    if (DEB_CHANGELOG_REQUIRED)
16        message(FATAL_ERROR "Missing required project changelog file: ${DEB_CHANGELOG}")
17    else()
18        message("Missing project changelog file: ${DEB_CHANGELOG}")
19        return()
20    endif()
21endif()
22message(STATUS "Using project changelog file: ${DEB_CHANGELOG}")
23
24file(STRINGS "${DEB_CHANGELOG}" _DEBCHANGELOGN)
25
26foreach(CLINE IN LISTS _DEBCHANGELOGN)
27    if (NOT CHANGELOG_LAST_VERSION)
28        #ejdb (1.2.6) testing; urgency=low
29        string(REGEX MATCH "^[A-Za-z0-9_].*[ \t]+\\((([0-9]+)\\.([0-9]+)\\.([0-9]+))\\)[ \t]+[A-Za-z]+;[ \t].*" _MATCHED "${CLINE}")
30        if (_MATCHED)
31            set(CHANGELOG_LAST_LINE "${_MATCHED}")
32            set(CHANGELOG_LAST_VERSION "${CMAKE_MATCH_1}")
33            set(CHANGELOG_LAST_VERSION_MAJOR "${CMAKE_MATCH_2}")
34            set(CHANGELOG_LAST_VERSION_MINOR "${CMAKE_MATCH_3}")
35            set(CHANGELOG_LAST_VERSION_PATCH "${CMAKE_MATCH_4}")
36        endif()
37    elseif(NOT CHANGELOG_LAST_MESSAGE)
38        string(REGEX MATCH "^[A-Za-z0-9_].*[ \t]+\\((([0-9]+)\\.([0-9]+)\\.([0-9]+))\\)[ \t]+[A-Za-z]+;[ \t].*" _MATCHED "${CLINE}")
39        if (_MATCHED)
40            string(STRIP "${_CDESC}" CHANGELOG_LAST_MESSAGE)
41            return()
42        endif()
43        if (CLINE)
44            string(REGEX MATCH "^[ \t]*\\-\\-[ \t]+" _MATCHED "${CLINE}")
45            if (_MATCHED)
46                string(STRIP "${_CDESC}" CHANGELOG_LAST_MESSAGE)
47                return()
48            endif()
49            set(_CDESC "${_CDESC}\n${CLINE}")
50        endif()
51    endif()
52endforeach(CLINE)
53
54message(FATAL_ERROR "Invalid changelog file: ${DEB_CHANGELOG}")
55