CMakeLists.txt 4.4 KB
Newer Older
1
if (CLIENT)
Z
zhangjun 已提交
2 3 4 5 6
  file(INSTALL pipeline DESTINATION paddle_serving_client)
  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 已提交
7 8
endif()

9
if (SERVER)
Z
zhangjun 已提交
10
  SET(SERVER_PACKAGE_NAME "paddle-serving-server")
Z
update  
zhangjun 已提交
11 12 13 14
  if (WITH_GPU) 
    set(SERVER_PACKAGE_NAME "paddle-serving-server-gpu")
  elseif(WITH_XPU)
    set(SERVER_PACKAGE_NAME "paddle-serving-server-xpu")
S
ShiningZhang 已提交
15 16
  elseif(WITH_ROCM)
    set(SERVER_PACKAGE_NAME "paddle-serving-server-rocm")
17 18
  elseif(WITH_ASCEND_CL)
    set(SERVER_PACKAGE_NAME "paddle-serving-server-npu")
Z
update  
zhangjun 已提交
19
  endif()
Z
zhangjun 已提交
20 21 22 23
  file(INSTALL pipeline DESTINATION paddle_serving_server)
  file(GLOB_RECURSE SERVING_SERVER_PY_FILES paddle_serving_server/*.py)
  set(PY_FILES ${SERVING_SERVER_PY_FILES})
  set(SETUP_LOG_FILE "setup.py.server.log")
G
guru4elephant 已提交
24
endif()
G
guru4elephant 已提交
25

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

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

if (SERVER)
Z
zhangjun 已提交
41 42
  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/setup.py.server.in
    ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
G
guru4elephant 已提交
43
endif()
G
guru4elephant 已提交
44

M
MRXLT 已提交
45 46 47
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/gen_version.py
    ${CMAKE_CURRENT_BINARY_DIR}/gen_version.py)

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

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

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

73
if (SERVER)
Z
zhangjun 已提交
74 75 76 77 78
  # todo, generate suffix for cpu、gpu、arm
  if(WITH_TRT)
    if(CUDA_VERSION EQUAL 10.1)
      set(VERSION_SUFFIX 101)
    elseif(CUDA_VERSION EQUAL 10.2)
B
bjjwwang 已提交
79
      if(CUDNN_MAJOR_VERSION EQUAL 7)
B
bjjwwang 已提交
80
        set(VERSION_SUFFIX 102)
B
bjjwwang 已提交
81
      elseif(CUDNN_MAJOR_VERSION EQUAL 8)
B
bjjwwang 已提交
82 83 84 85
        set(VERSION_SUFFIX 1028)
      endif()
    elseif(CUDA_VERSION EQUAL 11.2)
      set(VERSION_SUFFIX 112)
Z
zhangjun 已提交
86 87 88 89
    endif()
  endif()

  if(WITH_LITE)
Z
update  
zhangjun 已提交
90
    set(VERSION_SUFFIX 2)
Z
zhangjun 已提交
91 92 93 94 95 96 97 98 99 100
  endif()
  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} gen_version.py
    "server" ${VERSION_SUFFIX}
    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)
G
guru4elephant 已提交
101
endif()
G
guru4elephant 已提交
102 103

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

106
if (CLIENT)
Z
zhangjun 已提交
107
  install(DIRECTORY ${SERVING_CLIENT_PYTHON_PACKAGE_DIR}
G
guru4elephant 已提交
108
    DESTINATION opt/serving_client/share/wheels
Z
zhangjun 已提交
109
  )
G
guru4elephant 已提交
110 111
endif()

112
if (SERVER)
Z
zhangjun 已提交
113 114 115
  install(DIRECTORY ${SERVING_SERVER_PYTHON_PACKAGE_DIR}
      DESTINATION opt/serving_server/share/wheels
  )
G
guru4elephant 已提交
116
endif()
G
guru4elephant 已提交
117

118
if (CLIENT OR SERVER)
Z
zhangjun 已提交
119 120 121 122 123
  find_program(PATCHELF_EXECUTABLE patchelf)
  if (NOT PATCHELF_EXECUTABLE)
    message(FATAL_ERROR "patchelf not found, please install it.\n"
           "For Ubuntu, the command is: apt-get install -y patchelf.")
  endif()
124
endif()