|
|
|
@ -13,8 +13,20 @@
|
|
|
|
# limitations under the License.
|
|
|
|
# limitations under the License.
|
|
|
|
|
|
|
|
|
|
|
|
INCLUDE(ExternalProject)
|
|
|
|
INCLUDE(ExternalProject)
|
|
|
|
|
|
|
|
INCLUDE(python_module)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FIND_PACKAGE(PythonInterp 2.7)
|
|
|
|
|
|
|
|
FIND_PACKAGE(PythonLibs 2.7)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SET(py_env PATH=${PATH} PYTHONHOME=${PYTHONHOME} PYTHONPATH=${PYTHONPATH})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IF(PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)
|
|
|
|
|
|
|
|
find_python_module(pip REQUIRED)
|
|
|
|
|
|
|
|
find_python_module(numpy REQUIRED)
|
|
|
|
|
|
|
|
find_python_module(wheel REQUIRED)
|
|
|
|
|
|
|
|
find_python_module(google.protobuf REQUIRED)
|
|
|
|
|
|
|
|
FIND_PACKAGE(NumPy REQUIRED)
|
|
|
|
|
|
|
|
ELSE(PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)
|
|
|
|
##################################### PYTHON ########################################
|
|
|
|
##################################### PYTHON ########################################
|
|
|
|
SET(PYTHON_SOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/python)
|
|
|
|
SET(PYTHON_SOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/python)
|
|
|
|
SET(PYTHON_INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/install/python)
|
|
|
|
SET(PYTHON_INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/install/python)
|
|
|
|
@ -36,13 +48,6 @@ ELSE()
|
|
|
|
MESSAGE(FATAL_ERROR "Unknown system !")
|
|
|
|
MESSAGE(FATAL_ERROR "Unknown system !")
|
|
|
|
ENDIF()
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
|
|
|
|
SET(py_env
|
|
|
|
|
|
|
|
PATH=${PYTHON_INSTALL_DIR}/bin/:$ENV{PATH}
|
|
|
|
|
|
|
|
PYTHONHOME=${PYTHON_INSTALL_DIR}
|
|
|
|
|
|
|
|
PYTHONPATH=${PYTHON_INSTALL_DIR}/lib:${PYTHON_INSTALL_DIR}/lib/python2.7:${PY_SITE_PACKAGES_PATH})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIR})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IF(APPLE)
|
|
|
|
IF(APPLE)
|
|
|
|
LIST(APPEND EXTERNAL_PROJECT_OPTIONAL_CMAKE_ARGS
|
|
|
|
LIST(APPEND EXTERNAL_PROJECT_OPTIONAL_CMAKE_ARGS
|
|
|
|
-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON
|
|
|
|
-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON
|
|
|
|
@ -82,6 +87,11 @@ ExternalProject_Add(python
|
|
|
|
${EXTERNAL_PROJECT_OPTIONAL_CMAKE_ARGS}
|
|
|
|
${EXTERNAL_PROJECT_OPTIONAL_CMAKE_ARGS}
|
|
|
|
DEPENDS zlib
|
|
|
|
DEPENDS zlib
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SET(py_env
|
|
|
|
|
|
|
|
PATH=${PYTHON_INSTALL_DIR}/bin
|
|
|
|
|
|
|
|
PYTHONHOME=${PYTHON_INSTALL_DIR}
|
|
|
|
|
|
|
|
PYTHONPATH=${PYTHON_INSTALL_DIR}/lib:${PYTHON_INSTALL_DIR}/lib/python2.7:${PY_SITE_PACKAGES_PATH})
|
|
|
|
####################################################################################
|
|
|
|
####################################################################################
|
|
|
|
|
|
|
|
|
|
|
|
##################################### SETUPTOOLS ###################################
|
|
|
|
##################################### SETUPTOOLS ###################################
|
|
|
|
@ -155,8 +165,6 @@ ELSE(WIN32)
|
|
|
|
ENDFOREACH()
|
|
|
|
ENDFOREACH()
|
|
|
|
ENDIF(WIN32)
|
|
|
|
ENDIF(WIN32)
|
|
|
|
|
|
|
|
|
|
|
|
INCLUDE_DIRECTORIES(${PYTHON_NUMPY_INCLUDE_DIR})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ExternalProject_Add(numpy
|
|
|
|
ExternalProject_Add(numpy
|
|
|
|
${EXTERNAL_PROJECT_LOG_ARGS}
|
|
|
|
${EXTERNAL_PROJECT_LOG_ARGS}
|
|
|
|
GIT_REPOSITORY https://github.com/numpy/numpy.git
|
|
|
|
GIT_REPOSITORY https://github.com/numpy/numpy.git
|
|
|
|
@ -196,9 +204,19 @@ ExternalProject_Add(python-protobuf
|
|
|
|
BUILD_IN_SOURCE 1
|
|
|
|
BUILD_IN_SOURCE 1
|
|
|
|
PATCH_COMMAND ""
|
|
|
|
PATCH_COMMAND ""
|
|
|
|
CONFIGURE_COMMAND ""
|
|
|
|
CONFIGURE_COMMAND ""
|
|
|
|
BUILD_COMMAND env PATH=${PROTOBUF_INSTALL_DIR}/bin:$ENV{PATH} ${py_env} ${PYTHON_EXECUTABLE} setup.py build
|
|
|
|
BUILD_COMMAND env ${py_env} ${PYTHON_EXECUTABLE} setup.py build
|
|
|
|
INSTALL_COMMAND env PATH=${PROTOBUF_INSTALL_DIR}/bin:$ENV{PATH} ${py_env} ${PYTHON_EXECUTABLE} setup.py install
|
|
|
|
INSTALL_COMMAND env ${py_env} ${PYTHON_EXECUTABLE} setup.py install
|
|
|
|
DEPENDS python setuptools six
|
|
|
|
DEPENDS python setuptools six
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
####################################################################################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LIST(APPEND external_project_dependencies python setuptools six cython wheel python-protobuf numpy)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENDIF(PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIR})
|
|
|
|
|
|
|
|
INCLUDE_DIRECTORIES(${PYTHON_NUMPY_INCLUDE_DIR})
|
|
|
|
|
|
|
|
|
|
|
|
LIST(APPEND external_project_dependencies python setuptools six cython numpy wheel python-protobuf)
|
|
|
|
MESSAGE("[Paddle] Python Executable: ${PYTHON_EXECUTABLE}")
|
|
|
|
|
|
|
|
MESSAGE("[Paddle] Python Include: ${PYTHON_INCLUDE_DIRS}")
|
|
|
|
|
|
|
|
MESSAGE("[Paddle] Python Libraries: ${PYTHON_LIBRARIES}")
|
|
|
|
|