| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- -- LearningSmartClient 主项目配置
- -- 使用 xmake includes 模式组织子模块
- -- 设置项目基本信息
- set_project("LearningSmartClient")
- set_version("1.0.0")
- set_languages("c++17")
- -- 设置编译模式
- add_rules("mode.debug", "mode.release")
- -- 全局编译选项
- if is_plat("windows") then
- add_cxflags("/W3", "/utf-8")
- add_defines("_CRT_SECURE_NO_WARNINGS", "NOMINMAX", "WIN32_LEAN_AND_MEAN")
- add_defines("_SILENCE_CLANG_COROUTINE_MESSAGE")
- set_runtimes("MD")
- else
- add_cxflags("-Wall", "-Wextra")
- end
- -- FFmpeg 全局配置
- local ffmpeg_path = os.getenv("FFMPEG_PATH") or "E:/AAA/ffmpeg-7.0.2-full_build-shared"
- local ffmpeg_include = ffmpeg_path .. "/include"
- local ffmpeg_lib = ffmpeg_path .. "/lib"
- -- 全局 FFmpeg 配置函数
- function add_ffmpeg_config()
- if is_plat("windows") then
- add_includedirs(ffmpeg_include)
- add_linkdirs(ffmpeg_lib)
- add_links("avcodec", "avformat", "avutil", "swscale", "swresample")
- add_links("avdevice", "avfilter")
- end
- end
- -- 全局 Qt 配置函数(用于静态库)
- function add_qt_config()
- add_rules("qt.static")
- add_frameworks("QtCore", "QtGui", "QtWidgets", "QtNetwork", "QtWebSockets")
- add_frameworks("QtMultimedia", "QtWebSockets", "QtSvg", "QtXml")
- add_frameworks("QtOpenGL", "QtConcurrent")
- if is_plat("windows") then
- add_frameworks("QtWinExtras")
- end
- end
- -- 使用 includes 引入子模块配置 <mcreference link="https://xmake.io/zh/api/description/global-interfaces.html#includes" index="0">0</mcreference>
- includes("libs")
- -- 应用程序模块
- includes("api")
- includes("network")
- includes("views")
- includes("widgets")
- -- 主应用程序目标
- target("LearningSmartClient")
- 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("LearningSmartClientd")
- end
-
- -- 主程序源文件
- add_files("main.cpp")
- add_files("mainwindow.cpp")
- add_files("MainPanel.cpp")
- add_files("appevent.cpp")
- add_files("thememanager.cpp")
- add_files("themesettingswidget.cpp")
- add_files("tlogger.cpp")
-
- -- 头文件
- add_headerfiles("mainwindow.h")
- add_headerfiles("MainPanel.h")
- add_headerfiles("appevent.h")
- add_headerfiles("thememanager.h")
- add_headerfiles("themesettingswidget.h")
- add_headerfiles("tlogger.h")
-
- -- Qt MOC 处理 - 只处理主项目的头文件
- add_files("mainwindow.h", {rules = "qt.moc"})
- add_files("MainPanel.h", {rules = "qt.moc"})
- add_files("appevent.h", {rules = "qt.moc"})
- add_files("thememanager.h", {rules = "qt.moc"})
- add_files("themesettingswidget.h", {rules = "qt.moc"})
- add_files("tlogger.h", {rules = "qt.moc"})
-
- -- 资源文件
- add_files("resources/shared.qrc")
-
- -- 依赖的子模块
- -- add_deps("av_base", "av_codec", "av_capture", "av_muxer", "av_utils") -- 暂时不使用AV模块
- add_deps("avrecorder_lib")
- add_deps("avplayer2_lib")
- add_deps("utils_lib")
- add_deps("api_lib")
- add_deps("network_lib")
- add_deps("views_lib")
- add_deps("widgets_lib")
-
- -- 第三方库依赖
- add_deps("fmt", "qtpromise", "qwindowkit", "jsonserializer", "advanceddockingsystem")
- add_deps("qwindowkit_widgets")
- -- 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_includedirs(".")
- add_includedirs("thardware")
- add_files("thardware/*.cpp")
-
- target_end()
- ---- ScreenWall 独立应用程序
- --target("ScreenWall")
- -- add_rules("qt.widgetapp")
- -- set_kind("binary")
-
- -- -- 设置输出目录
- -- set_targetdir("$(projectdir)/bin")
- -- if is_mode("debug") then
- -- set_targetdir("$(projectdir)/bin_debug")
- -- set_basename("ScreenWalld")
- -- end
-
- -- -- ScreenWall 源文件
- -- add_files("ScreenWall/main.cpp")
- -- add_files("ScreenWall/screenwall_simple.cpp")
- -- add_files("ScreenWall/screenwall_widget.cpp")
-
- -- -- 头文件
- -- add_headerfiles("ScreenWall/screenwall_simple.h")
- -- add_headerfiles("ScreenWall/screenwall_widget.h")
-
- -- -- Qt MOC 处理
- -- add_files("ScreenWall/*.h", {rules = "qt.moc"})
-
- -- -- 依赖模块
- -- add_deps("avrecorder_lib")
- -- -- add_deps("av_base", "av_codec", "av_capture", "av_muxer", "av_utils") -- 暂时不使用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
-
- --target_end()
|