Browse Source

添加工程编译相关脚本

master
zhaohe 3 years ago
parent
commit
88bac62810
  1. 3
      .gitignore
  2. 6
      CMakeLists.txt
  3. 1
      README.md
  4. 0
      env/appsetup.sh
  5. 2
      env/shutdown.sh
  6. 2
      env/startup.sh
  7. 45
      sh/deploy_rk3328.sh
  8. 5
      sh/envsetup_pc.sh
  9. 4
      sh/envsetup_rk3328.sh
  10. 41
      sh/packet_rk3328.sh
  11. 12
      sh/ssh-clear-id.sh
  12. 17
      sh/ssh-copy-id.sh

3
.gitignore

@ -1,2 +1,3 @@
build
lib
lib
out

6
CMakeLists.txt

@ -5,6 +5,7 @@ set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_SKIP_BUILD_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_PREFIX "./")
include(zcmake/zcmake.cmake)
project(app)
@ -32,6 +33,7 @@ set(CMAKE_CXX_FLAGS "${C_CPP_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pessimizing-move -Wno-reorder")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
message("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
message("PROJECT_NAME: ${PROJECT_NAME}")
set(DEP_INCLUDE ${DEP_INCLUDE} ./dep/)
include(dep/iflytopcpp/module.cmake)
@ -42,9 +44,9 @@ include(dep/zwebservice/module.cmake)
zadd_executable(
TARGET
app.out
${PROJECT_NAME}.out
INSTALL
app
${PROJECT_NAME}
LINK_LIBRARIES
pthread
INCLUDE_DIRECTORIES

1
README.md

@ -6,6 +6,7 @@ dep/ 存放第二方,或者第三方需要编译的代码
lib/ 编译好的依赖库,通过
sh/ 工程编译打包部署等相关脚本
env/ 应用程序运行环境
build/ 应用程序编译目录
```
```

0
env/appsetup.sh

2
env/shutdown.sh

@ -0,0 +1,2 @@
#!/bin/bash
killall app.out

2
env/startup.sh

@ -0,0 +1,2 @@
#!/bin/bash
./app.out &

45
sh/deploy_rk3328.sh

@ -0,0 +1,45 @@
#!/bin/bash
PROJECT_NAME=app
ROOTFS_APP_DIR=/
export PROJECT_PATH=$(pwd)
set -e
set -x
# 从命令行读取参数,目标IP,是否重启 $0 --ip <ip> --reboot
while [ "$1" != "" ]; do
case $1 in
--ip)
shift
ip=$1
;;
--reboot)
shift
reboot=$1
;;
esac
shift
done
# 如果IP为空,提示使用方法
if [ -z "$ip" ]; then
echo "Usage: $0 --ip <ip> --reboot <true|false>"
exit 1
fi
scp -r out/${PROJECT_NAME}.tar.gz root@${ip}:${ROOTFS_APP_DIR}
#如果存在shutdown.sh,则先执行shutdown.sh
ssh root@${ip} 'if [ -f "/${PROJECT_NAME}/shutdown.sh" ];then /${PROJECT_NAME}/shutdown.sh;fi'
ssh root@${ip} "cd ${ROOTFS_APP_DIR} && tar -xvf ${PROJECT_NAME}.tar.gz -C ${ROOTFS_APP_DIR}"
ssh root@${ip} "cd ${ROOTFS_APP_DIR} && rm -rf ${PROJECT_NAME}.tar.gz"
if [ "$reboot" = "true" ]; then
echo "reboot";
ssh root@${ip} "reboot"
fi
echo "deploy success"

5
sh/pc_envsetup.sh → sh/envsetup_pc.sh

@ -1,12 +1,11 @@
#!/bin/bash
export PROJECT_PATH=`pwd`
#!/bin/bash
set -e #如果某条指令执行出错,则会退出脚本
# set -v #打印正在指令的指令
set -x
export PROJECT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# 创建编译目录
# echo "创建编译目录"
@ -17,3 +16,5 @@ mkdir -p ${PROJECT_PATH}/build
echo "cmake ../ \\" > ${PROJECT_PATH}/build/build.sh
echo "-DCMAKE_C_COMPILER=gcc \\" >> ${PROJECT_PATH}/build/build.sh
echo "-DCMAKE_CXX_COMPILER=g++ \\" >> ${PROJECT_PATH}/build/build.sh
chmod +x ${PROJECT_PATH}/build/build.sh

4
sh/rk3328_envsetup.sh → sh/envsetup_rk3328.sh

@ -1,7 +1,5 @@
#!/bin/bash
export PROJECT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
export COMPILE_TOOLS_DOWN_URL="ftp://zftpuser:zftpzwsd@192.168.1.2/zwsd/gnu_gcc_release/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz"
export COMPILE_TOOLS=aarch64-linux-gnu
export PROJECT_PATH=`pwd`
#!/bin/bash

41
sh/packet_rk3328.sh

@ -0,0 +1,41 @@
#!/bin/bash
PROJECT_NAME=app
set -e
set -x
export PROJECT_PATH=`pwd`
#打包目录
PACKET_DIR=$PROJECT_PATH/out/${PROJECT_NAME}
# 删除打包目录,重新打包
rm -rf ${PACKET_DIR}
mkdir ${PACKET_DIR}
########################################################################################
################################根据需要修改下面的内容即可##################################
########################################################################################
#1. 编译
cd $PROJECT_PATH/build
./build.sh && make -j8 && make install
#2.打包APP
cp $PROJECT_PATH/build/${PROJECT_NAME}/${PROJECT_NAME}.out $PACKET_DIR/
#3.3 打包webapp
cp -rf $PROJECT_PATH/webapp $PACKET_DIR/
#4 拷贝配置文件
cd $PROJECT_PATH/env/ && cp --path -rf ./* $PACKET_DIR/
#5 打包
cur_date="`date +%Y%m%d`"
cd $PACKET_DIR/../
tar -czvf ${PACKET_DIR}_${cur_date}.tar.gz ${PROJECT_NAME}
cp ${PACKET_DIR}_${cur_date}.tar.gz ${PACKET_DIR}.tar.gz
echo "Brief:"
echo "generate ${PACKET_DIR}_${cur_date}.tar.gz..................."
echo "generate ${PACKET_DIR}.tar.gz..................."

12
sh/ssh-clear-id.sh

@ -0,0 +1,12 @@
#!/bin/bash
set -e #如果某条指令执行出错,则会退出脚本
if [ $# -eq 0 ]; then
echo "Usage: $0 <ip>"
exit 1
fi
# 清除目标主机的ssh-key
ip=$1
ssh root@${ip} "rm -rf ~/.ssh/authorized_keys"

17
sh/ssh-copy-id.sh

@ -0,0 +1,17 @@
#!/bin/bash
set -e #如果某条指令执行出错,则会退出脚本
if [ $# -eq 0 ]; then
echo "Usage: $0 <ip>"
exit 1
fi
# 检查ssh-key是否存在,不存在则退出
if [ ! -f ~/.ssh/id_rsa.pub ]; then
echo "ssh-key not found, please run ssh-keygen first"
exit 1
fi
ip=$1
ssh-copy-id root@${ip}
Loading…
Cancel
Save