2026-04-10 20:02:57 +08:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# 项目注册表 — 新增项目只需编辑此文件
|
|
|
|
|
|
# =============================================================================
|
|
|
|
|
|
#
|
|
|
|
|
|
# 命令:
|
|
|
|
|
|
# ./project_release.sh <项目名> 编译 + 打包 + 更新版本(最常用)
|
|
|
|
|
|
# ./project_pkg_desktop.sh <项目名> 仅打包桌面应用
|
|
|
|
|
|
# ./project_pkg_service.sh <项目名> 仅打包服务
|
|
|
|
|
|
# ./project_updateversion.sh <项目名> 仅更新版本号
|
|
|
|
|
|
# ./buildArmPrj.sh <项目名> 仅编译
|
|
|
|
|
|
#
|
|
|
|
|
|
# 格式: "项目名;算法目录名[;key=value;...]"
|
|
|
|
|
|
#
|
|
|
|
|
|
# 自动推导(无需手动填写):
|
|
|
|
|
|
# version_macro 大写(项目名) 例: GrabBag → GRABBAG
|
|
|
|
|
|
# 桌面 app_dir App/${name}/${name}App 例: App/GrabBag/GrabBagApp
|
|
|
|
|
|
# 服务 app_dir App/${name}/${name}Server 例: App/BeltTearing/BeltTearingServer
|
|
|
|
|
|
# 服务 package basename(app_dir) 例: BeltTearingServer
|
|
|
|
|
|
# 服务 service ${app_dir}/${slug}.service 例: belttearingserver.service
|
|
|
|
|
|
# 服务 config 存在即自动打包
|
|
|
|
|
|
# algo_copy glob|AppAlgo/${algo}/Arm/aarch64/*.so|usr/lib
|
|
|
|
|
|
# device_copy VzNLSDK(非 VzNLSDK 时自动补为 optional)
|
|
|
|
|
|
#
|
|
|
|
|
|
# 可选覆盖 (key=value):
|
|
|
|
|
|
# 通用: app_dir version_macro opencv device_copy(none=不复制) description comment
|
|
|
|
|
|
# 桌面: algo_copy extra_copy optional_copy ld_conf
|
|
|
|
|
|
# 服务: app_suffix(默认 Server)
|
|
|
|
|
|
# =============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
SCRIPT_DIR="${SCRIPT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}"
|
|
|
|
|
|
source "${SCRIPT_DIR}/project_meta.sh"
|
|
|
|
|
|
|
|
|
|
|
|
COPY_VZNLSDK="glob|SDK/Device/VzNLSDK/Arm/aarch64/*.so|usr/lib"
|
|
|
|
|
|
|
|
|
|
|
|
# ===== 桌面项目 =====
|
|
|
|
|
|
DESKTOP_PROJECTS=(
|
|
|
|
|
|
"GrabBag;bagPosition"
|
|
|
|
|
|
"LapWeld;lapWeldDetection"
|
|
|
|
|
|
"Workpiece;workpieceCornerExtraction"
|
|
|
|
|
|
"ParticleSize;particleSizeMeasure"
|
|
|
|
|
|
"ScrewPosition;rodAndBarDetection"
|
|
|
|
|
|
"WorkpieceHole;workpieceHolePositioning"
|
|
|
|
|
|
"StatorPosition;motorStatorPosition"
|
|
|
|
|
|
"RodAndBarPosition;rodAndBarDetection"
|
|
|
|
|
|
"HolePitPosition;workpieceHolePositioning"
|
|
|
|
|
|
"WheelMeasure;wheelArchHeigthMeasure"
|
|
|
|
|
|
|
|
|
|
|
|
"BagThreadPosition;bagThreadPositioning;\
|
|
|
|
|
|
extra_copy=glob|SDK/Device/gl_linelaser_sdk/aarch64_linux/*.so|usr/lib"
|
|
|
|
|
|
|
|
|
|
|
|
"HoleDetection;holeDetection;\
|
2026-04-12 19:11:36 +08:00
|
|
|
|
algo_copy=globa|AppAlgo/holeDetection/arm/release/*.so*|usr/lib"
|
2026-04-10 20:02:57 +08:00
|
|
|
|
|
|
|
|
|
|
"TunnelChannel;channelSpaceMeasure;\
|
|
|
|
|
|
ld_conf=/usr/lib/HCNetSDKCom;\
|
|
|
|
|
|
extra_copy=globa|SDK/Device/HCNetSDK/Arm64/lib/*.so*|usr/lib;\
|
|
|
|
|
|
optional_copy=globa|SDK/Device/HCNetSDK/Arm64/lib/HCNetSDKCom/*.so*|usr/lib/HCNetSDKCom"
|
|
|
|
|
|
|
|
|
|
|
|
"WorkpiecePosition;binocularMark;\
|
|
|
|
|
|
app_dir=App/WorkpieceProject/WorkpiecePositionApp;\
|
|
|
|
|
|
version_macro=WORKPIECEPOSITION;\
|
|
|
|
|
|
opencv=opencv480;\
|
|
|
|
|
|
device_copy=globa|SDK/Device/EpicEye/lib/arm/*.so*|usr/lib"
|
|
|
|
|
|
|
|
|
|
|
|
"WorkpieceSplice;binocularMark;\
|
|
|
|
|
|
app_dir=App/WorkpieceProject/WorkpieceSpliceApp;\
|
|
|
|
|
|
version_macro=WORKPIECESPLICE;\
|
|
|
|
|
|
opencv=opencv480;\
|
|
|
|
|
|
device_copy=none"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# ===== 服务项目 =====
|
|
|
|
|
|
SERVICE_PROJECTS=(
|
|
|
|
|
|
"BeltTearing;beltTearing"
|
|
|
|
|
|
|
|
|
|
|
|
"BinocularMark;binocularMark;\
|
|
|
|
|
|
opencv=opencv480;\
|
|
|
|
|
|
device_copy=glob|SDK/Device/Galaxy/aarch64/lib/armv8/*|usr/lib"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# ===== 执行注册 =====
|
|
|
|
|
|
_register_desktop_projects
|
|
|
|
|
|
_register_service_projects
|