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 #ejdb (1.2) testing; urgency=low 30 string(REGEX MATCH "^[A-Za-z0-9_].*[ \t]+\\((([0-9]+)\\.([0-9]+)(\\.([0-9]+))?)\\)[ \t]+[A-Za-z]+;[ \t].*" _MATCHED "${CLINE}") 31 if (_MATCHED) 32 set(CHANGELOG_LAST_LINE "${_MATCHED}") 33 set(CHANGELOG_LAST_VERSION "${CMAKE_MATCH_1}") 34 set(CHANGELOG_LAST_VERSION_MAJOR "${CMAKE_MATCH_2}") 35 set(CHANGELOG_LAST_VERSION_MINOR "${CMAKE_MATCH_3}") 36 if (NOT CMAKE_MATCH5) 37 set(CHANGELOG_LAST_VERSION_PATCH "0") 38 else() 39 set(CHANGELOG_LAST_VERSION_PATCH "${CMAKE_MATCH_5}") 40 endif() 41 endif() 42 elseif(NOT CHANGELOG_LAST_MESSAGE) 43 string(REGEX MATCH "^[A-Za-z0-9_].*[ \t]+\\((([0-9]+)\\.([0-9]+)(\\.([0-9]+))?)\\)[ \t]+[A-Za-z]+;[ \t].*" _MATCHED "${CLINE}") 44 if (_MATCHED) 45 string(STRIP "${_CDESC}" CHANGELOG_LAST_MESSAGE) 46 return() 47 endif() 48 if (CLINE) 49 string(REGEX MATCH "^[ \t]*\\-\\-[ \t]+" _MATCHED "${CLINE}") 50 if (_MATCHED) 51 string(STRIP "${_CDESC}" CHANGELOG_LAST_MESSAGE) 52 return() 53 endif() 54 set(_CDESC "${_CDESC}\n${CLINE}") 55 endif() 56 endif() 57endforeach(CLINE) 58 59message(FATAL_ERROR "Invalid changelog file: ${DEB_CHANGELOG}") 60