#!/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;\ algo_copy=globa|AppAlgo/holeDetection/arm/release/*.so*|usr/lib" "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