CMakeLists.txt 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. set(MODULE_NAME "libaudioframework")
  2. set(MODULE_PREFIX "LIB_AUDIOFRAMEWORK_FUNC")
  3. add_compile_options(-fPIC)
  4. set(SPBASE_LIB spbase)
  5. set(RVCCOMM_LIB RVCComm)
  6. if(MSVC)
  7. set(${NOUSE}_SRCS
  8. audiofax.h
  9. audiofax.c
  10. audiowavfile.h
  11. audiowavfile.c
  12. audiovoxfile.h
  13. audiovoxfile.c
  14. audiofile.h
  15. audiofile.c
  16. audiorecply.h
  17. audiorecply.c
  18. audiomixer.h
  19. audiomixer.c
  20. audiotone.h
  21. audiotone.c
  22. other/plc.h
  23. other/plc.c
  24. audiodtmf.h
  25. audiodtmf.c
  26. other/silencedet.h
  27. other/silencedet.c
  28. audiosilencedet.h
  29. audiosilencedet.c
  30. audioaec.h
  31. audioaec.c
  32. audiocache.h
  33. audiocache.c
  34. audiomicspk.h
  35. audiomicspk.c
  36. audiomicspk3.h
  37. audiomicspk3.c
  38. )
  39. else()
  40. set(${NOUSE}_SRCS
  41. )
  42. endif(MSVC)
  43. if(MSVC)
  44. set(${PLATFORM}_SRCS
  45. audiomicspk2.h
  46. audiomicspk2.c
  47. codec/g729acodec.h
  48. codec/g729acodec.c
  49. )
  50. else()
  51. set(${PLATFORM}_SRCS
  52. audiomicspkpulse.h
  53. audiomicspkpulse.c
  54. )
  55. endif(MSVC)
  56. set(${MODULE_PREFIX}_SRCS
  57. #audioaec.h
  58. audiobridge.h
  59. #audiocache.h
  60. audiocodec.h
  61. audiocommon.h
  62. audioconf.h
  63. audiocontext.h
  64. audiocustom.h
  65. audiodbmeter.h
  66. audiodriver.h
  67. audiodrivergroup.h
  68. audiodsp.h
  69. #audiodtmf.h
  70. audiodtmfbridge.h
  71. audioengine.h
  72. #audiofax.h
  73. #audiofile.h
  74. audioframe.h
  75. audioframework.h
  76. audiolog.h
  77. #audiomicspk.h
  78. #audiomicspk2.h
  79. #audiomicspk3.h
  80. #audiomixer.h
  81. #audiorecply.h
  82. audioresample.h
  83. audioresize.h
  84. audiortp.h
  85. #audiosilencedet.h
  86. audiostream.h
  87. #audiotone.h
  88. #audiovoxfile.h
  89. #audiowavfile.h
  90. #codec/g729acodec.h
  91. codec/adpcmcodec.h
  92. #codec/bvcodec.h
  93. codec/codecmgr.h
  94. codec/g711codec.h
  95. codec/gsmcodec.h
  96. other/circbuf.h
  97. other/delaybuf.h
  98. other/jerrno.h
  99. other/jbuf.h
  100. #other/plc.h
  101. #other/silencedet.h
  102. other/wsola.h
  103. precompile.h
  104. #audioaec.c
  105. audiobridge.c
  106. #audiocache.c
  107. audiocodec.c
  108. audiocommon.c
  109. audioframe.c
  110. audioconf.c
  111. audiocontext.c
  112. audiocustom.c
  113. audiodbmeter.c
  114. audiodriver.c
  115. audiodrivergroup.c
  116. audiodsp.c
  117. #audiodtmf.c
  118. audiodtmfbridge.c
  119. audioengine.c
  120. #audiofax.c
  121. #audiofile.c
  122. audiolog.c
  123. #audiomicspk.c
  124. #audiomicspk2.c
  125. #audiomicspk3.c
  126. #audiomixer.c
  127. #audiorecply.c
  128. audioresample.c
  129. audioresize.c
  130. audiortp.c
  131. #audiosilencedet.c
  132. audiostream.c
  133. #audiotone.c
  134. #audiovoxfile.c
  135. #audiowavfile.c
  136. #codec/g729acodec.c
  137. codec/adpcmcodec.c
  138. #codec/bvcodec.c
  139. codec/codecmgr.c
  140. codec/g711codec.c
  141. codec/gsmcodec.c
  142. other/delaybuf.c
  143. other/jbuf.c
  144. #other/plc.c
  145. #other/silencedet.c
  146. other/wsola.c
  147. precompile.c
  148. ${${PLATFORM}_SRCS}
  149. )
  150. add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
  151. if(WIN32)
  152. add_precompiled_header(${MODULE_NAME} precompile.h SOURCE_C precompile.c FORCEINCLUDE)
  153. endif(WIN32)
  154. if(WIN32)
  155. target_include_directories(${MODULE_NAME} PRIVATE
  156. ${RVC_COMMON_INCLUDE_DIR}
  157. ${CONAN_INCLUDE_DIRS_FFMPEG}
  158. ${CONAN_INCLUDE_DIRS_PORTAUDIO}
  159. ${CONAN_INCLUDE_DIRS_SPEEXDSP}
  160. ${RVC_TOOLKIT_INCLUDE_DIR}
  161. ${CONAN_INCLUDE_DIRS_LIB8K}
  162. ${CONAN_INCLUDE_DIRS_LIBTIFF}
  163. ${CONAN_INCLUDE_DIRS_APACHE-APR}/include
  164. ${CONAN_INCLUDE_DIRS_SPANDSP}/src
  165. )
  166. else(WIN32)
  167. target_include_directories(${MODULE_NAME} PRIVATE
  168. ${RVC_COMMON_INCLUDE_DIR}
  169. ${RVC_WINPR_INCLUDE_DIR}
  170. ${RVC_WINPR_SOURCE_INCLUDE_DIR}/winpr
  171. ${CONAN_INCLUDE_DIRS_FFMPEG}
  172. ${CONAN_INCLUDE_DIRS_PULSEAUDIO}
  173. ${CONAN_INCLUDE_DIRS_SPEEXDSP}
  174. ${RVC_TOOLKIT_INCLUDE_DIR}
  175. ${CONAN_INCLUDE_DIRS_LIB8K}
  176. ${CONAN_INCLUDE_DIRS_LIBTIFF}
  177. ${CONAN_INCLUDE_DIRS_APR}/apr-1
  178. ${CONAN_INCLUDE_DIRS_SPANDSP}
  179. )
  180. endif(WIN32)
  181. target_link_directories(${MODULE_NAME} PRIVATE
  182. ${CONAN_LIB_DIRS_FFMPEG}
  183. ${CONAN_LIB_DIRS_SPANDSP}
  184. ${CONAN_LIB_DIRS_SPEEXDSP}
  185. ${CONAN_LIB_DIRS_LIB8K}
  186. ${CONAN_LIB_DIRS_LIBTIFF}
  187. if(WIN32)
  188. ${CONAN_LIB_DIRS_APACHE-APR}
  189. ${CONAN_LIB_DIRS_PORTAUDIO}
  190. else
  191. ${CONAN_LIB_DIRS_APR}
  192. ${CONAN_LIB_DIRS_PULSEAUDIO}
  193. endif(WIN32)
  194. )
  195. # 添加实体需要依赖的其他共享库(包括系统库)
  196. if(WIN32)
  197. set(${MODULE_PREFIX}_LIBS PRIVATE
  198. ${CONAN_PKG_LIBS_PORTAUDIO}
  199. ${CONAN_PKG_LIBS_FFMPEG}
  200. ${CONAN_LIBS_OPENCV}
  201. ${SPBASE_LIB}
  202. ${TOOLKIT_LIB}
  203. ${CONAN_PKG_LIBS_APACHE-APR}
  204. ${CONAN_PKG_LIBS_LIB8K}
  205. ${CONAN_PKG_LIBS_SPANDSP}
  206. ${CONAN_PKG_LIBS_SOFIA}
  207. ${CONAN_PKG_LIBS_IPP}
  208. ${CONAN_PKG_LIBS_SPEEXDSP}
  209. )
  210. else(WIN32)
  211. set(${MODULE_PREFIX}_LIBS PRIVATE
  212. ${CONAN_PKG_LIBS_FFMPEG}
  213. ${CONAN_PKG_LIBS_PULSEAUDIO}
  214. ${CONAN_LIBS_OPENCV}
  215. ${SPBASE_LIB}
  216. ${TOOLKIT_LIB}
  217. ${CONAN_PKG_LIBS_APR}
  218. ${CONAN_PKG_LIBS_SPANDSP}
  219. ${CONAN_PKG_LIBS_SOFIA}
  220. ${CONAN_PKG_LIBS_SPEEXDSP}
  221. asound
  222. pthread
  223. winpr
  224. ${RVCCOMM_LIB}
  225. )
  226. endif(WIN32)
  227. target_link_libraries(${MODULE_NAME} PRIVATE ${${MODULE_PREFIX}_LIBS})
  228. if(MSVC)
  229. set(OTHER_CONAN_DEP_LIBS ${OTHER_CONAN_DEP_LIBS} ${CONAN_BIN_DIRS} PARENT_SCOPE)
  230. else()
  231. set(OTHER_CONAN_DEP_LIBS ${OTHER_CONAN_DEP_LIBS} ${CONAN_LIB_DIRS} PARENT_SCOPE)
  232. ENDIF(MSVC)
  233. set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "other/")