Browse Source

First implementation of an m4 macro to check python module version

Yann Weber 8 years ago
parent
commit
d12699d395
2 changed files with 56 additions and 0 deletions
  1. 16
    0
      configure.ac
  2. 40
    0
      m4/python_pyconfigure.m4

+ 16
- 0
configure.ac View File

@@ -49,6 +49,18 @@ PC_PYTHON_CHECK_MODULE([pymongo], ,
49 49
 	AC_MSG_WARN([Module pymongo not found. The mongodb datasource will not be able to work])
50 50
 	AC_SUBST([PYMONGO], 'False'))
51 51
 
52
+#
53
+#BEIGN
54
+#
55
+PC_PYTHON_CHECK_MODULE_VERSION([pymongo], [2.7.1], ,
56
+	AC_MSG_WARN([Module pymongo not found. The mongodb datasource will not be able to work])
57
+	AC_SUBST([PYMONGO], 'False')
58
+)
59
+
60
+#
61
+# STOPE
62
+#
63
+
52 64
 #Documentation checks
53 65
 AC_SUBST([DOCOK], 'OK')
54 66
 AC_CHECK_PROGS([DOXYGEN], [doxygen])
@@ -79,3 +91,7 @@ fi
79 91
 if test "$WEBUI" = 'False';
80 92
 	then AC_MSG_WARN([Mandatory components are missing for running default web UI. See up for reasons])
81 93
 fi
94
+
95
+if test "$PYMONGO" = 'False';
96
+	then AC_MSG_WARN([You will not be able to user mongodb datasource. See up for reasons])
97
+fi

+ 40
- 0
m4/python_pyconfigure.m4 View File

@@ -647,3 +647,43 @@ m4_ifnblank([$1], [
647 647
     ])
648 648
 AS_IF([test "$[pc_cv_python_func_]pc_python_safe_mod[_$2]" = "no"], [$5], [$4])
649 649
 ])# PC_PYTHON_CHECK_FUNC
650
+
651
+# PC_PYTHON_CHECK_MODULE_VERSION(LIBRARY, VERSION, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND)
652
+# -------------------------------------------------
653
+# Macro for checking if a Python library with this version is installed
654
+#
655
+AC_DEFUN([PC_PYTHON_CHECK_MODULE_VERSION],
656
+[AC_REQUIRE([PC_PROG_PYTHON])[]dnl
657
+m4_define([pc_python_safe_mod], m4_bpatsubsts($1, [\.], [_]))
658
+AC_CACHE_CHECK([for Python '$1' library version '$2'],
659
+    [[pc_cv_python_module_version]pc_python_safe_mod],
660
+    [AC_LANG_PUSH(Python)[]dnl
661
+     AC_LINK_IFELSE(
662
+	[AC_LANG_PROGRAM([dnl
663
+import sys
664
+try:
665
+    import $1
666
+except:
667
+    version='no'
668
+else:
669
+    for vers_attr in ('__version__', 'version', 'version_info'):
670
+        if hasattr($1, vers_attr):
671
+            version = getattr($1, vers_attr)
672
+            break
673
+    else:
674
+        version = 'unknown'
675
+sys.stdout.write(version)
676
+], [])], 
677
+	[[pc_cv_python_module_version]pc_python_safe_mod=`./conftest`],
678
+	[AC_MSG_FAILURE([failed to run Python program])])
679
+	AC_LANG_POP(Python)[]dnl
680
+	])
681
+
682
+AS_IF([test "x$[pc_cv_python_module_version]pc_python_safe_mod" = "x$2" ],
683
+	[$3],
684
+	[	AS_IF(
685
+			[test "x$[pc_cv_python_module_version]pc_python_safe_mod" = 'unknown'],
686
+			AC_MSG_WARN([Unable to fetch version of Python module $1]))
687
+		[$4]
688
+	])
689
+])# PC_PYTHON_CHECK_MODULE_VERSION

Loading…
Cancel
Save