This commit is contained in:
parent
655030455f
commit
ae05a32209
|
@ -1,86 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# 定义项目名称和版本等信息
|
|
||||||
PROJECT_NAME="_EMS_C_V1.0.0"
|
|
||||||
VERSION="1.0.0"
|
|
||||||
ARCHITECTURE="arm64" # 指定目标架构(飞凌)
|
|
||||||
DB_PATH="/opt/company_ems/db/sqlite3.db" # 数据库路径
|
|
||||||
DEB_PACKAGE_NAME="${PROJECT_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
|
||||||
DEB_OUTPUT_PATH="/opt/${DEB_PACKAGE_NAME}"
|
|
||||||
|
|
||||||
# 返回到项目根目录
|
|
||||||
cd "$(dirname "$0")/.."
|
|
||||||
|
|
||||||
# 创建并进入构建目录
|
|
||||||
mkdir -p build && cd build
|
|
||||||
|
|
||||||
# 清除 build 目录下的所有文件
|
|
||||||
rm -rf *
|
|
||||||
|
|
||||||
# 配置CMake以使用交叉编译
|
|
||||||
cmake ..
|
|
||||||
|
|
||||||
# 编译项目
|
|
||||||
make -j$(nproc)
|
|
||||||
|
|
||||||
# 确保可执行文件存在
|
|
||||||
if [[ ! -f "_EMS_C_V1.0.0" ]]; then
|
|
||||||
echo "可执行文件未找到: _EMS_C_V1.0.0"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 准备.deb包目录结构
|
|
||||||
DEB_BUILD_DIR="/opt/${PROJECT_NAME}_${VERSION}_${ARCHITECTURE}_deb" # 修改为/opt目录
|
|
||||||
mkdir -p ${DEB_BUILD_DIR}/DEBIAN
|
|
||||||
mkdir -p ${DEB_BUILD_DIR}/company_ems/bin
|
|
||||||
mkdir -p ${DEB_BUILD_DIR}/company_ems/db
|
|
||||||
# mkdir -p ${DEB_BUILD_DIR}/usr/lib # 创建/usr/lib目录
|
|
||||||
|
|
||||||
# 创建目标目录(如果不存在)
|
|
||||||
sudo mkdir -p /opt/company_ems/bin/
|
|
||||||
|
|
||||||
# 拷贝可执行文件和其他库文件
|
|
||||||
cp _EMS_C_V1.0.0 "${DEB_BUILD_DIR}/company_ems/bin/"
|
|
||||||
# sudo cp -r ./lib/* /usr/lib/ # 拷贝lib下的文件
|
|
||||||
# sudo ldconfig # 更新库缓存
|
|
||||||
|
|
||||||
# 创建小写版本的可执行文件副本
|
|
||||||
cp "${DEB_BUILD_DIR}/company_ems/bin/_EMS_C_V1.0.0" "${DEB_BUILD_DIR}/company_ems/bin/company_ems_c_v1.0.0"
|
|
||||||
|
|
||||||
# 删除大写版本的可执行文件
|
|
||||||
rm "${DEB_BUILD_DIR}/company_ems/bin/_EMS_C_V1.0.0"
|
|
||||||
|
|
||||||
# 复制数据库到预定位置
|
|
||||||
cp "${DB_PATH}" "${DEB_BUILD_DIR}/company_ems/db/"
|
|
||||||
|
|
||||||
# 创建控制文件
|
|
||||||
cat <<EOF >${DEB_BUILD_DIR}/DEBIAN/control
|
|
||||||
Package: company-ems
|
|
||||||
Version: ${VERSION}
|
|
||||||
Section: base
|
|
||||||
Priority: optional
|
|
||||||
Architecture: ${ARCHITECTURE}
|
|
||||||
Depends: libc6, libsqlite3-0, libxml2, libssl1.1
|
|
||||||
Maintainer: Your Name <you@example.com>
|
|
||||||
Description: EMS C Project for ARM
|
|
||||||
This package is designed for ARM architecture.
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# 删除之前同名的.deb包(如果存在)
|
|
||||||
if [[ -f "${DEB_OUTPUT_PATH}" ]]; then
|
|
||||||
echo "删除之前的deb包: ${DEB_OUTPUT_PATH}"
|
|
||||||
rm "${DEB_OUTPUT_PATH}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 构建.deb包
|
|
||||||
dpkg-deb --build ${DEB_BUILD_DIR}
|
|
||||||
|
|
||||||
# 移动到指定位置
|
|
||||||
mv "${DEB_BUILD_DIR}.deb" "${DEB_OUTPUT_PATH}"
|
|
||||||
|
|
||||||
# 清理
|
|
||||||
rm -rf ${DEB_BUILD_DIR}
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
echo "Deb包构建完成:${PROJECT_NAME}_${VERSION}_${ARCHITECTURE}.deb"
|
|
Loading…
Reference in New Issue