Linux打包C++应用deb脚本

发布时间 2023-06-13 11:21:33作者: umichan

目录结构

├── CMakeLists.txt
├── README.md
├── scripts
│   └── build_deb.sh
├── src
│   └── app.cpp
└── VERSION

打包脚本

#! /bin/bash
PROJECT_NAME="my-app"
PROJECT_PATH=$(cd "$( dirname ${BASH_SOURCE[0]})";cd ..;pwd)
MAINTAINER="jojo"
VERSION=`head -n +1 $PROJECT_PATH/VERSION`
PROJECT_DESCRIPTION="hello world"

# The following context no need to modify
cd $PROJECT_PATH
mkdir -p build
rm -rf $PROJECT_NAME*
mkdir -p $PROJECT_NAME/DEBIAN

cd build
cmake ..
make -j12
make DESTDIR=../$PROJECT_NAME install

CONTROL="../$PROJECT_NAME/DEBIAN/control"
echo "Package: $PROJECT_NAME" | sudo tee $CONTROL
echo "Version: $VERSION" | sudo tee -a $CONTROL
ARCH=`arch`

if [[ $ARCH =~ "x86_64" ]];then
    ARCH="amd64" 
elif [[ $ARCH =~ "aarch64" ]];then
    ARCH="arm64" 
else
    ARCH="unknown_arch"
fi

echo "Architecture: $ARCH "| sudo tee -a $CONTROL
echo "Maintainer: $MAINTAINER" | sudo tee -a $CONTROL
echo "Description: $PROJECT_DESCRIPTION" | sudo tee -a $CONTROL

cd ..
dpkg-deb -b $PROJECT_NAME ./