]> SALOME platform Git repositories - tools/configuration.git/commitdiff
Salome HOME
Bug fix: better Python version checking V8_2_0b1
authorabn <adrien.bruneton@cea.fr>
Mon, 7 Nov 2016 14:47:58 +0000 (15:47 +0100)
committerabn <adrien.bruneton@cea.fr>
Mon, 7 Nov 2016 14:47:58 +0000 (15:47 +0100)
On Ubuntu, libs might be marked as "2.7.12+" and interp as "2.7.12"
... annoying.

cmake/FindSalomePythonLibs.cmake
cmake/SalomeMacros.cmake

index 36473f2a2f9ebbfc2007c7d36f9cbe38be57828e..3ad5367f02a2625b1065fcab4640508037eeeff2 100644 (file)
@@ -48,7 +48,9 @@ ENDIF()
 ## Specifics -- check matching version with Interpreter if already detected:
 IF (SALOMEPYTHONLIBS_FOUND AND SALOMEPYTHONINTERP_FOUND)
   # Now ensure versions are matching
-  IF("${PYTHONLIBS_VERSION_STRING}" STREQUAL "${PYTHON_VERSION_STRING}")
+  SALOME_EXTRACT_VERSION(${PYTHONLIBS_VERSION_STRING} maj_lib min_lib patch_lib)
+  SALOME_EXTRACT_VERSION(${PYTHON_VERSION_STRING} maj_inter min_inter patch_inter)
+  IF("${maj_lib}.${min_lib}.${patch_lib}" STREQUAL "${maj_inter}.${min_inter}.${patch_inter}")
     MESSAGE(STATUS "Python libs and interpreter versions are matching: ${PYTHONLIBS_VERSION_STRING}")
   ELSE()
     MESSAGE(FATAL_ERROR "Python libs and interpreter versions are NOT matching: ${PYTHONLIBS_VERSION_STRING} vs ${PYTHON_VERSION_STRING}")
index 2581731420f9d8092bfd2715bda386be8949f0ea..3daf597c256a42b773e4c8d862700efd0a63cea2 100644 (file)
@@ -955,3 +955,21 @@ MACRO(SALOME_CONFIGURE_PREPARE)
     ENDIF()
   ENDFOREACH()
 ENDMACRO(SALOME_CONFIGURE_PREPARE)
+
+#######################################################################
+#
+# From a version string like "2.7.12+" extract the major, minor and patch number
+# taking ONLY the numerical part.
+# This macro was created to treat Ubuntu Python version number where the libs are
+# version 2.7.12+ and the interp is 2.7.12 ...
+#
+MACRO(SALOME_EXTRACT_VERSION version_string major minor patch)
+  IF(${version_string} MATCHES "[0-9]+[^0-9]*\\.[0-9]+[^0-9]*\\.[0-9]+[^0-9]*")
+    STRING(REGEX REPLACE "^([0-9]+)[^0-9]*\\.[0-9]+[^0-9]*\\.[0-9]+[^0-9]*" "\\1" ${major} "${version_string}")
+    STRING(REGEX REPLACE "^[0-9]+[^0-9]*\\.([0-9]+)[^0-9]*\\.[0-9]+[^0-9]*" "\\1" ${minor} "${version_string}")
+    STRING(REGEX REPLACE "^[0-9]+[^0-9]*\\.[0-9]+[^0-9]*\\.([0-9]+)[^0-9]*" "\\1" ${patch} "${version_string}")
+  ELSE()
+    MESSAGE("MACRO(SALOME_EXTRACT_VERSION ${version_string} ${major} ${minor} ${patch}")
+    MESSAGE(FATAL_ERROR "Problem parsing version string, I can't parse it properly.")
+  ENDIF()
+ENDMACRO(SALOME_EXTRACT_VERSION)