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