From 38bdfa86a3fd21c8f62a9b593d81b65103f82a4e Mon Sep 17 00:00:00 2001 From: Zhaohe Date: Fri, 9 Dec 2022 12:15:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0PC=E7=AB=AF=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .gitmodules | 6 ++++++ CMakeLists.txt | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 10 ++++++++++ dep/iflytopcpp | 1 + sh/envsetup.sh | 46 ++++++++++++++++++++++++++++++++++++++++++++++ sh/packet.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ sh/pc_envsetup.env | 5 +++++ sh/rk3328_envsetup.env | 5 +++++ src/main.cpp | 23 +++++++++++++++++++++++ zcmake | 1 + 11 files changed, 189 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 CMakeLists.txt create mode 160000 dep/iflytopcpp create mode 100755 sh/envsetup.sh create mode 100755 sh/packet.sh create mode 100755 sh/pc_envsetup.env create mode 100755 sh/rk3328_envsetup.env create mode 100644 src/main.cpp create mode 160000 zcmake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c795b05 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..d72fe89 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "dep/iflytopcpp"] + path = dep/iflytopcpp + url = http://47.92.195.73/z2nd_lib/iflytopcpp.git +[submodule "zcmake"] + path = zcmake + url = http://47.92.195.73/zwsd_common_lib/zcmake.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..d639f15 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,48 @@ +cmake_minimum_required(VERSION 3.13) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_SYSTEM_NAME Linux) +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) + +include(zcmake/zcmake.cmake) +project(app) + +# 设置通用编译选项 +set(C_CPP_FLAGS "${C_CPP_FLAGS} ") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-unused-local-typedefs -Wno-unused-but-set-variable -Wno-deprecated-declarations -Wno-unused-variable") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-unused-local-typedefs -Wno-unused-but-set-variable -Wno-deprecated-declarations -Wno-unused-variable") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Werror=return-type -Werror=parentheses -Wfatal-errors -Wno-comment") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-format-overflow") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -O0 -g3 -fPIC -Wall") + +# 设置C编译选项 +set(CMAKE_C_FLAGS "${C_CPP_FLAGS}") +message("CMAKE_C_FLAGS : ${CMAKE_C_FLAGS}") + +# 设置CPP编译选项 +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}") + + +set(DEP_INCLUDE ${DEP_INCLUDE} ./dep/) +include(dep/iflytopcpp/module.cmake) + +zadd_executable( + TARGET + app.out + INSTALL + app + LINK_LIBRARIES + pthread + INCLUDE_DIRECTORIES + ${DEP_INCLUDE} + DEFINES + ${DEP_DEFINE} + SRC + ${DEP_SRC} + src/main.cpp) + diff --git a/README.md b/README.md index 9ccb72e..20c9dea 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,12 @@ # linux_smart_speaker_sdk +``` +编译说明 + +source sh/rk3328_envsetup.env +./sh/envsetup.sh + +cd build +./build.sh && make -j8 + +``` diff --git a/dep/iflytopcpp b/dep/iflytopcpp new file mode 160000 index 0000000..7170463 --- /dev/null +++ b/dep/iflytopcpp @@ -0,0 +1 @@ +Subproject commit 7170463d241615237c25819cb04607917e11bc35 diff --git a/sh/envsetup.sh b/sh/envsetup.sh new file mode 100755 index 0000000..21aa547 --- /dev/null +++ b/sh/envsetup.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e #如果某条指令执行出错,则会退出脚本 +# set -v #打印正在指令的指令 +set -x + +if [ -z ${PROJECT_PATH} ]; then + echo "Error:try 'source envsetup.sh' first please. " + exit 0; +fi + +# 创建编译目录 +# echo "创建编译目录" +echo "mkdir -p ${PROJECT_PATH}/build" +mkdir -p ${PROJECT_PATH}/build + + + +if [ -z ${COMPILE_TOOLS_DOWN_URL} ]; then + #如果没有定义了 COMPILE_TOOLS_DOWN_URL + 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 +else + #如果定义了 COMPILE_TOOLS_DOWN_URL + # 下载编译工具 + cd ${PROJECT_PATH}/build + # wget -p ${COMPILE_TOOLS_DOWN_URL} + + # 解压编译工具 + cd ${PROJECT_PATH}/build + compile_tools_tar=${COMPILE_TOOLS_DOWN_URL##*/} + compile_tools=`basename ${compile_tools_tar} .tar.gz` + + # 解压编译工具 + tar -xvf ${compile_tools_tar} > untar.log + + # 创建编译脚本 + cd ${PROJECT_PATH}/build + echo "cmake ../ \\" > ${PROJECT_PATH}/build/build.sh + echo "-DCMAKE_C_COMPILER=${PROJECT_PATH}/build/${compile_tools}/bin/${COMPILE_TOOLS}-gcc \\" >> ${PROJECT_PATH}/build/build.sh + echo "-DCMAKE_CXX_COMPILER=${PROJECT_PATH}/build/${compile_tools}/bin/${COMPILE_TOOLS}-g++ \\" >> ${PROJECT_PATH}/build/build.sh + chmod +x ${PROJECT_PATH}/build/build.sh + +fi + diff --git a/sh/packet.sh b/sh/packet.sh new file mode 100755 index 0000000..f9a2600 --- /dev/null +++ b/sh/packet.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +PACKET_NAME=chicken_farm_host_server + + +set -e +set -x +export PROJECT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../" + +#打包目录 +PACKET_DIR=$PROJECT_PATH/out/${PACKET_NAME} + +# 删除打包目录,重新打包 +rm -rf ${PACKET_DIR} +mkdir ${PACKET_DIR} +######################################################################################## +################################根据需要修改下面的内容即可################################## +######################################################################################## + +#1. 编译 +mkdir -p ${PROJECT_PATH}/out/cmake-build-pc +cd $PROJECT_PATH/out/cmake-build-pc +make -j8 install + +#2.打包APP +cp $PROJECT_PATH/out/cmake-build-pc/app/app.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 ${PACKET_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..................." + diff --git a/sh/pc_envsetup.env b/sh/pc_envsetup.env new file mode 100755 index 0000000..15d4039 --- /dev/null +++ b/sh/pc_envsetup.env @@ -0,0 +1,5 @@ +#!/bin/bash +export PROJECT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +export COMPILE_TOOLS_DOWN_URL= +export COMPILE_TOOLS= + diff --git a/sh/rk3328_envsetup.env b/sh/rk3328_envsetup.env new file mode 100755 index 0000000..d8e4281 --- /dev/null +++ b/sh/rk3328_envsetup.env @@ -0,0 +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 + diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..d32f1aa --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,23 @@ +#include "spdlog/spdlog.h" +int main() +{ + spdlog::info("Welcome to spdlog!"); + spdlog::error("Some error message with arg: {}", 1); + + spdlog::warn("Easy padding in numbers like {:08d}", 12); + spdlog::critical("Support for int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}", 42); + spdlog::info("Support for floats {:03.2f}", 1.23456); + spdlog::info("Positional args are {1} {0}..", "too", "supported"); + spdlog::info("{:<30}", "left aligned"); + + spdlog::set_level(spdlog::level::debug); // Set global log level to debug + spdlog::debug("This message should be displayed.."); + + // change log pattern + spdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v"); + + // Compile time log levels + // define SPDLOG_ACTIVE_LEVEL to desired level + SPDLOG_TRACE("Some trace message with param {}", 42); + SPDLOG_DEBUG("Some debug message"); +} \ No newline at end of file diff --git a/zcmake b/zcmake new file mode 160000 index 0000000..dfefd17 --- /dev/null +++ b/zcmake @@ -0,0 +1 @@ +Subproject commit dfefd1773b943240a8c8aceaa67df5b80b8b9d0d