From 05cce12c52b852b25cd20acd1018b827e19d0224 Mon Sep 17 00:00:00 2001 From: rnv Date: Wed, 24 May 2017 10:33:40 +0300 Subject: [PATCH] Python3 porting: find python with CMake-3.3 version. --- cmake/FindSalomePythonInterp.cmake | 5 +++++ cmake/SalomeMacros.cmake | 15 +++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/cmake/FindSalomePythonInterp.cmake b/cmake/FindSalomePythonInterp.cmake index 23f229d..44e0ec6 100644 --- a/cmake/FindSalomePythonInterp.cmake +++ b/cmake/FindSalomePythonInterp.cmake @@ -36,6 +36,11 @@ IF(EXISTS "${PYTHON_ROOT_DIR}" AND (NOT PYTHONINTERP_ROOT_DIR)) MESSAGE(STATUS "Setting PYTHONINTERP_ROOT_DIR to: ${PYTHON_ROOT_DIR}") SET(PYTHONINTERP_ROOT_DIR "${PYTHON_ROOT_DIR}" CACHE PATH "Path to PythonInterp directory") ENDIF() + +# python 3 +SET(PythonInterp_FIND_VERSION 3) +SET(PythonInterp_FIND_VERSION_MAJOR 3) + SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(PythonInterp PYTHON_EXECUTABLE 1) IF(SALOMEPYTHONINTERP_FOUND) diff --git a/cmake/SalomeMacros.cmake b/cmake/SalomeMacros.cmake index d2791b6..d1cefe1 100644 --- a/cmake/SalomeMacros.cmake +++ b/cmake/SalomeMacros.cmake @@ -970,10 +970,17 @@ ENDMACRO(SALOME_CONFIGURE_PREPARE) # 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}") + 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}") + + IF(${version_string} MATCHES "[0-9]+[^0-9]*\\.[0-9]+[^0-9]*\\.[0-9]+[^0-9]*") + # X.Y.Z format (python 3.5.2 ...) + STRING(REGEX REPLACE "^[0-9]+[^0-9]*\\.[0-9]+[^0-9]*\\.([0-9]+)[^0-9]*" "\\1" ${patch} "${version_string}") + ELSE() + # X.Y format (python 3.5 ...) + SET(${patch} "0") + ENDIF() ELSE() MESSAGE("MACRO(SALOME_EXTRACT_VERSION ${version_string} ${major} ${minor} ${patch}") MESSAGE(FATAL_ERROR "Problem parsing version string, I can't parse it properly.") -- 2.39.2