CMakeLists.txt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. cmake_minimum_required(VERSION 3.0.0)
  2. project(EgoSystem VERSION 1.0.0)
  3. MESSAGE(STATUS "operation system is ${CMAKE_HOST_SYSTEM_PROCESSOR}")
  4. #IF(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64")
  5. # SET (CMAKE_C_COMPILER "/usr/bin/clang")
  6. SET (CMAKE_CXX_COMPILER "/usr/bin/clang++-12")
  7. # SET (CMAKE_AR "/usr/bin/llvm-ar")
  8. # SET (CMAKE_LINKER "/usr/bin/llvm-ld")
  9. # SET (CMAKE_NM "/usr/bin/llvm-nm")
  10. # SET (CMAKE_OBJDUMP "/usr/bin/llvm-objdump")
  11. #ENDIF()
  12. if( CMAKE_BUILD_TYPE STREQUAL "Debug" )
  13. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g2 -ggdb -Wall -Wno-unused-variable -pthread ")
  14. endif()
  15. add_definitions(-DJSONCPP_USING_SECURE_MEMORY=0)
  16. add_definitions(-DWEBRTC_POSIX=1)
  17. add_definitions(-DWEBRTC_LINUX=1)
  18. set(API_DIR ../webrtcinterop/include)
  19. include_directories(${API_DIR})
  20. find_package(PkgConfig REQUIRED)
  21. pkg_check_modules(GLIB_PKG glib-2.0)
  22. if (GLIB_PKG_FOUND)
  23. message(Found glib-2.0)
  24. endif (GLIB_PKG_FOUND)
  25. find_path(MODBUS_INCLUDE_DIR NAMES modbus.h modbus/modbus.h REQUIRED)
  26. message(STATUS "MODBUS_INCLUDE_DIR: ${MODBUS_INCLUDE_DIR}")
  27. message("${protobuf_INCLUDE_DIRS}")
  28. file(GLOB native_srcs "*.cpp")
  29. set(CURDIR ${CMAKE_CURRENT_LIST_DIR})
  30. file(GLOB common_srcs ${CURDIR}/../common/*.cpp)
  31. include_directories(${protobuf_INCLUDE_DIRS})
  32. set(RS_DRIVER ${CURDIR}/../thirdparty/rs_driver)
  33. message(RS_DRIVER "${RS_DRIVER}")
  34. include_directories(${RS_DRIVER})
  35. include_directories(${CURDIR}/../thirdparty/protobuf/include)
  36. include_directories(${CURDIR}/../Protocol/linux/)
  37. file(GLOB proto_srcs ${CURDIR}/../Protocol/linux/*.cc)
  38. file(GLOB lidar_srcs ${CURDIR}/lidar/*.cpp)
  39. link_directories("../webrtcinterop/build")
  40. IF(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64")
  41. link_directories("../thirdparty/webrtc/lib/linux")
  42. elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
  43. link_directories("../thirdparty/webrtc/lib/aarch64")
  44. link_directories("../thirdparty/protobuf/lib/aarch64")
  45. endif()
  46. include_directories("../thirdparty/Mqtt/inlcude/")
  47. link_directories("../thirdparty/Mqtt/lib/")
  48. add_executable(EgoSystem ${native_srcs} ${common_srcs} ${proto_srcs})
  49. find_package(Boost COMPONENTS system REQUIRED)
  50. message(Boost "${Boost_SYSTEM_LIBRARY}")
  51. #find_library(
  52. # UDEV_LIB
  53. # udev
  54. #)
  55. #list(APPEND EXTERNAL_LIBS pcap)
  56. list(APPEND EXTERNAL_LIBS "-lpthread")
  57. #list(APPEND EXTERNAL_LIBS pcap)
  58. list(APPEND EXTERNAL_LIBS "libprotobuf.a")
  59. target_link_libraries(EgoSystem libwebrtcinterop.a)
  60. target_link_libraries(EgoSystem libwebrtc.a)
  61. target_link_libraries(EgoSystem ${EXTERNAL_LIBS} )
  62. target_link_libraries(EgoSystem libpcanbasic.so.8)
  63. target_link_libraries(EgoSystem libpcanbasic.so)
  64. target_link_libraries(EgoSystem libpcanbasic.so.0)
  65. target_link_libraries(EgoSystem libpaho-mqtt3a.a)
  66. target_link_libraries(EgoSystem libpaho-mqtt3c.a)
  67. target_link_libraries(EgoSystem libjsoncpp.so)
  68. target_link_libraries(EgoSystem ${Boost_SYSTEM_LIBRARY})
  69. target_link_libraries(EgoSystem dl)
  70. target_link_libraries(EgoSystem X11)
  71. target_link_libraries(EgoSystem ${GLIB_LIBRARIES})
  72. target_link_libraries(EgoSystem
  73. pthread
  74. # nvv4l2
  75. /usr/lib/aarch64-linux-gnu/tegra/libv4l2.so.0
  76. EGL
  77. GLESv2
  78. X11
  79. # nvbufsurface
  80. # nvbufsurftransform
  81. # nvjpeg
  82. # nvosd
  83. /usr/lib/aarch64-linux-gnu/tegra/libnvbufsurface.so
  84. /usr/lib/aarch64-linux-gnu/tegra/libnvbufsurftransform.so
  85. # /usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so
  86. /usr/lib/aarch64-linux-gnu/tegra/libnvosd.so
  87. drm
  88. # cudart
  89. /usr/local/cuda/lib64/libcudart.so
  90. vulkan
  91. )
  92. target_link_libraries(EgoSystem
  93. pthread
  94. # nvv4l2
  95. /usr/lib/aarch64-linux-gnu/tegra/libv4l2.so.0
  96. EGL
  97. GLESv2
  98. X11
  99. # nvbufsurface
  100. # nvbufsurftransform
  101. # nvjpeg
  102. # nvosd
  103. /usr/lib/aarch64-linux-gnu/tegra/libnvbufsurface.so
  104. /usr/lib/aarch64-linux-gnu/tegra/libnvbufsurftransform.so
  105. # /usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so
  106. /usr/lib/aarch64-linux-gnu/tegra/libnvosd.so
  107. drm
  108. # cudart
  109. /usr/local/cuda/lib64/libcudart.so
  110. vulkan
  111. )