|
|
|
@ -1,3 +1,21 @@
|
|
|
|
|
FUNCTION(generate_python_api target_name)
|
|
|
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${PROJ_ROOT}/paddle/py_paddle/swig_paddle.py
|
|
|
|
|
${PROJ_ROOT}/paddle/Paddle_wrap.cxx
|
|
|
|
|
${PROJ_ROOT}/paddle/Paddle_wrap.h
|
|
|
|
|
COMMAND ${SWIG_EXECUTABLE} -python -c++ -outcurrentdir -I../ api/Paddle.swig
|
|
|
|
|
&& mv ${PROJ_ROOT}/paddle/swig_paddle.py ${PROJ_ROOT}/paddle/py_paddle/swig_paddle.py
|
|
|
|
|
DEPENDS ${PROJ_ROOT}/paddle/api/Paddle.swig
|
|
|
|
|
${PROJ_ROOT}/paddle/api/PaddleAPI.h
|
|
|
|
|
${external_project_dependencies}
|
|
|
|
|
WORKING_DIRECTORY ${PROJ_ROOT}/paddle
|
|
|
|
|
COMMENT "Generate Python API from swig")
|
|
|
|
|
ADD_CUSTOM_TARGET(${target_name} ALL DEPENDS
|
|
|
|
|
${PROJ_ROOT}/paddle/Paddle_wrap.cxx
|
|
|
|
|
${PROJ_ROOT}/paddle/Paddle_wrap.h
|
|
|
|
|
${PROJ_ROOT}/paddle/py_paddle/swig_paddle.py
|
|
|
|
|
${external_project_dependencies})
|
|
|
|
|
ENDFUNCTION(generate_python_api)
|
|
|
|
|
|
|
|
|
|
set(API_SOURCES
|
|
|
|
|
Arguments.cpp
|
|
|
|
|
ConfigParser.cpp
|
|
|
|
@ -42,7 +60,7 @@ file(GLOB PY_PADDLE_PYTHON_FILES ${PROJ_ROOT}/paddle/py_paddle/*.py)
|
|
|
|
|
|
|
|
|
|
# TODO(yuyang18) : make wheel name calculated by cmake
|
|
|
|
|
add_custom_command(OUTPUT ${PROJ_ROOT}/paddle/dist/.timestamp
|
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} setup.py bdist_wheel
|
|
|
|
|
COMMAND env ${py_env} ${PYTHON_EXECUTABLE} setup.py bdist_wheel
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E touch dist/.timestamp
|
|
|
|
|
COMMAND rm -rf py_paddle.egg-info build
|
|
|
|
|
WORKING_DIRECTORY ${PROJ_ROOT}/paddle
|
|
|
|
@ -76,5 +94,17 @@ add_dependencies(python_api_wheel python_swig_sources
|
|
|
|
|
paddle_cuda)
|
|
|
|
|
|
|
|
|
|
if(WITH_TESTING)
|
|
|
|
|
SET(PIP_SOURCES_DIR ${PYTHON_SOURCES_DIR}/pip)
|
|
|
|
|
ExternalProject_Add(pip
|
|
|
|
|
${EXTERNAL_PROJECT_LOG_ARGS}
|
|
|
|
|
GIT_REPOSITORY https://github.com/pypa/pip.git
|
|
|
|
|
GIT_TAG 9.0.1
|
|
|
|
|
PREFIX ${PIP_SOURCES_DIR}
|
|
|
|
|
CONFIGURE_COMMAND ""
|
|
|
|
|
BUILD_COMMAND ""
|
|
|
|
|
INSTALL_COMMAND env ${py_env} ${PYTHON_EXECUTABLE} setup.py install
|
|
|
|
|
BUILD_IN_SOURCE 1
|
|
|
|
|
DEPENDS python setuptools python_api_wheel
|
|
|
|
|
)
|
|
|
|
|
add_subdirectory(test)
|
|
|
|
|
endif()
|
|
|
|
|