CMakeLists.txt 4.7 KB
Newer Older
1
if (CLIENT)
B
barrierye 已提交
2 3 4
    file(INSTALL pipeline DESTINATION paddle_serving_client)
    execute_process(COMMAND ${PYTHON_EXECUTABLE} run_codegen.py
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/paddle_serving_client/pipeline/proto)
M
MRXLT 已提交
5 6 7 8
    file(GLOB_RECURSE SERVING_CLIENT_PY_FILES paddle_serving_client/*.py)
    set(PY_FILES ${SERVING_CLIENT_PY_FILES})
    SET(PACKAGE_NAME "serving_client")
    set(SETUP_LOG_FILE "setup.py.client.log")
G
guru4elephant 已提交
9 10
endif()

11
if (SERVER)
M
MRXLT 已提交
12
    if (NOT WITH_GPU)
13
        file(INSTALL pipeline DESTINATION paddle_serving_server)
B
barrierye 已提交
14 15
        execute_process(COMMAND ${PYTHON_EXECUTABLE} run_codegen.py
            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/paddle_serving_server/pipeline/proto)
M
MRXLT 已提交
16 17
        file(GLOB_RECURSE SERVING_SERVER_PY_FILES paddle_serving_server/*.py)
    else()
18
        file(INSTALL pipeline DESTINATION paddle_serving_server_gpu)
B
barrierye 已提交
19 20
        execute_process(COMMAND ${PYTHON_EXECUTABLE} run_codegen.py
            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/paddle_serving_server_gpu/pipeline/proto)
M
MRXLT 已提交
21 22 23 24 25
        file(GLOB_RECURSE SERVING_SERVER_PY_FILES paddle_serving_server_gpu/*.py)
    endif()
        set(PY_FILES ${SERVING_SERVER_PY_FILES})
        SET(PACKAGE_NAME "serving_server")
        set(SETUP_LOG_FILE "setup.py.server.log")
G
guru4elephant 已提交
26
endif()
G
guru4elephant 已提交
27

28
if (CLIENT)
G
guru4elephant 已提交
29
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/setup.py.client.in
G
guru4elephant 已提交
30
    ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
M
MRXLT 已提交
31 32
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../tools/python_tag.py
    ${CMAKE_CURRENT_BINARY_DIR}/python_tag.py)
G
guru4elephant 已提交
33 34
endif()

35 36 37 38 39 40
if (APP)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/setup.py.app.in
    ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
endif()

if (SERVER)
M
MRXLT 已提交
41 42 43 44 45 46 47
    if (NOT WITH_GPU)
        configure_file(${CMAKE_CURRENT_SOURCE_DIR}/setup.py.server.in
            ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
    else()
        configure_file(${CMAKE_CURRENT_SOURCE_DIR}/setup.py.server_gpu.in
            ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
    endif()
G
guru4elephant 已提交
48
endif()
G
guru4elephant 已提交
49

M
bug fix  
MRXLT 已提交
50
set (SERVING_CLIENT_CORE ${PADDLE_SERVING_BINARY_DIR}/core/general-client/*.so)
G
guru4elephant 已提交
51 52
message("python env: " ${py_env})

53 54 55 56
if (APP)
add_custom_command(
        OUTPUT ${PADDLE_SERVING_BINARY_DIR}/.timestamp
        COMMAND cp -r ${CMAKE_CURRENT_SOURCE_DIR}/paddle_serving_app/ ${PADDLE_SERVING_BINARY_DIR}/python/
M
MRXLT 已提交
57 58
        COMMAND env ${py_env} ${PYTHON_EXECUTABLE} setup.py bdist_wheel
        DEPENDS ${SERVING_APP_CORE} general_model_config_py_proto ${PY_FILES})
59 60 61 62
add_custom_target(paddle_python ALL DEPENDS ${PADDLE_SERVING_BINARY_DIR}/.timestamp)
endif()

if (CLIENT)
G
guru4elephant 已提交
63 64
add_custom_command(
	OUTPUT ${PADDLE_SERVING_BINARY_DIR}/.timestamp
65
	COMMAND cp -r ${CMAKE_CURRENT_SOURCE_DIR}/paddle_serving_client/ ${PADDLE_SERVING_BINARY_DIR}/python/
M
bug fix  
MRXLT 已提交
66
	COMMAND ${CMAKE_COMMAND} -E copy ${SERVING_CLIENT_CORE} ${PADDLE_SERVING_BINARY_DIR}/python/paddle_serving_client/serving_client.so
M
MRXLT 已提交
67
    COMMAND env ${py_env} ${PYTHON_EXECUTABLE} python_tag.py
G
guru4elephant 已提交
68 69
	COMMAND env ${py_env} ${PYTHON_EXECUTABLE} setup.py bdist_wheel
	DEPENDS ${SERVING_CLIENT_CORE} sdk_configure_py_proto ${PY_FILES})
G
guru4elephant 已提交
70
add_custom_target(paddle_python ALL DEPENDS serving_client ${PADDLE_SERVING_BINARY_DIR}/.timestamp)
G
guru4elephant 已提交
71 72
endif()

73
if (SERVER)
M
MRXLT 已提交
74 75 76 77 78 79 80 81 82 83 84 85
    if(NOT WITH_GPU)
        add_custom_command(
            OUTPUT ${PADDLE_SERVING_BINARY_DIR}/.timestamp
            COMMAND cp -r ${CMAKE_CURRENT_SOURCE_DIR}/paddle_serving_server/ ${PADDLE_SERVING_BINARY_DIR}/python/
            COMMAND env ${py_env} ${PYTHON_EXECUTABLE} setup.py bdist_wheel
            DEPENDS ${SERVING_SERVER_CORE} server_config_py_proto ${PY_FILES})
        add_custom_target(paddle_python ALL DEPENDS ${PADDLE_SERVING_BINARY_DIR}/.timestamp)
    else()
        add_custom_command(
            OUTPUT ${PADDLE_SERVING_BINARY_DIR}/.timestamp
            COMMAND cp -r
            ${CMAKE_CURRENT_SOURCE_DIR}/paddle_serving_server_gpu/ ${PADDLE_SERVING_BINARY_DIR}/python/
M
bug fix  
MRXLT 已提交
86
            COMMAND env ${py_env} ${PYTHON_EXECUTABLE} paddle_serving_server_gpu/gen_cuda_version.py ${CUDA_VERSION_MAJOR}
M
MRXLT 已提交
87 88 89 90
            COMMAND env ${py_env} ${PYTHON_EXECUTABLE} setup.py bdist_wheel
            DEPENDS ${SERVING_SERVER_CORE} server_config_py_proto ${PY_FILES})
        add_custom_target(paddle_python ALL DEPENDS ${PADDLE_SERVING_BINARY_DIR}/.timestamp)
    endif()
G
guru4elephant 已提交
91
endif()
G
guru4elephant 已提交
92 93

set(SERVING_CLIENT_PYTHON_PACKAGE_DIR ${CMAKE_CURRENT_BINARY_DIR}/dist/)
G
guru4elephant 已提交
94
set(SERVING_SERVER_PYTHON_PACKAGE_DIR ${CMAKE_CURRENT_BINARY_DIR}/dist/)
G
guru4elephant 已提交
95

96
if (CLIENT)
G
guru4elephant 已提交
97 98 99
install(DIRECTORY ${SERVING_CLIENT_PYTHON_PACKAGE_DIR}
    DESTINATION opt/serving_client/share/wheels
)
G
guru4elephant 已提交
100 101
endif()

102
if (SERVER)
G
guru4elephant 已提交
103 104 105 106
install(DIRECTORY ${SERVING_SERVER_PYTHON_PACKAGE_DIR}
    DESTINATION opt/serving_server/share/wheels
)
endif()
G
guru4elephant 已提交
107

108
if (CLIENT OR SERVER)
G
guru4elephant 已提交
109
find_program(PATCHELF_EXECUTABLE patchelf)
110
if (NOT PATCHELF_EXECUTABLE)
G
guru4elephant 已提交
111 112 113
  message(FATAL_ERROR "patchelf not found, please install it.\n"
         "For Ubuntu, the command is: apt-get install -y patchelf.")
endif()
114
endif()