diff options
| author | Alexander Neundorf <neundorf@kde.org> | 2010-10-03 20:26:24 +0000 | 
|---|---|---|
| committer | Alexander Neundorf <neundorf@kde.org> | 2010-10-03 20:26:24 +0000 | 
| commit | 953529c592d05348e269422564594c1cce84f9bf (patch) | |
| tree | 61607bf08049b0a535131c8bc00b825a6fb6d55f | |
| parent | 6bda72f6e9115c1bf6c58977a4e35075359eccdf (diff) | |
| download | extra-cmake-modules-953529c592d05348e269422564594c1cce84f9bf.tar.gz extra-cmake-modules-953529c592d05348e269422564594c1cce84f9bf.tar.bz2 | |
-add support for detecting the version in dbusmenuqt trunk, it's more robust now than it was before
Alex
svn path=/trunk/KDE/kdelibs/; revision=1182216
| -rw-r--r-- | modules/FindDBusMenuQt.cmake | 32 | 
1 files changed, 26 insertions, 6 deletions
| diff --git a/modules/FindDBusMenuQt.cmake b/modules/FindDBusMenuQt.cmake index 33b9e113..5af70ef2 100644 --- a/modules/FindDBusMenuQt.cmake +++ b/modules/FindDBusMenuQt.cmake @@ -53,14 +53,34 @@ if(DBUSMENUQT_INCLUDE_DIR  AND NOT DBUSMENUQT_VERSION)    if(EXISTS ${DBUSMENUQT_INCLUDE_DIR}/dbusmenu_version.h)      file(READ "${DBUSMENUQT_INCLUDE_DIR}/dbusmenu_version.h" DBUSMENUQT_VERSION_CONTENT) -    string(REGEX MATCH "\\(\\( *([0-9]+) *<<"  _dummy "${DBUSMENUQT_VERSION_CONTENT}") -    set(DBUSMENUQT_VERSION_MAJOR "${CMAKE_MATCH_1}") +    if ("${DBUSMENUQT_VERSION_CONTENT}" MATCHES "DBUSMENUQT_VERSION_MAJOR") # introduced after 0.6.4, makes this code here more robust -    string(REGEX MATCH "\\|\\( *([0-9]+) *<<"  _dummy "${DBUSMENUQT_VERSION_CONTENT}") -    set(DBUSMENUQT_VERSION_MINOR "${CMAKE_MATCH_1}") +     string(REGEX MATCH "#define +DBUSMENUQT_VERSION_MAJOR +([0-9]+)"  _dummy "${DBUSMENUQT_VERSION_CONTENT}") +     set(DBUSMENUQT_VERSION_MAJOR "${CMAKE_MATCH_1}") -    string(REGEX MATCH "\\| *([0-9]+) *\\)"  _dummy "${DBUSMENUQT_VERSION_CONTENT}") -    set(DBUSMENUQT_VERSION_PATCH "${CMAKE_MATCH_1}") +      string(REGEX MATCH "#define +DBUSMENUQT_VERSION_MINOR +([0-9]+)"  _dummy "${DBUSMENUQT_VERSION_CONTENT}") +      set(DBUSMENUQT_VERSION_MINOR "${CMAKE_MATCH_1}") + +      string(REGEX MATCH "#define +DBUSMENUQT_VERSION_PATCH +([0-9]+)"  _dummy "${DBUSMENUQT_VERSION_CONTENT}") +      set(DBUSMENUQT_VERSION_PATCH "${CMAKE_MATCH_1}") + +    else("${DBUSMENUQT_VERSION_CONTENT}" MATCHES "DBUSMENUQT_VERSION_MAJOR") +      # In versions up to 0.6.4, the code for setting the version number in the header looked like +      # shopw below. This made version checking quite un-obvious: +      # #define DBUSMENUQT_VERSION \ +      #     ((0 << 16) \ +      #     |(6 << 8) \ +      #     |4) + +      string(REGEX MATCH "\\(\\( *([0-9]+) *<<"  _dummy "${DBUSMENUQT_VERSION_CONTENT}") +      set(DBUSMENUQT_VERSION_MAJOR "${CMAKE_MATCH_1}") + +      string(REGEX MATCH "\\|\\( *([0-9]+) *<<"  _dummy "${DBUSMENUQT_VERSION_CONTENT}") +      set(DBUSMENUQT_VERSION_MINOR "${CMAKE_MATCH_1}") + +      string(REGEX MATCH "\\| *([0-9]+) *\\)"  _dummy "${DBUSMENUQT_VERSION_CONTENT}") +      set(DBUSMENUQT_VERSION_PATCH "${CMAKE_MATCH_1}") +    endif("${DBUSMENUQT_VERSION_CONTENT}" MATCHES "DBUSMENUQT_VERSION_MAJOR")    endif(EXISTS ${DBUSMENUQT_INCLUDE_DIR}/dbusmenu_version.h)    set(DBUSMENUQT_VERSION "${DBUSMENUQT_VERSION_MAJOR}.${DBUSMENUQT_VERSION_MINOR}.${DBUSMENUQT_VERSION_PATCH}" CACHE STRING "Version number of DBusMenuQt" FORCE) | 
