CMakeLists.txt 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. cmake_minimum_required(VERSION 3.0.0)
  2. project(webrtcinterop VERSION 0.1.0)
  3. MESSAGE(STATUS "operation system is ${CMAKE_HOST_SYSTEM_PROCESSOR}")
  4. SET (CMAKE_CXX_COMPILER "/usr/bin/clang++-12")
  5. if( CMAKE_BUILD_TYPE STREQUAL "Debug" )
  6. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g2 -ggdb -Wall -Wno-unused-variable -pthread")
  7. endif()
  8. # set(CUDA_LIB_DIRS ${CUDA_TOOLKIT_ROOT_DIR}/${CUDA_INSTALL_TARGET_DIR}/lib)
  9. add_definitions(-DWEBRTC_POSIX)
  10. add_definitions(-DWEBRTC_LINUX)
  11. add_definitions(-DJSONCPP_USING_SECURE_MEMORY=0)
  12. set(API_DIR ./include)
  13. # set(CUDA_INCLUDE_DIRS /usr/local/cuda/include)
  14. # set (CUDA_LIB_DIRS /usr/local/cuda/lib64)
  15. # set(ASA /usr/src/jetson_multimedia_api/samples/common/algorithm/cuda)
  16. find_package(CUDA REQUIRED)
  17. enable_language(CUDA)
  18. include_directories(${CUDA_INCLUDES} ./ ./include ./include/libjpeg-8b /usr/include/libdrm)
  19. set(WEBRTC_DIR ../thirdparty/webrtc)
  20. include_directories(${API_DIR})
  21. include_directories(${WEBRTC_DIR}/include)
  22. include_directories(${WEBRTC_DIR}/include/third_party/abseil-cpp)
  23. include_directories(${WEBRTC_DIR}/include/third_party/libyuv/include)
  24. include_directories(${WEBRTC_DIR}/include/third_party/jsoncpp/source/include)
  25. include_directories(${WEBRTC_DIR}/include/third_party/jsoncpp/generated)
  26. include_directories(${WEBRTC_DIR}/include/third_party/libvpx/source/vpx)
  27. include_directories(${CUDA_INCLUDE_DIRS})
  28. # include_directories(/home/nvidia/Desktop/env_enc/jetson_multimedia_api/include)
  29. include_directories(/usr/src/jetson_multimedia_api/include)
  30. include_directories(${CUDA_INCLUDE_DIRS} )
  31. include_directories(${ASA})
  32. FILE(GLOB LIVEHELPERSOURCE src/*.cpp *.cpp )
  33. # FILE(GLOB CUDA_SOURCE *.cu)
  34. aux_source_directory(./common/classes COMMON)
  35. # add_library(webrtcinterop ${LIVEHELPERSOURCE} /home/nvidia/Desktop/env_enc/jetson_multimedia_api/samples/common/classes/NvBufSurface.cpp)
  36. add_library(webrtcinterop ${LIVEHELPERSOURCE} ${COMMON} )
  37. target_compile_definitions(webrtcinterop PUBLIC NO_OPENSSL=1 BSD=1 SOCKLEN_T=socklen_t _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE=1)
  38. link_directories(/usr/lib/aarch64-linux-gnu/tegra /lib/aarch64-linux-gnu /usr/local/lib /usr/lib)
  39. # 链接库
  40. # target_link_libraries(webrtcinterop
  41. # pthread
  42. # # nvv4l2
  43. # /usr/lib/aarch64-linux-gnu/tegra/libv4l2.so.0
  44. # EGL
  45. # GLESv2
  46. # X11
  47. # # nvbufsurface
  48. # # nvbufsurftransform
  49. # # nvjpeg
  50. # # nvosd
  51. # /usr/lib/aarch64-linux-gnu/tegra/libnvbufsurface.so
  52. # /usr/lib/aarch64-linux-gnu/tegra/libnvbufsurftransform.so
  53. # # /usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so
  54. # /usr/lib/aarch64-linux-gnu/tegra/libnvosd.so
  55. # drm
  56. # # cudart
  57. # /usr/local/cuda/lib64/libcudart.so
  58. # vulkan
  59. # )
  60. target_link_libraries(webrtcinterop
  61. ${CUDA_LIBRARIES} pthread v4l2 EGL GLESv2 X11 nvbufsurface nvbufsurftransform nvjpeg nvosd drm cuda)
  62. set(CPACK_PROJECT_NAME ${PROJECT_NAME})
  63. set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
  64. include(CPack)