xmake.lua 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. -- AV 框架子模块配置
  2. -- 此文件被主项目通过 includes("AV") 引入
  3. -- 公共基础配置函数
  4. function add_av_common_config()
  5. add_includedirs(".", {public = true})
  6. add_includedirs("code", {public = true})
  7. end
  8. -- 基础库
  9. target("av_base")
  10. set_kind("static")
  11. add_files("code/base/*.cpp")
  12. add_headerfiles("code/base/*.h")
  13. add_av_common_config()
  14. -- FFmpeg配置
  15. add_ffmpeg_config()
  16. -- 平台特定设置
  17. if is_plat("windows") then
  18. add_syslinks("ws2_32", "winmm")
  19. else
  20. add_syslinks("pthread")
  21. end
  22. -- 编解码库
  23. target("av_codec")
  24. set_kind("static")
  25. add_files("code/codec/*.cpp")
  26. add_headerfiles("code/codec/*.h")
  27. add_av_common_config()
  28. add_deps("av_base")
  29. -- FFmpeg配置
  30. add_ffmpeg_config()
  31. -- 捕获库
  32. target("av_capture")
  33. set_kind("static")
  34. add_files("code/capture/*.cpp")
  35. add_headerfiles("code/capture/*.h")
  36. add_av_common_config()
  37. add_deps("av_base")
  38. -- FFmpeg配置
  39. add_ffmpeg_config()
  40. -- 混流库
  41. target("av_muxer")
  42. set_kind("static")
  43. add_files("code/muxer/*.cpp")
  44. add_headerfiles("code/muxer/*.h")
  45. add_av_common_config()
  46. add_deps("av_base")
  47. -- FFmpeg配置
  48. add_ffmpeg_config()
  49. -- 工具库
  50. target("av_utils")
  51. set_kind("static")
  52. add_files("code/utils/*.cpp")
  53. add_headerfiles("code/utils/*.h")
  54. add_av_common_config()
  55. add_deps("av_base")
  56. -- FFmpeg配置
  57. add_ffmpeg_config()
  58. -- 完整的AV框架库 - 主项目依赖的统一接口
  59. target("av_framework")
  60. set_kind("static")
  61. add_deps("av_base", "av_codec", "av_capture", "av_muxer", "av_utils")
  62. add_av_common_config()
  63. -- 导出所有子模块的接口
  64. add_headerfiles("code/**/*.h")
  65. -- 播放器库
  66. target("av_player")
  67. set_kind("static")
  68. add_files("code/player/*.cpp")
  69. add_headerfiles("code/player/*.h")
  70. add_av_common_config()
  71. add_deps("av_base", "av_codec")
  72. -- Qt 配置
  73. add_qt_config()
  74. -- FFmpeg配置
  75. add_ffmpeg_config()
  76. -- 录制器库
  77. target("av_recorder")
  78. set_kind("static")
  79. add_files("code/recorder/*.cpp")
  80. add_headerfiles("code/recorder/*.h")
  81. add_av_common_config()
  82. add_deps("av_base", "av_codec", "av_capture", "av_muxer")
  83. -- Qt 配置
  84. add_qt_config()
  85. -- FFmpeg配置
  86. add_ffmpeg_config()
  87. -- 基础测试程序
  88. target("test_basic")
  89. set_kind("binary")
  90. add_files("test_basic.cpp")
  91. add_deps("av_base")
  92. add_common_config()
  93. -- FFmpeg配置
  94. add_ffmpeg_config()
  95. -- 编解码测试程序
  96. target("test_codec")
  97. set_kind("binary")
  98. add_files("test_codec.cpp")
  99. add_deps("av_codec")
  100. add_common_config()
  101. -- FFmpeg配置
  102. add_ffmpeg_config()
  103. -- 解码器测试程序
  104. target("test_decoder")
  105. set_kind("binary")
  106. add_files("test_decoder.cpp")
  107. add_deps("av_codec")
  108. add_common_config()
  109. -- FFmpeg配置
  110. add_ffmpeg_config()
  111. -- 音频编码器测试程序
  112. target("test_audio_encoder")
  113. set_kind("binary")
  114. add_files("test_audio_encoder.cpp")
  115. add_deps("av_codec")
  116. add_common_config()
  117. -- FFmpeg配置
  118. add_ffmpeg_config()
  119. -- 窗口采集测试程序
  120. target("test_window_capture")
  121. set_kind("binary")
  122. add_files("test_window_capture.cpp")
  123. add_deps("av_capture")
  124. add_common_config()
  125. -- FFmpeg配置
  126. add_ffmpeg_config()
  127. -- 工具类测试程序
  128. target("test_utils")
  129. set_kind("binary")
  130. add_files("test_utils.cpp")
  131. add_deps("av_utils")
  132. add_common_config()
  133. -- FFmpeg配置
  134. add_ffmpeg_config()
  135. -- 混流器测试程序
  136. target("test_muxer")
  137. set_kind("binary")
  138. add_files("test_muxer.cpp")
  139. add_deps("av_muxer")
  140. add_common_config()
  141. -- FFmpeg配置
  142. add_ffmpeg_config()
  143. -- 音频调试测试程序
  144. target("test_audio_debug")
  145. set_kind("binary")
  146. add_files("test_audio_debug.cpp")
  147. add_deps("av_base", "av_codec", "av_utils")
  148. add_files("code/player/player_core_v2.cpp")
  149. add_files("code/player/audio_output.cpp")
  150. add_files("code/player/thread_manager.cpp")
  151. add_headerfiles("code/player/*.h")
  152. add_common_config()
  153. add_rules("qt.widgetapp")
  154. add_frameworks("QtCore", "QtWidgets", "QtMultimedia")
  155. -- FFmpeg配置
  156. add_ffmpeg_config()
  157. -- 带UI的播放器测试程序
  158. target("test_player_with_ui")
  159. add_rules("qt.widgetapp")
  160. add_common_config()
  161. add_files("test_player_with_ui.cpp", {rules = "qt.moc"})
  162. add_deps("av_base", "av_codec", "av_utils")
  163. add_files("code/player/*.cpp")
  164. add_headerfiles("code/player/*.h")
  165. add_files("code/player/*.h", {rules = "qt.moc"})
  166. add_frameworks("QtNetwork", "QtGui", "QtCore", "QtWidgets", "QtMultimedia", "QtOpenGL")
  167. -- FFmpeg配置
  168. add_ffmpeg_config()
  169. -- 混流器测试程序
  170. target("test_seek_pause_fixed")
  171. set_kind("binary")
  172. add_rules("qt.widgetapp")
  173. add_files("test_seek_pause_fixed.cpp")
  174. add_deps("av_base", "av_codec", "av_utils")
  175. add_common_config()
  176. add_frameworks("QtNetwork", "QtGui", "QtCore", "QtWidgets", "QtMultimedia", "QtOpenGL")
  177. -- FFmpeg配置
  178. add_ffmpeg_config()