From 7ea84478d3d0bd956ade282b6eaebe71f0afb581 Mon Sep 17 00:00:00 2001 From: Guillaume Pasero <guillaume.pasero@c-s.fr> Date: Thu, 23 Apr 2015 18:16:22 +0200 Subject: [PATCH] ENH: parse version for muParser --- CMake/FindMuParser.cmake | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CMake/FindMuParser.cmake b/CMake/FindMuParser.cmake index 095c5de706..09460c9ce3 100644 --- a/CMake/FindMuParser.cmake +++ b/CMake/FindMuParser.cmake @@ -4,6 +4,11 @@ # MUPARSER_FOUND - True if MuParser found. # MUPARSER_INCLUDE_DIRS - where to find muParser.h, etc. # MUPARSER_LIBRARIES - List of libraries when using MuParser. +# MUPARSER_VERSION - version string +# MUPARSER_VERSION_MAJOR - version major number +# MUPARSER_VERSION_MINOR - version minor number +# MUPARSER_VERSION_PATCH - version patch number +# MUPARSER_VERSION_NUMBER - version number ((major*100)+minor)*100+patch # if( MUPARSER_INCLUDE_DIR ) @@ -14,6 +19,20 @@ endif() find_path( MUPARSER_INCLUDE_DIR muParser.h PATH_SUFFIXES muParser ) +if(EXISTS "${MUPARSER_INCLUDE_DIR}/muParserDef.h") + file(READ "${MUPARSER_INCLUDE_DIR}/muParserDef.h" _muParserDef_h_CONTENTS) + string(REGEX REPLACE ".*# *define MUP_VERSION *_T\\(\"([0-9.]+)\"\\).*" "\\1" MUPARSER_VERSION "${_muParserDef_h_CONTENTS}") + string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" MUPARSER_VERSION_MAJOR "${MUPARSER_VERSION}") + string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" MUPARSER_VERSION_MINOR "${MUPARSER_VERSION}") + string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" MUPARSER_VERSION_PATCH "${MUPARSER_VERSION}") + math(EXPR MUPARSER_VERSION_NUMBER + "((${MUPARSER_VERSION_MAJOR})*100+${MUPARSER_VERSION_MINOR})*100+${MUPARSER_VERSION_PATCH}") +else() + if(NOT MuParser_FIND_QUIETLY) + message(WARNING "muParserDef.h not found !") + endif() +endif() + find_library( MUPARSER_LIBRARY NAMES muparser PATH_SUFFIXES muparser ) -- GitLab