Skip to content
Snippets Groups Projects
Commit efa8f7ba authored by Guillaume Pasero's avatar Guillaume Pasero
Browse files

ENH: support simultaneously python2 and python3

parent e95b705a
Branches
Tags
No related merge requests found
...@@ -19,9 +19,10 @@ ...@@ -19,9 +19,10 @@
# #
option ( OTB_WRAP_PYTHON "Wrap Python" OFF ) option ( OTB_WRAP_PYTHON "Wrap Python" OFF )
option ( OTB_WRAP_PYTHON3 "Wrap Python 3" OFF )
option ( OTB_WRAP_JAVA "Wrap Java" OFF ) option ( OTB_WRAP_JAVA "Wrap Java" OFF )
if ( OTB_WRAP_PYTHON OR OTB_WRAP_JAVA ) if ( OTB_WRAP_PYTHON OR OTB_WRAP_JAVA OR OTB_WRAP_PYTHON3)
find_package ( SWIG REQUIRED ) find_package ( SWIG REQUIRED )
mark_as_advanced(SWIG_DIR) mark_as_advanced(SWIG_DIR)
mark_as_advanced(SWIG_EXECUTABLE) mark_as_advanced(SWIG_EXECUTABLE)
...@@ -43,11 +44,61 @@ endmacro() ...@@ -43,11 +44,61 @@ endmacro()
if ( OTB_WRAP_PYTHON ) if ( OTB_WRAP_PYTHON )
check_PIC_flag ( Python ) check_PIC_flag ( Python )
find_package ( PythonLibs REQUIRED )
find_package ( PythonInterp REQUIRED ) find_package ( PythonInterp REQUIRED )
find_package ( PythonLibs REQUIRED )
find_package ( Numpy ) find_package ( Numpy )
endif() endif()
macro(swap_cache_variable var1 var2)
set(_backup ${${var1}})
get_property(_var1_type CACHE ${var1} PROPERTY TYPE)
get_property(_var1_help CACHE ${var1} PROPERTY HELPSTRING)
get_property(_var2_type CACHE ${var2} PROPERTY TYPE)
get_property(_var2_help CACHE ${var2} PROPERTY HELPSTRING)
set(${var1} ${${var2}} CACHE ${_var1_type} "${_var1_help}" FORCE)
set(${var2} ${_backup} CACHE ${_var2_type} "${_var2_help}" FORCE)
endmacro()
macro(swap_variable var1 var2)
set(_backup ${${var1}})
set(${var1} ${${var2}})
set(${var2} ${_backup})
endmacro()
if ( OTB_WRAP_PYTHON3 )
set(PYTHON3_EXECUTABLE "PYTHON3_EXECUTABLE-NOTFOUND" CACHE FILEPATH "Path to python 3 interpreter")
set(PYTHON3_INCLUDE_DIR "PYTHON3_INCLUDE_DIR-NOTFOUND" CACHE PATH "Path to python 3 include directory")
set(PYTHON3_LIBRARY "PYTHON3_LIBRARY-NOTFOUND" CACHE FILEPATH "Path to python 3 library")
set(PYTHON3_LIBRARY_DEBUG "PYTHON3_LIBRARY_DEBUG-NOTFOUND" CACHE FILEPATH "Path to python 3 library (debug)")
set(PYTHON3_LIBRARY_RELEASE "PYTHON3_LIBRARY_RELEASE-NOTFOUND" CACHE FILEPATH "Path to python 3 library (release)")
set(NUMPY_PYTHON3_INCLUDE_DIR "NUMPY_PYTHON3_INCLUDE_DIR" CACHE PATH "Path to numpy module for Python 3")
# Swap cache variables between python and python3
swap_cache_variable(PYTHON_EXECUTABLE PYTHON3_EXECUTABLE)
swap_cache_variable(PYTHON_INCLUDE_DIR PYTHON3_INCLUDE_DIR)
swap_cache_variable(PYTHON_LIBRARY PYTHON3_LIBRARY)
swap_cache_variable(PYTHON_LIBRARY_DEBUG PYTHON3_LIBRARY_DEBUG)
swap_cache_variable(PYTHON_LIBRARY_RELEASE PYTHON3_LIBRARY_RELEASE)
swap_cache_variable(NUMPY_INCLUDE_DIR NUMPY_PYTHON3_INCLUDE_DIR)
swap_variable(PYTHON_LIBRARIES PYTHON3_LIBRARIES)
check_PIC_flag ( Python )
find_package ( PythonInterp 3 REQUIRED )
find_package ( PythonLibs 3 REQUIRED )
find_package ( Numpy )
# Swap cache variables between python and python3
swap_cache_variable(PYTHON_EXECUTABLE PYTHON3_EXECUTABLE)
swap_cache_variable(PYTHON_INCLUDE_DIR PYTHON3_INCLUDE_DIR)
swap_cache_variable(PYTHON_LIBRARY PYTHON3_LIBRARY)
swap_cache_variable(PYTHON_LIBRARY_DEBUG PYTHON3_LIBRARY_DEBUG)
swap_cache_variable(PYTHON_LIBRARY_RELEASE PYTHON3_LIBRARY_RELEASE)
swap_cache_variable(NUMPY_INCLUDE_DIR NUMPY_PYTHON3_INCLUDE_DIR)
swap_variable(PYTHON_LIBRARIES PYTHON3_LIBRARIES)
endif()
# #
# JAVA SWIG configuration # JAVA SWIG configuration
# #
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment