CMakeLists.txt 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. cmake_minimum_required(VERSION 3.0.0)
  2. project(EgoSystem VERSION 1.0.0)
  3. set(USE_LIDAR OFF)
  4. MESSAGE(STATUS "operation system is ${CMAKE_HOST_SYSTEM_PROCESSOR}")
  5. SET (CMAKE_CXX_COMPILER "/usr/bin/clang++-12")
  6. if( CMAKE_BUILD_TYPE STREQUAL "Debug" )
  7. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g2 -ggdb -Wall -Wno-unused-variable -pthread ")
  8. endif()
  9. add_definitions(-DJSONCPP_USING_SECURE_MEMORY=0)
  10. add_definitions(-DWEBRTC_POSIX=1)
  11. add_definitions(-DWEBRTC_LINUX=1)
  12. set(API_DIR ../webrtcinterop/include)
  13. find_package(CUDA REQUIRED)
  14. enable_language(CUDA)
  15. include_directories(${API_DIR})
  16. include_directories(${CUDA_INCLUDE_DIRS} )
  17. find_package(PkgConfig REQUIRED)
  18. pkg_check_modules(GLIB_PKG glib-2.0)
  19. if (GLIB_PKG_FOUND)
  20. message(Found glib-2.0)
  21. endif (GLIB_PKG_FOUND)
  22. find_path(MODBUS_INCLUDE_DIR NAMES modbus.h modbus/modbus.h REQUIRED)
  23. message(STATUS "MODBUS_INCLUDE_DIR: ${MODBUS_INCLUDE_DIR}")
  24. # message("${protobuf_INCLUDE_DIRS}")
  25. file(GLOB native_srcs "*.cpp")
  26. set(CURDIR ${CMAKE_CURRENT_LIST_DIR})
  27. file(GLOB common_srcs ${CURDIR}/../common/*.cpp)
  28. include_directories(${protobuf_INCLUDE_DIRS})
  29. set(RS_DRIVER ${CURDIR}/../thirdparty/rs_driver)
  30. message(RS_DRIVER "${RS_DRIVER}")
  31. include_directories(${RS_DRIVER})
  32. include_directories(${CURDIR}/../thirdparty/protobuf/include)
  33. include_directories(${CURDIR}/../Protocol/linux/)
  34. file(GLOB proto_srcs ${CURDIR}/../Protocol/linux/*.cc)
  35. file(GLOB lidar_srcs ${CURDIR}/lidar/*.cpp)
  36. link_directories("../webrtcinterop/build")
  37. IF(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64")
  38. link_directories("../thirdparty/webrtc/lib/linux")
  39. elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
  40. link_directories("../thirdparty/webrtc/lib/aarch64")
  41. link_directories("../thirdparty/protobuf/lib/aarch64")
  42. endif()
  43. include_directories("../thirdparty/Mqtt/inlcude/")
  44. link_directories("../thirdparty/Mqtt/lib/")
  45. include_directories(${CUDA_INCLUDES} /usr/src/jetson_multimedia_api/include /usr/src/jetson_multimedia_api/include/libjpeg-8b /usr/include/libdrm)
  46. aux_source_directory(../webrtcinterop/common/classes COMMON)
  47. add_executable(EgoSystem ${native_srcs} ${common_srcs} ${proto_srcs} ${COMMON} )
  48. find_package(Boost COMPONENTS system REQUIRED)
  49. message(Boost "${Boost_SYSTEM_LIBRARY}")
  50. #list(APPEND EXTERNAL_LIBS pcap)
  51. list(APPEND EXTERNAL_LIBS "-lpthread")
  52. #list(APPEND EXTERNAL_LIBS pcap)
  53. list(APPEND EXTERNAL_LIBS "libprotobuf.a")
  54. target_link_libraries(EgoSystem libwebrtcinterop.a)
  55. target_link_libraries(EgoSystem libwebrtc.a)
  56. target_link_libraries(EgoSystem ${EXTERNAL_LIBS} )
  57. target_link_libraries(EgoSystem libpcanbasic.so.8)
  58. target_link_libraries(EgoSystem libpcanbasic.so)
  59. target_link_libraries(EgoSystem libpcanbasic.so.0)
  60. target_link_libraries(EgoSystem libpaho-mqtt3a.a)
  61. target_link_libraries(EgoSystem libpaho-mqtt3c.a)
  62. target_link_libraries(EgoSystem libjsoncpp.so)
  63. target_link_libraries(EgoSystem ${Boost_SYSTEM_LIBRARY})
  64. target_link_libraries(EgoSystem dl)
  65. target_link_libraries(EgoSystem X11)
  66. target_link_libraries(EgoSystem ${GLIB_LIBRARIES})
  67. link_directories(/usr/lib/aarch64-linux-gnu/tegra /lib/aarch64-linux-gnu /usr/local/lib /usr/lib)
  68. # target_link_libraries(EgoSystem ${CUDA_LIBRARIES} pthread v4l2 EGL GLESv2 X11 nvbufsurface nvbufsurftransform nvjpeg nvosd drm cuda)
  69. target_link_libraries(EgoSystem ${CUDA_LIBRARIES} pthread v4l2 EGL GLESv2 X11 /usr/lib/aarch64-linux-gnu/tegra/libnvbufsurface.so /usr/lib/aarch64-linux-gnu/tegra/libnvbufsurftransform.so
  70. /usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so
  71. /usr/lib/aarch64-linux-gnu/tegra/libnvosd.so
  72. /usr/lib/aarch64-linux-gnu/libdrm.so)
  73. # target_link_libraries(EgoSystem ${CUDA_LIBRARIES} pthread v4l2 EGL GLESv2 X11 ${LIB})