浏览代码

FindGnuplot: add version selection

Rolf Eike Beer 13 年之前
父节点
当前提交
8a83853f5f
共有 1 个文件被更改,包括 15 次插入1 次删除
  1. 15 1
      Modules/FindGnuplot.cmake

+ 15 - 1
Modules/FindGnuplot.cmake

@@ -4,6 +4,7 @@
 #
 #  GNUPLOT_FOUND - system has Gnuplot
 #  GNUPLOT_EXECUTABLE - the Gnuplot executable
+#  GNUPLOT_VERSION_STRING - the version of Gnuplot found (since CMake 2.8.8)
 
 #=============================================================================
 # Copyright 2002-2009 Kitware, Inc.
@@ -29,13 +30,26 @@ FIND_PROGRAM(GNUPLOT_EXECUTABLE
   ${CYGWIN_INSTALL_PATH}/bin
 )
 
+IF (GNUPLOT_EXECUTABLE)
+    EXECUTE_PROCESS(COMMAND "${GNUPLOT_EXECUTABLE}" --version
+                  OUTPUT_VARIABLE GNUPLOT_OUTPUT_VARIABLE
+                  ERROR_QUIET
+                  OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+    STRING(REGEX REPLACE "^gnuplot ([0-9\\.]+)( patchlevel )?" "\\1." GNUPLOT_VERSION_STRING "${GNUPLOT_OUTPUT_VARIABLE}")
+    STRING(REGEX REPLACE "\\.$" "" GNUPLOT_VERSION_STRING "${GNUPLOT_VERSION_STRING}")
+    UNSET(GNUPLOT_OUTPUT_VARIABLE)
+ENDIF()
+
 # for compatibility
 SET(GNUPLOT ${GNUPLOT_EXECUTABLE})
 
 # handle the QUIETLY and REQUIRED arguments and set GNUPLOT_FOUND to TRUE if 
 # all listed variables are TRUE
 INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gnuplot DEFAULT_MSG GNUPLOT_EXECUTABLE)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gnuplot
+                                  REQUIRED_VARS GNUPLOT_EXECUTABLE
+                                  VERSION_VAR GNUPLOT_VERSION_STRING)
 
 MARK_AS_ADVANCED( GNUPLOT_EXECUTABLE )