CMakeLists.txt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. cmake_minimum_required(VERSION 3.0)
  2. project(PaddleDeploy CXX C)
  3. SET(TRITON_CLIENT "" CACHE PATH "Location of libraries")
  4. SET(GLOG_DIR "" CACHE PATH "Location of libraries")
  5. SET(GFLAGS_DIR "" CACHE PATH "Location of libraries")
  6. SET(OPENCV_DIR "" CACHE PATH "Location of libraries")
  7. SET(PROJECT_ROOT_DIR "../../" CACHE PATH "root directory of project.")
  8. set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
  9. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
  10. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/demo)
  11. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -o2 -fopenmp -std=c++11")
  12. #source
  13. include_directories("${CMAKE_SOURCE_DIR}/")
  14. link_directories("${CMAKE_CURRENT_BINARY_DIR}")
  15. # yaml-cpp
  16. SET(YAML_BUILD_SHARED_LIBS ON CACHE BOOL "yaml build shared library.")
  17. include(${PROJECT_ROOT_DIR}/cmake/yaml-cpp.cmake)
  18. include_directories("${CMAKE_CURRENT_BINARY_DIR}/ext/yaml-cpp/src/ext-yaml-cpp/include")
  19. link_directories("${CMAKE_CURRENT_BINARY_DIR}/ext/yaml-cpp/lib")
  20. # Triton
  21. MESSAGE("${GFLAGS_DIR}")
  22. include_directories("${GFLAGS_DIR}/include")
  23. link_directories("${GFLAGS_DIR}/lib")
  24. include_directories("${GLOG_DIR}/include")
  25. link_directories("${GLOG_DIR}/lib")
  26. include_directories("${TRITON_CLIENT}/include")
  27. link_directories("${TRITON_CLIENT}/lib")
  28. set(DEPS ${TRITON_CLIENT}/lib/libhttpclient${CMAKE_SHARED_LIBRARY_SUFFIX})
  29. set(DEPS ${DEPS} glog gflags protobuf yaml-cpp)
  30. # OPENCV
  31. if (NOT (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64"))
  32. if (NOT DEFINED OPENCV_DIR OR ${OPENCV_DIR} STREQUAL "")
  33. message(FATAL_ERROR "please set OPENCV_DIR with -DOPENCV_DIR=/path/opencv")
  34. endif()
  35. endif()
  36. if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64") # x86_64 aarch64
  37. set(OpenCV_INCLUDE_DIRS "/usr/include/opencv4")
  38. file(GLOB OpenCV_LIBS /usr/lib/aarch64-linux-gnu/libopencv_*${CMAKE_SHARED_LIBRARY_SUFFIX})
  39. message("OpenCV libs: ${OpenCV_LIBS}")
  40. else()
  41. find_package(OpenCV REQUIRED PATHS ${OPENCV_DIR}/share/OpenCV NO_DEFAULT_PATH)
  42. endif()
  43. set(DEPS ${DEPS} ${OpenCV_LIBS})
  44. include_directories(${OpenCV_INCLUDE_DIRS})
  45. message("-----DEPS = ${DEPS}")
  46. #project
  47. include_directories("${PROJECT_ROOT_DIR}")
  48. aux_source_directory(${PROJECT_ROOT_DIR}/model_deploy/common/src SRC)
  49. set(ENGINE_SRC ${PROJECT_ROOT_DIR}/model_deploy/engine/src/triton_engine.cpp)
  50. #detector seg
  51. aux_source_directory(${PROJECT_ROOT_DIR}/model_deploy/ppdet/src DETECTOR_SRC)
  52. aux_source_directory(${PROJECT_ROOT_DIR}/model_deploy/ppseg/src DETECTOR_SRC)
  53. aux_source_directory(${PROJECT_ROOT_DIR}/model_deploy/ppclas/src DETECTOR_SRC)
  54. aux_source_directory(${PROJECT_ROOT_DIR}/model_deploy/paddlex/src DETECTOR_SRC)
  55. add_executable(model_infer ${PROJECT_ROOT_DIR}/demo/onnx_triton/model_infer.cpp ${SRC} ${ENGINE_SRC} ${DETECTOR_SRC})
  56. ADD_DEPENDENCIES(model_infer ext-yaml-cpp)
  57. target_link_libraries(model_infer ${DEPS})