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) |