-- AvRecorder 模块配置
-- 此文件被主项目通过 includes("AvRecorder") 引入

-- 包含子模块
includes("capturer")

-- AvRecorder 主库
target("avrecorder_lib")
-- Qt 配置
add_rules("qt.static")
if is_plat("windows") then
    add_defines("UNICODE", "_UNICODE")
end

-- Qt MOC 处理
add_files("ui/*.h")
add_files("capturer/audio/*.h")
add_files("*.h")

-- 根目录源文件
add_files("*.cpp")
add_headerfiles("*.h")

-- 基础模块源文件
add_files("basic/*.cpp")
add_headerfiles("basic/*.h")

-- D3D 模块源文件
add_files("d3d/*.cpp")
add_headerfiles("d3d/*.h")

-- 编码器模块源文件
add_files("encoder/*.cpp")
add_headerfiles("encoder/*.h")

-- 混流器模块源文件
add_files("muxer/*.cpp")
add_headerfiles("muxer/*.h")

-- 录制器模块源文件
add_files("recorder/*.cpp")
add_headerfiles("recorder/*.h")

-- UI 模块源文件
add_files("ui/*.cpp")
add_headerfiles("ui/*.h")

-- 包含目录
add_includedirs(".", { public = true })
add_includedirs("basic", { public = true })
add_includedirs("d3d", { public = true })
add_includedirs("encoder", { public = true })
add_includedirs("muxer", { public = true })
add_includedirs("recorder", { public = true })
add_includedirs("ui", { public = true })

-- 依赖的子模块
add_deps("capturer_lib", { public = true })
-- add_deps("av_framework")  -- 暂时不使用AV模块



-- FFmpeg 配置
add_ffmpeg_config()

-- Windows 特定链接库
if is_plat("windows") then
    add_syslinks("d3d11", "dxgi", "user32", "gdi32")
    add_syslinks("winmm", "ole32", "oleaut32")
end
add_frameworks("QtCore", "QtGui", "QtWidgets", "QtNetwork", "QtMultimedia")
target_end()

-- AvRecorder 主程序（如果需要独立运行）
target("AvRecorder")
add_rules("qt.widgetapp")
set_kind("binary")
if is_plat("windows") then
    add_defines("UNICODE", "_UNICODE")
end

-- 设置输出目录
set_targetdir("$(projectdir)/bin")
if is_mode("debug") then
    set_targetdir("$(projectdir)/bin_debug")
    set_basename("AvRecorderd")
end

-- 主程序源文件
add_files("main.cpp")

-- 依赖库
add_deps("avrecorder_lib")
-- add_deps("av_framework")  -- 暂时不使用AV模块

-- Qt 配置
add_qt_config()

-- FFmpeg 配置
add_ffmpeg_config()

-- Windows 特定链接库
if is_plat("windows") then
    add_syslinks("shell32", "user32", "gdi32", "ole32", "oleaut32")
    add_syslinks("winmm", "d3d11", "dwmapi", "windowsapp")
    add_syslinks("OpenGL32")
end
add_frameworks("QtCore", "QtGui", "QtWidgets", "QtNetwork", "QtMultimedia")
target_end()
