调优pro编译,进行快速编译
This commit is contained in:
parent
5dda95edb9
commit
4d9f7170ee
63
App/App.pro
63
App/App.pro
@ -1,28 +1,41 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
# 拆包项目
|
# 通过 TARGET_APP 变量指定要编译的应用
|
||||||
SUBDIRS += ./GrabBag/GrabBag.pro
|
# 用法: qmake "TARGET_APP=GrabBag" 或不指定则编译全部
|
||||||
|
# 可用值: GrabBag, BeltTearing, LapWeld, Workpiece, ParticleSize,
|
||||||
|
# BinocularMark, WorkpieceProject, TunnelChannel, WheelMeasure
|
||||||
|
|
||||||
# 撕裂项目
|
isEmpty(TARGET_APP) {
|
||||||
SUBDIRS += ./BeltTearing/BeltTearing.pro
|
# 未指定则编译全部
|
||||||
|
SUBDIRS += GrabBag/GrabBag.pro # 拆包项目
|
||||||
# 焊接
|
SUBDIRS += BeltTearing/BeltTearing.pro # 撕裂项目
|
||||||
SUBDIRS += ./LapWeld/LapWeld.pro
|
SUBDIRS += LapWeld/LapWeld.pro # 焊接
|
||||||
|
SUBDIRS += Workpiece/Workpiece.pro # 工件定位
|
||||||
# 工件定位
|
SUBDIRS += ParticleSize/ParticleSize.pro # 颗粒尺寸检测
|
||||||
SUBDIRS += ./Workpiece/Workpiece.pro
|
SUBDIRS += BinocularMark/BinocularMark.pro # 双目Mark检测
|
||||||
|
SUBDIRS += WorkpieceProject/WorkpieceProject.pro # 工件项目
|
||||||
# 颗粒尺寸检测
|
SUBDIRS += TunnelChannel/TunnelChannel.pro # 铁路隧道槽道测量
|
||||||
SUBDIRS += ./ParticleSize/ParticleSize.pro
|
SUBDIRS += WheelMeasure/WheelMeasure.pro # 车轮拱高测量
|
||||||
|
} else {
|
||||||
# 双目Mark检测
|
equals(TARGET_APP, "GrabBag") {
|
||||||
SUBDIRS += ./BinocularMark/BinocularMark.pro
|
SUBDIRS += GrabBag/GrabBag.pro
|
||||||
|
} else:equals(TARGET_APP, "BeltTearing") {
|
||||||
# 工件项目(WorkpiecePosition和WorkpieceSplice)
|
SUBDIRS += BeltTearing/BeltTearing.pro
|
||||||
SUBDIRS += ./WorkpieceProject/WorkpieceProject.pro
|
} else:equals(TARGET_APP, "LapWeld") {
|
||||||
|
SUBDIRS += LapWeld/LapWeld.pro
|
||||||
# 铁路隧道槽道测量
|
} else:equals(TARGET_APP, "Workpiece") {
|
||||||
SUBDIRS += ./TunnelChannel/TunnelChannel.pro
|
SUBDIRS += Workpiece/Workpiece.pro
|
||||||
|
} else:equals(TARGET_APP, "ParticleSize") {
|
||||||
# 车轮拱高测量
|
SUBDIRS += ParticleSize/ParticleSize.pro
|
||||||
SUBDIRS += ./WheelMeasure/WheelMeasure.pro
|
} else:equals(TARGET_APP, "BinocularMark") {
|
||||||
|
SUBDIRS += BinocularMark/BinocularMark.pro
|
||||||
|
} else:equals(TARGET_APP, "WorkpieceProject") {
|
||||||
|
SUBDIRS += WorkpieceProject/WorkpieceProject.pro
|
||||||
|
} else:equals(TARGET_APP, "TunnelChannel") {
|
||||||
|
SUBDIRS += TunnelChannel/TunnelChannel.pro
|
||||||
|
} else:equals(TARGET_APP, "WheelMeasure") {
|
||||||
|
SUBDIRS += WheelMeasure/WheelMeasure.pro
|
||||||
|
} else {
|
||||||
|
error("无效的 TARGET_APP: $$TARGET_APP")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -4,9 +4,3 @@ TEMPLATE = subdirs
|
|||||||
SUBDIRS += BeltTearingConfig/BeltTearingConfig.pro
|
SUBDIRS += BeltTearingConfig/BeltTearingConfig.pro
|
||||||
SUBDIRS += BeltTearingApp/BeltTearingApp.pro
|
SUBDIRS += BeltTearingApp/BeltTearingApp.pro
|
||||||
SUBDIRS += BeltTearingServer/BeltTearingServer.pro
|
SUBDIRS += BeltTearingServer/BeltTearingServer.pro
|
||||||
|
|
||||||
# 设置编译顺序依赖
|
|
||||||
BeltTearingApp.depends += ../../../VrNets/VrTcpClient.pro
|
|
||||||
BeltTearingApp.depends += BeltTearingConfig/BeltTearingConfig.pro
|
|
||||||
|
|
||||||
BeltTearingServer.depends += BeltTearingConfig/BeltTearingConfig.pro
|
|
||||||
|
|||||||
@ -1,13 +1,8 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
# 拆包项目
|
# 双目Mark检测项目
|
||||||
SUBDIRS += BinocularMarkApp/BinocularMarkApp.pro
|
SUBDIRS += BinocularMarkApp/BinocularMarkApp.pro
|
||||||
|
|
||||||
win32 {
|
win32 {
|
||||||
|
|
||||||
SUBDIRS += BinocularMarkTest/BinocularMarkTest.pro
|
SUBDIRS += BinocularMarkTest/BinocularMarkTest.pro
|
||||||
|
|
||||||
# 依赖关系
|
|
||||||
BinocularMarkTest.depends = BinocularMarkReceiver
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
# 拆包项目
|
# 拆包项目
|
||||||
SUBDIRS += GrabBagConfig/GrabBagConfig.pro
|
SUBDIRS += GrabBagConfig/GrabBagConfig.pro
|
||||||
SUBDIRS += GrabBagApp/GrabBagApp.pro
|
SUBDIRS += GrabBagApp/GrabBagApp.pro
|
||||||
# SUBDIRS += GrabBagConfigCmd
|
|
||||||
|
|
||||||
# 设置编译依赖顺序:GrabBagApp 依赖于 GrabBagConfig
|
|
||||||
GrabBagApp.depends = GrabBagConfig
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
# 拆包项目
|
|
||||||
SUBDIRS += LapWeldApp/LapWeldApp.pro
|
# 焊接项目
|
||||||
SUBDIRS += LapWeldConfig/LapWeldConfig.pro
|
SUBDIRS += LapWeldConfig/LapWeldConfig.pro
|
||||||
|
SUBDIRS += LapWeldApp/LapWeldApp.pro
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
# 子项目
|
# 颗粒尺寸检测项目
|
||||||
SUBDIRS += ParticleSizeConfig/ParticleSizeConfig.pro
|
SUBDIRS += ParticleSizeConfig/ParticleSizeConfig.pro
|
||||||
SUBDIRS += ParticleSizeApp/ParticleSizeApp.pro
|
SUBDIRS += ParticleSizeApp/ParticleSizeApp.pro
|
||||||
|
|
||||||
# 设置构建依赖顺序:ParticleSizeApp 依赖 ParticleSizeConfig
|
|
||||||
ParticleSizeApp.depends = ParticleSizeConfig
|
|
||||||
|
|||||||
@ -54,6 +54,13 @@ struct SizeParam
|
|||||||
double length = 0.0; // 长度(mm)
|
double length = 0.0; // 长度(mm)
|
||||||
double width = 0.0; // 宽度(mm)
|
double width = 0.0; // 宽度(mm)
|
||||||
double height = 0.0; // 高度(mm)
|
double height = 0.0; // 高度(mm)
|
||||||
|
|
||||||
|
// 默认构造函数
|
||||||
|
SizeParam() = default;
|
||||||
|
|
||||||
|
// 带参数的构造函数,支持花括号初始化
|
||||||
|
SizeParam(double l, double w, double h)
|
||||||
|
: length(l), width(w), height(h) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
# 子项目
|
# 铁路隧道槽道测量项目
|
||||||
SUBDIRS += TunnelChannelConfig/TunnelChannelConfig.pro
|
SUBDIRS += TunnelChannelConfig/TunnelChannelConfig.pro
|
||||||
SUBDIRS += TunnelChannelApp/TunnelChannelApp.pro
|
SUBDIRS += TunnelChannelApp/TunnelChannelApp.pro
|
||||||
|
|
||||||
# 设置构建依赖顺序:TunnelChannelApp 依赖 TunnelChannelConfig
|
|
||||||
TunnelChannelApp.depends = TunnelChannelConfig
|
|
||||||
|
|||||||
@ -3,6 +3,3 @@ TEMPLATE = subdirs
|
|||||||
# 车轮拱高测量项目
|
# 车轮拱高测量项目
|
||||||
SUBDIRS += WheelMeasureConfig/WheelMeasureConfig.pro
|
SUBDIRS += WheelMeasureConfig/WheelMeasureConfig.pro
|
||||||
SUBDIRS += WheelMeasureApp/WheelMeasureApp.pro
|
SUBDIRS += WheelMeasureApp/WheelMeasureApp.pro
|
||||||
|
|
||||||
# 设置编译顺序依赖
|
|
||||||
WheelMeasureApp.depends += WheelMeasureConfig
|
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
# 子项目
|
# 工件定位项目
|
||||||
SUBDIRS += WorkpieceConfig/WorkpieceConfig.pro
|
SUBDIRS += WorkpieceConfig/WorkpieceConfig.pro
|
||||||
SUBDIRS += WorkpieceApp/WorkpieceApp.pro
|
SUBDIRS += WorkpieceApp/WorkpieceApp.pro
|
||||||
|
|
||||||
# 设置构建依赖顺序:WorkpieceApp 依赖 WorkpieceConfig
|
|
||||||
WorkpieceApp.depends = WorkpieceConfig
|
|
||||||
|
|||||||
@ -74,16 +74,18 @@ win32:CONFIG(debug, debug|release) {
|
|||||||
LIBS += -L../WorkpieceProjectConfig -lWorkpieceProjectConfig
|
LIBS += -L../WorkpieceProjectConfig -lWorkpieceProjectConfig
|
||||||
LIBS += -L../../../Module/BinocularMarkReceiver -lBinocularMarkReceiver
|
LIBS += -L../../../Module/BinocularMarkReceiver -lBinocularMarkReceiver
|
||||||
LIBS += -L../../../Device/EpicEyeDevice -lEpicEyeDevice
|
LIBS += -L../../../Device/EpicEyeDevice -lEpicEyeDevice
|
||||||
LIBS += -L../../../Device/VrEyeDevice -lVrEyeDevice
|
|
||||||
LIBS += -L../../../AppUtils/AppCommon -lAppCommon
|
LIBS += -L../../../AppUtils/AppCommon -lAppCommon
|
||||||
LIBS += -L../../../AppUtils/UICommon -lUICommon
|
LIBS += -L../../../AppUtils/UICommon -lUICommon
|
||||||
LIBS += -L../../../AppUtils/CloudUtils -lCloudUtils
|
LIBS += -L../../../AppUtils/CloudUtils -lCloudUtils
|
||||||
LIBS += -L../../../VrUtils -lVrUtils
|
# AppCommon 依赖(VrEyeDevice 必须在 AppCommon 之后)
|
||||||
# AppCommon 依赖
|
LIBS += -L../../../Device/VrEyeDevice -lVrEyeDevice
|
||||||
LIBS += -L../../../Module/ModbusTCPServer -lModbusTCPServer
|
LIBS += -L../../../Module/ModbusTCPServer -lModbusTCPServer
|
||||||
LIBS += -L../../../Module/ShareMem -lShareMem
|
LIBS += -L../../../Module/ShareMem -lShareMem
|
||||||
LIBS += -L../../../VrNets -lVrModbus
|
LIBS += -L../../../VrNets -lVrModbus
|
||||||
LIBS += -L../../../VrNets -lVrTCPServer
|
LIBS += -L../../../VrNets -lVrTCPServer
|
||||||
|
# BinocularMarkReceiver 依赖
|
||||||
|
LIBS += -L../../../VrNets -lVrTcpClient
|
||||||
|
LIBS += -L../../../VrUtils -lVrUtils
|
||||||
LIBS += -lpthread -lrt
|
LIBS += -lpthread -lrt
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,14 +3,7 @@
|
|||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
# 子项目列表
|
|
||||||
SUBDIRS += \
|
SUBDIRS += \
|
||||||
WorkpieceProjectConfig \
|
WorkpieceProjectConfig/WorkpieceProjectConfig.pro \
|
||||||
WorkpiecePositionApp \
|
WorkpiecePositionApp/WorkpiecePositionApp.pro \
|
||||||
WorkpieceSpliceApp
|
WorkpieceSpliceApp/WorkpieceSpliceApp.pro
|
||||||
|
|
||||||
# 设置子项目内部依赖关系
|
|
||||||
# 公共依赖(BinocularMarkReceiver, VrEyeDevice, AppCommon, UICommon, CloudUtils, VrUtils)
|
|
||||||
# 已在 App.pro 中统一配置
|
|
||||||
WorkpiecePositionApp.depends = WorkpieceProjectConfig
|
|
||||||
WorkpieceSpliceApp.depends = WorkpieceProjectConfig
|
|
||||||
|
|||||||
@ -66,16 +66,18 @@ win32:CONFIG(debug, debug|release) {
|
|||||||
}else:unix:!macx {
|
}else:unix:!macx {
|
||||||
LIBS += -L../WorkpieceProjectConfig -lWorkpieceProjectConfig
|
LIBS += -L../WorkpieceProjectConfig -lWorkpieceProjectConfig
|
||||||
LIBS += -L../../../Module/BinocularMarkReceiver -lBinocularMarkReceiver
|
LIBS += -L../../../Module/BinocularMarkReceiver -lBinocularMarkReceiver
|
||||||
LIBS += -L../../../Device/VrEyeDevice -lVrEyeDevice
|
|
||||||
LIBS += -L../../../AppUtils/UICommon -lUICommon
|
LIBS += -L../../../AppUtils/UICommon -lUICommon
|
||||||
LIBS += -L../../../AppUtils/AppCommon -lAppCommon
|
LIBS += -L../../../AppUtils/AppCommon -lAppCommon
|
||||||
LIBS += -L../../../AppUtils/CloudUtils -lCloudUtils
|
LIBS += -L../../../AppUtils/CloudUtils -lCloudUtils
|
||||||
LIBS += -L../../../VrUtils -lVrUtils
|
# AppCommon 依赖(VrEyeDevice 必须在 AppCommon 之后)
|
||||||
# AppCommon 依赖
|
LIBS += -L../../../Device/VrEyeDevice -lVrEyeDevice
|
||||||
LIBS += -L../../../Module/ModbusTCPServer -lModbusTCPServer
|
LIBS += -L../../../Module/ModbusTCPServer -lModbusTCPServer
|
||||||
LIBS += -L../../../Module/ShareMem -lShareMem
|
LIBS += -L../../../Module/ShareMem -lShareMem
|
||||||
LIBS += -L../../../VrNets -lVrModbus
|
LIBS += -L../../../VrNets -lVrModbus
|
||||||
LIBS += -L../../../VrNets -lVrTCPServer
|
LIBS += -L../../../VrNets -lVrTCPServer
|
||||||
|
# BinocularMarkReceiver 依赖
|
||||||
|
LIBS += -L../../../VrNets -lVrTcpClient
|
||||||
|
LIBS += -L../../../VrUtils -lVrUtils
|
||||||
LIBS += -lpthread -lrt
|
LIBS += -lpthread -lrt
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,5 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
SUBDIRS += ../AppUtils/UICommon/UICommon.pro
|
SUBDIRS += UICommon/UICommon.pro
|
||||||
SUBDIRS += ../AppUtils/CloudUtils/CloudUtils.pro
|
SUBDIRS += CloudUtils/CloudUtils.pro
|
||||||
SUBDIRS += ../AppUtils/AppCommon/AppCommon.pro
|
SUBDIRS += AppCommon/AppCommon.pro
|
||||||
|
|
||||||
# 设置构建依赖顺序
|
|
||||||
# AppCommon 依赖 CloudUtils(因为使用了 LaserDataLoader)
|
|
||||||
AppCommon.depends = CloudUtils
|
|
||||||
|
|
||||||
|
|||||||
@ -6,13 +6,8 @@ TEMPLATE = subdirs
|
|||||||
# SDK(需要先编译)
|
# SDK(需要先编译)
|
||||||
SUBDIRS += ../SDK/Device/EpicEye/EpicEyeSDK.pro
|
SUBDIRS += ../SDK/Device/EpicEye/EpicEyeSDK.pro
|
||||||
|
|
||||||
|
|
||||||
# 子项目列表
|
|
||||||
SUBDIRS += \
|
SUBDIRS += \
|
||||||
VrEyeDevice \
|
VrEyeDevice/VrEyeDevice.pro \
|
||||||
EpicEyeDevice \
|
EpicEyeDevice/EpicEyeDevice.pro \
|
||||||
GalaxyDevice \
|
GalaxyDevice/GalaxyDevice.pro \
|
||||||
HikDevice
|
HikDevice/HikDevice.pro
|
||||||
|
|
||||||
# 项目依赖关系(EpicEyeSDK 在 GrabBagPrj.pro 中单独编译)
|
|
||||||
# EpicEyeDevice.depends = EpicEyeSDK
|
|
||||||
|
|||||||
@ -1,24 +1,16 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
|
win32-msvc {
|
||||||
|
CONFIG += ordered
|
||||||
|
}
|
||||||
|
|
||||||
SUBDIRS += ../VrCommon/VrCommon.pro
|
SUBDIRS += ../VrCommon/VrCommon.pro
|
||||||
SUBDIRS += ../VrUtils/VrUtils.pro
|
SUBDIRS += ../VrUtils/VrUtils.pro
|
||||||
|
SUBDIRS += ../VrNets/VrNets.pro
|
||||||
SUBDIRS += ../Module/Module.pro
|
SUBDIRS += ../Module/Module.pro
|
||||||
SUBDIRS += ../Device/Device.pro
|
SUBDIRS += ../Device/Device.pro
|
||||||
SUBDIRS += ../VrNets/VrNets.pro
|
|
||||||
|
|
||||||
SUBDIRS += ../AppUtils/AppUtils.pro
|
SUBDIRS += ../AppUtils/AppUtils.pro
|
||||||
|
|
||||||
SUBDIRS += ../App/App.pro
|
SUBDIRS += ../App/App.pro
|
||||||
|
|
||||||
# Test 测试
|
# Test 测试
|
||||||
# SUBDIRS += ../Test/Test.pro
|
# SUBDIRS += ../Test/Test.pro
|
||||||
|
|
||||||
# 设置构建依赖顺序
|
|
||||||
VrUtils.depends = VrCommon
|
|
||||||
Module.depends = VrCommon VrUtils
|
|
||||||
Device.depends = VrCommon VrUtils EpicEyeSDK
|
|
||||||
VrNets.depends = VrCommon VrUtils
|
|
||||||
AppUtils.depends = VrCommon VrUtils
|
|
||||||
App.depends = VrCommon VrUtils Device Module AppUtils VrNets
|
|
||||||
|
|
||||||
|
|||||||
@ -1,40 +1,159 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 可用的 App 列表
|
||||||
|
AVAILABLE_APPS="GrabBag BeltTearing LapWeld Workpiece ParticleSize BinocularMark WorkpieceProject TunnelChannel WheelMeasure"
|
||||||
|
|
||||||
|
# 显示帮助信息
|
||||||
|
show_help() {
|
||||||
|
echo "用法: $0 [-r] [-q] [-h] [AppName]"
|
||||||
|
echo ""
|
||||||
|
echo "选项:"
|
||||||
|
echo " -r 清理编译目录后重新编译"
|
||||||
|
echo " -q 强制重新运行 qmake(切换 App 时需要)"
|
||||||
|
echo " -h 显示此帮助信息"
|
||||||
|
echo ""
|
||||||
|
echo "参数:"
|
||||||
|
echo " AppName 指定要编译的 App 名称(可选,不指定则编译全部)"
|
||||||
|
echo ""
|
||||||
|
echo "可用的 App 列表:"
|
||||||
|
for app in $AVAILABLE_APPS; do
|
||||||
|
echo " - $app"
|
||||||
|
done
|
||||||
|
echo ""
|
||||||
|
echo "示例:"
|
||||||
|
echo " $0 # 编译全部项目(增量编译)"
|
||||||
|
echo " $0 -r # 清理后编译全部项目"
|
||||||
|
echo " $0 GrabBag # 只编译 GrabBag(增量编译)"
|
||||||
|
echo " $0 -q GrabBag # 切换到编译 GrabBag(重新 qmake)"
|
||||||
|
echo " $0 -r GrabBag # 清理后只编译 GrabBag"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 检查 App 是否有效
|
||||||
|
is_valid_app() {
|
||||||
|
local app=$1
|
||||||
|
for valid_app in $AVAILABLE_APPS; do
|
||||||
|
if [ "$app" = "$valid_app" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# 解析参数
|
||||||
|
CLEAN_BUILD=false
|
||||||
|
FORCE_QMAKE=false
|
||||||
|
TARGET_APP=""
|
||||||
|
|
||||||
|
while getopts "rqh" opt; do
|
||||||
|
case $opt in
|
||||||
|
r)
|
||||||
|
CLEAN_BUILD=true
|
||||||
|
;;
|
||||||
|
q)
|
||||||
|
FORCE_QMAKE=true
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
show_help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
echo "无效选项: -$OPTARG"
|
||||||
|
show_help
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# 移除已处理的选项,获取剩余参数
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
|
# 获取 App 名称参数
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
TARGET_APP=$1
|
||||||
|
if ! is_valid_app "$TARGET_APP"; then
|
||||||
|
echo "错误: 无效的 App 名称 '$TARGET_APP'"
|
||||||
|
echo ""
|
||||||
|
echo "可用的 App 列表:"
|
||||||
|
for app in $AVAILABLE_APPS; do
|
||||||
|
echo " - $app"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
START_TIME=$(date +%s)
|
START_TIME=$(date +%s)
|
||||||
|
|
||||||
if [ "$1" = "-r" ]; then
|
# 清理编译目录
|
||||||
|
if [ "$CLEAN_BUILD" = true ]; then
|
||||||
|
echo "清理编译目录..."
|
||||||
rm -rf buildarm
|
rm -rf buildarm
|
||||||
|
FORCE_QMAKE=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p buildarm/GrabBagPrj
|
mkdir -p buildarm/GrabBagPrj
|
||||||
cd buildarm/GrabBagPrj
|
cd buildarm/GrabBagPrj
|
||||||
qmake -r CONFIG+=release \
|
|
||||||
"MOC_DIR=moc" \
|
|
||||||
"UI_DIR=ui" \
|
|
||||||
"RCC_DIR=rcc" \
|
|
||||||
"OBJECTS_DIR=obj" \
|
|
||||||
"QMAKE_CC=aarch64-linux-gnu-gcc" \
|
|
||||||
"QMAKE_CXX=aarch64-linux-gnu-g++" \
|
|
||||||
"QMAKE_LINK=aarch64-linux-gnu-g++" \
|
|
||||||
../../GrabBagPrj.pro
|
|
||||||
|
|
||||||
make -j6
|
# 交叉编译配置
|
||||||
|
QMAKE_ARGS=(
|
||||||
|
-r
|
||||||
|
CONFIG+=release
|
||||||
|
"MOC_DIR=moc"
|
||||||
|
"UI_DIR=ui"
|
||||||
|
"RCC_DIR=rcc"
|
||||||
|
"OBJECTS_DIR=obj"
|
||||||
|
"QMAKE_CC=aarch64-linux-gnu-gcc"
|
||||||
|
"QMAKE_CXX=aarch64-linux-gnu-g++"
|
||||||
|
"QMAKE_LINK=aarch64-linux-gnu-g++"
|
||||||
|
)
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
# 如果指定了 App,添加 TARGET_APP 参数
|
||||||
END_TIME=$(date +%s)
|
if [ -n "$TARGET_APP" ]; then
|
||||||
ELAPSED=$((END_TIME - START_TIME))
|
QMAKE_ARGS+=("TARGET_APP=$TARGET_APP")
|
||||||
MINUTES=$((ELAPSED / 60))
|
|
||||||
SECONDS=$((ELAPSED % 60))
|
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo "编译成功!耗时: ${MINUTES}分${SECONDS}秒"
|
echo "编译指定 App: $TARGET_APP"
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
else
|
else
|
||||||
END_TIME=$(date +%s)
|
|
||||||
ELAPSED=$((END_TIME - START_TIME))
|
|
||||||
MINUTES=$((ELAPSED / 60))
|
|
||||||
SECONDS=$((ELAPSED % 60))
|
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo "编译失败!耗时: ${MINUTES}分${SECONDS}秒"
|
echo "编译全部项目"
|
||||||
|
echo "=========================================="
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 检查是否需要运行 qmake
|
||||||
|
if [ "$FORCE_QMAKE" = true ]; then
|
||||||
|
echo "运行 qmake..."
|
||||||
|
qmake "${QMAKE_ARGS[@]}" ../../GrabBagPrj.pro
|
||||||
|
elif [ ! -f "Makefile" ]; then
|
||||||
|
echo "Makefile 不存在,运行 qmake..."
|
||||||
|
qmake "${QMAKE_ARGS[@]}" ../../GrabBagPrj.pro
|
||||||
|
else
|
||||||
|
echo "跳过 qmake(使用 -q 强制重新生成)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "开始编译..."
|
||||||
|
make -j8
|
||||||
|
BUILD_RESULT=$?
|
||||||
|
|
||||||
|
# 输出结果
|
||||||
|
END_TIME=$(date +%s)
|
||||||
|
ELAPSED=$((END_TIME - START_TIME))
|
||||||
|
MINUTES=$((ELAPSED / 60))
|
||||||
|
SECONDS=$((ELAPSED % 60))
|
||||||
|
|
||||||
|
if [ $BUILD_RESULT -eq 0 ]; then
|
||||||
|
echo "=========================================="
|
||||||
|
if [ -z "$TARGET_APP" ]; then
|
||||||
|
echo "全部项目编译成功!耗时: ${MINUTES}分${SECONDS}秒"
|
||||||
|
else
|
||||||
|
echo "$TARGET_APP 编译成功!耗时: ${MINUTES}分${SECONDS}秒"
|
||||||
|
fi
|
||||||
|
echo "=========================================="
|
||||||
|
else
|
||||||
|
echo "=========================================="
|
||||||
|
if [ -z "$TARGET_APP" ]; then
|
||||||
|
echo "编译失败!耗时: ${MINUTES}分${SECONDS}秒"
|
||||||
|
else
|
||||||
|
echo "$TARGET_APP 编译失败!耗时: ${MINUTES}分${SECONDS}秒"
|
||||||
|
fi
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -3,12 +3,7 @@
|
|||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
# 子项目列表
|
|
||||||
SUBDIRS += \
|
SUBDIRS += \
|
||||||
ShareMem \
|
ShareMem/ShareMem.pro \
|
||||||
BinocularMarkReceiver \
|
BinocularMarkReceiver/BinocularMarkReceiver.pro \
|
||||||
ModbusTCPServer
|
ModbusTCPServer/ModbusTCPServer.pro
|
||||||
|
|
||||||
# 项目依赖关系
|
|
||||||
# BinocularMarkReceiver 依赖 VrUtils(用于网络通信)
|
|
||||||
# ModbusTCPServer 和 ModbusTCPClient 依赖 VrModbus
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
SUBDIRS += VrModbus.pro \
|
SUBDIRS += \
|
||||||
VrTcpClient.pro \
|
VrModbus.pro \
|
||||||
VrTcpServer.pro
|
VrTcpClient.pro \
|
||||||
|
VrTcpServer.pro
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user