CMakeLists.txt 3.3 KB

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