CMakeLists.txt 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. define_module("sipphone")
  2. if(RVC_DEBUG_MODE)
  3. set(STRMBASE_LIB strmbasd)
  4. set(SPBASE_LIB spbased)
  5. set(TOOLKIT_LIB libtoolkitd)
  6. set(RVCCOMM_LIB RVCCommD)
  7. else()
  8. set(STRMBASE_LIB strmbase)
  9. set(SPBASE_LIB spbase)
  10. set(TOOLKIT_LIB libtoolkit)
  11. set(RVCCOMM_LIB RVCComm)
  12. endif(RVC_DEBUG_MODE)
  13. if(MSVC)
  14. set(STDAFXCPP stdafx.cpp)
  15. else()
  16. set(STDAFXCPP )
  17. endif(MSVC)
  18. if(MSVC)
  19. set(${SIPPHONE_PLATFORM}_SRCS
  20. uuid.cpp
  21. volumekeeper.h
  22. volumekeeper.cpp
  23. )
  24. else()
  25. set(${SIPPHONE_PLATFORM}_SRCS
  26. videorenderobj.h
  27. videorenderobj.cpp
  28. audio_pulse.h
  29. audio_pulse.cpp
  30. )
  31. endif(MSVC)
  32. set(${MODULE_PREFIX}_SRCS
  33. audio_session.h
  34. endpoint.h
  35. Event.h
  36. SIPPhone_msg_g.h
  37. SIPPhone_client_g.h
  38. SIPPhone_def_g.h
  39. SIPPhone_server_g.h
  40. video_session.h
  41. #${STDAFXCPP}
  42. audio_session.cpp
  43. endpoint.cpp
  44. mod_sipphone.cpp
  45. video_session.cpp
  46. ${${SIPPHONE_PLATFORM}_SRCS}
  47. )
  48. set(MOD_VERSION_STRING "0.0.1-dev1")
  49. add_module_libraries(${MODULE_PREFIX} ${MODULE_NAME} ${MOD_VERSION_STRING})
  50. if(WIN32)
  51. #add_precompiled_header(${MODULE_NAME} stdafx.h SOURCE_CXX stdafx.cpp FORCEINCLUDE)
  52. endif(WIN32)
  53. if(MSVC)
  54. conan_cmake_run(REQUIRES opencv/3.1.0@LR04.02_ThirdParty/testing
  55. BASIC_SETUP CMAKE_TARGETS)
  56. else()
  57. conan_cmake_run(REQUIRES opencv/3.1.0@LR04.02_ThirdParty/stable
  58. BASIC_SETUP CMAKE_TARGETS
  59. BUILD missing)
  60. endif(MSVC)
  61. if(WIN32)
  62. conan_cmake_run(REQUIRES portaudio/v190600.20161030@LR04.02_ThirdParty/testing
  63. BASIC_SETUP CMAKE_TARGETS
  64. BUILD missing)
  65. else(WIN32)
  66. conan_cmake_run(REQUIRES pulseaudio/14.0.1@LR04.02_ThirdParty/dynamic
  67. BASIC_SETUP CMAKE_TARGETS)
  68. endif(WIN32)
  69. if(WIN32)
  70. conan_cmake_run(REQUIRES ffmpeg/4.1@LR04.02_ThirdParty/testing
  71. BASIC_SETUP CMAKE_TARGETS
  72. BUILD missing)
  73. else(WIN32)
  74. conan_cmake_run(REQUIRES ffmpeg/4.1.6@LR04.02_ThirdParty/stable
  75. BASIC_SETUP CMAKE_TARGETS
  76. BUILD missing)
  77. endif(WIN32)
  78. if(WIN32)
  79. conan_cmake_run(REQUIRES IPP/1.0@LR04.02_ThirdParty/testing
  80. lib8k/1.0@LR04.02_ThirdParty/testing
  81. # spandsp/0.0.6@LR04.02_ThirdParty/testing
  82. BASIC_SETUP CMAKE_TARGETS
  83. BUILD missing)
  84. endif(WIN32)
  85. if(WIN32)
  86. conan_cmake_run(REQUIRES apache-apr/1.4.2@LR04.02_ThirdParty/testing
  87. BASIC_SETUP CMAKE_TARGETS
  88. BUILD missing)
  89. else(WIN32)
  90. conan_cmake_run(REQUIRES apr/1.7.0@LR04.02_ThirdParty/shared
  91. BASIC_SETUP CMAKE_TARGETS
  92. BUILD missing)
  93. endif(WIN32)
  94. if(WIN32)
  95. conan_cmake_run(REQUIRES sofia/1.12.11@LR04.02_ThirdParty/testing
  96. BASIC_SETUP CMAKE_TARGETS
  97. BUILD missing)
  98. else(WIN32)
  99. conan_cmake_run(REQUIRES sofia/1.13@LR04.02_ThirdParty/testing
  100. BASIC_SETUP CMAKE_TARGETS
  101. BUILD missing)
  102. endif(WIN32)
  103. conan_cmake_run(REQUIRES SpeexDSP/1.2rc3@LR04.02_ThirdParty/testing
  104. spandsp/0.0.6@LR04.02_ThirdParty/testing
  105. BASIC_SETUP CMAKE_TARGETS
  106. BUILD missing)
  107. if(NOT WIN32)
  108. target_include_directories(${MODULE_NAME} PRIVATE
  109. ${CONAN_INCLUDE_DIRS_PULSEAUDIO})
  110. endif(NOT WIN32)
  111. target_include_directories(${MODULE_NAME} PRIVATE
  112. ${CONAN_INCLUDE_DIRS_APR}/apr-1
  113. ${CONAN_RVCFRAMEWORK_ROOT}/include
  114. ${CONAN_RVCFRAMEWORK_ROOT}/include/libtoolkit
  115. ${CONAN_INCLUDE_DIRS_FFMPEG}
  116. ${CONAN_INCLUDE_DIRS_OPENCV}
  117. ${CONAN_INCLUDE_DIRS_OPENCV}/opencv
  118. ${RVC_TOOLKIT_INCLUDE_DIR}
  119. ${RVC_FRAMEWORK_INCLUDES_DIR}
  120. if(WIN32)
  121. ${CONAN_INCLUDE_DIRS_PORTAUDIO}
  122. ${CONAN_INCLUDE_DIRS_IPP}
  123. ${CONAN_INCLUDE_DIRS_APACHE-APR}/include
  124. ${CONAN_INCLUDE_DIRS_SOFIA}/libsofia-sip-ua/su
  125. ${CONAN_INCLUDE_DIRS_SOFIA}/win32
  126. ${CONAN_INCLUDE_DIRS_SOFIA}/libsofia-sip-ua/nua
  127. ${CONAN_INCLUDE_DIRS_SOFIA}/libsofia-sip-ua/url
  128. ${CONAN_INCLUDE_DIRS_SOFIA}/libsofia-sip-ua/sip
  129. ${CONAN_INCLUDE_DIRS_SOFIA}/libsofia-sip-ua/msg
  130. ${CONAN_INCLUDE_DIRS_SOFIA}/libsofia-sip-ua/sdp
  131. ${CONAN_INCLUDE_DIRS_SOFIA}/libsofia-sip-ua/nta
  132. ${CONAN_INCLUDE_DIRS_SOFIA}/libsofia-sip-ua/nea
  133. ${CONAN_INCLUDE_DIRS_SOFIA}/libsofia-sip-ua/soa
  134. else
  135. ${CONAN_INCLUDE_DIRS_APR}/apr-1
  136. ${CONAN_INCLUDE_DIRS_SOFIA}/sofia-sip-1.13
  137. endif(WIN32)
  138. )
  139. message(STATUS "CONAN_INCLUDE_DIRS_SOFIA == ${CONAN_INCLUDE_DIRS_SOFIA}")
  140. target_link_directories(${MODULE_NAME} PRIVATE
  141. ${CONAN_LIB_DIRS_FFMPEG}
  142. ${CONAN_LIB_DIRS_OPENCV}
  143. ${CONAN_LIB_DIRS_RVCFRAMEWORK}
  144. ${CONAN_LIB_DIRS_SPANDSP}
  145. ${CONAN_LIB_DIRS_SOFIA}
  146. ${CONAN_LIB_DIRS_SPEEXDSP}
  147. ${CONAN_LIB_DIRS_LIBKYSM}
  148. if(WIN32)
  149. ${CONAN_LIB_DIRS_PORTAUDIO}
  150. ${CONAN_LIB_DIRS_IPP}
  151. ${CONAN_LIB_DIRS_LIB8K}
  152. ${CONAN_LIB_DIRS_APACHE-APR}
  153. else
  154. ${CONAN_LIB_DIRS_APR}
  155. endif(WIN32)
  156. )
  157. if(NOT WIN32)
  158. target_link_directories(${MODULE_NAME} PRIVATE
  159. ${CONAN_LIB_DIRS_PULSEAUDIO}
  160. )
  161. endif(NOT WIN32)
  162. # 添加实体需要依赖的其他共享库(包括系统库)
  163. if(WIN32)
  164. set(${MODULE_PREFIX}_LIBS ${MODULE_BASE_LIBS}
  165. ${CONAN_PKG_LIBS_PORTAUDIO}
  166. ${CONAN_PKG_LIBS_FFMPEG}
  167. ${CONAN_LIBS_OPENCV}
  168. ${SPBASE_LIB}
  169. ${TOOLKIT_LIB}
  170. ${CONAN_PKG_LIBS_APACHE-APR}
  171. ${CONAN_PKG_LIBS_LIB8K}
  172. ${CONAN_PKG_LIBS_SPANDSP}
  173. ${CONAN_PKG_LIBS_SOFIA}
  174. ${CONAN_PKG_LIBS_IPP}
  175. ${CONAN_PKG_LIBS_SPEEXDSP}
  176. # ${STRMBASE_LIB}
  177. ws2_32
  178. strmiids
  179. Vfw32
  180. winmm
  181. Msdmo
  182. dmoguids
  183. wmcodecdspuuid
  184. uuid
  185. amstrmid
  186. mfuuid
  187. libaudioframework
  188. libvideoframework
  189. audioqueue
  190. videoqueue
  191. libvideohorflip
  192. )
  193. else(WIN32)
  194. set(${MODULE_PREFIX}_LIBS ${MODULE_BASE_LIBS}
  195. ${CONAN_PKG_LIBS_FFMPEG}
  196. ${CONAN_LIBS_OPENCV}
  197. ${SPBASE_LIB}
  198. ${TOOLKIT_LIB}
  199. ${CONAN_PKG_LIBS_APR}
  200. ${CONAN_PKG_LIBS_SPANDSP}
  201. ${CONAN_PKG_LIBS_SOFIA}
  202. ${CONAN_PKG_LIBS_SPEEXDSP}
  203. libaudioframework
  204. libvideoframework
  205. audioqueue
  206. videoqueue
  207. asound
  208. pthread
  209. ${RVCCOMM_LIB}
  210. ${CONAN_PKG_LIBS_LIBKYSM}
  211. ${WINPR_LIB}
  212. videorender
  213. audiomgr
  214. )
  215. endif(WIN32)
  216. target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
  217. deploy_module(${MODULE_PREFIX} ${MODULE_NAME})
  218. if(MSVC)
  219. set(MODULE_CONAN_DEP_LIBS ${MODULE_CONAN_DEP_LIBS} ${CONAN_BIN_DIRS} PARENT_SCOPE)
  220. else()
  221. set(MODULE_CONAN_DEP_LIBS ${MODULE_CONAN_DEP_LIBS} ${CONAN_LIB_DIRS} PARENT_SCOPE)
  222. endif(MSVC)