Files
amadeus_26_fb/xmake.lua
2026-03-15 01:42:59 +08:00

122 lines
3.2 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 设置项目信息
set_project("SJTU-RM-CV")
set_version("1.0.0")
set_languages("c++17")
-- 设置构建模式
set_rules("mode.release")
set_optimize("fastest")
--导出构建指令
add_rules("plugin.compile_commands.autoupdate", {outputdir = ".vscode"})
-- 定义宏
add_defines('PATH=\"$(projectdir)\"')
add_defines("Linux")
-- 检查是否存在 config.h
if os.isfile("others/include/config/config.h") or os.isfile("others/include/config.h") then
add_defines("WITH_CONFIG")
print("Found config.h")
end
-- 添加依赖
add_requires("eigen", {system = false})
add_requires("pthread")
--- OpenCV 4.6.0 配置(启用 ffmpeg 和 contrib
add_requires("opencv", {
system = false,
configs = {
ffmpeg = false,
eigen = true,
png = true,
jpeg = true,
webp = false,
tiff = false,
quirc = false,
opengl = false,
protobuf = false,
bundled = true,
gtk = true
}
})
-- 目标配置
target("run")
set_kind("binary")
-- 添加源文件
add_files("main.cpp")
add_files("others/src/*.cpp")
add_files("others/src/camera/*.cpp")
add_files("energy/src/energy/*.cpp")
add_files("energy/src/energy/*/*.cpp")
add_files("armor/src/armor_finder/*.cpp")
add_files("armor/src/armor_finder/*/*.cpp")
add_files("armor/src/show_images/*.cpp")
-- 添加头文件搜索路径
add_includedirs("others/include")
add_includedirs("others/include/camera")
add_includedirs("others/include/config")
add_includedirs("energy/include")
add_includedirs("energy/include/energy")
add_includedirs("armor/include")
add_includedirs("armor/include/armor_finder")
add_includedirs("armor/include/armor_finder/classifier")
add_includedirs("armor/include/show_images")
-- 添加依赖包
add_packages("pthread", "eigen", "opencv")
-- 添加链接目录
add_linkdirs("others")
-- 根据平台链接相机 SDK
if is_plat("linux") then
add_links("MVSDK")
print("current platform: Linux")
elseif is_plat("windows") then
add_links("MVCAMSDK_X64")
print("current platform: Windows")
elseif is_plat("macosx") then
add_links("mvsdk")
print("current platform: Mac")
else
print("Unsupported platform")
end
-- 设置目标目录
set_targetdir("$(builddir)")
-- 添加编译选项
add_cxxflags("-O3")
-- 自定义任务create-startup
task("create-startup")
set_category("action")
on_run(function ()
os.exec("$(projectdir)/tools/create-startup.sh $(projectdir) $(builddir)")
end)
set_menu {
usage = "xmake create-startup",
description = "Create startup script",
options = {}
}
-- 自定义任务train-cnn
task("train-cnn")
set_category("action")
on_run(function ()
if os.host() == "linux" then
os.exec("gnome-terminal -- bash -c \"$(projectdir)/tools/TrainCNN/backward.py\"")
else
print("train-cnn only supported on Linux with gnome-terminal")
end
end)
set_menu {
usage = "xmake train-cnn",
description = "Train CNN model",
options = {}
}