Browse Source

重构工程脚本

master
zhaohe 2 years ago
parent
commit
cc823c54fb
  1. 3
      .gitignore
  2. 10
      .project/cmake/deps.cmake
  3. 3
      .project/cmake/host.cmake
  4. 4
      .project/cmake/target.cmake
  5. 76
      .project/envsetup.sh
  6. 17
      .project/envsetuppc.sh
  7. 17
      .project/host.envsetup.sh
  8. 77
      .project/target.envsetup.sh
  9. 39
      CMakeLists.txt
  10. 2
      README.md
  11. 2
      iflybuild
  12. 0
      project.config

3
.gitignore

@ -4,4 +4,5 @@ out
.cache
./libs
libs/
buildpc
buildpc
buildhost

10
.project/cmake/deps.cmake

@ -0,0 +1,10 @@
include(${CMAKE_SOURCE_DIR}/dep/iflytopcpp/module.cmake)
include(${CMAKE_SOURCE_DIR}/dep/asio1.12.2/module.cmake)
include(${CMAKE_SOURCE_DIR}/dep/websocketpp/module.cmake)
include(${CMAKE_SOURCE_DIR}/dep/zservice_container/module.cmake)
include(${CMAKE_SOURCE_DIR}/dep/zwebservice/module.cmake)
include(${CMAKE_SOURCE_DIR}/dep/zlinuxcomponents/alsaplayer/module.cmake)
include(${CMAKE_SOURCE_DIR}/dep/zlinuxcomponents/rootfs_auto_update/module.cmake)
include(${CMAKE_SOURCE_DIR}/dep/zlinuxcomponents/mycroft_precise/module.cmake)
include(${CMAKE_SOURCE_DIR}/dep/zlinuxcomponents/audio/module.cmake)
include(${CMAKE_SOURCE_DIR}/dep/zlinuxcomponents/aiui_ws/module.cmake)

3
CMakeListsPC.cmake → .project/cmake/host.cmake

@ -1,3 +1,6 @@
message("PUBLIC_LINK_DIRECTORIES: ${PUBLIC_LINK_DIRECTORIES}")
message("PUBLIC_INCLUDE_DIRECTORIES: ${PUBLIC_INCLUDE_DIRECTORIES}")
message("PUBLIC_LINK_LIBS: ${PUBLIC_LINK_LIBS}")
zadd_executable_simple(TARGET test_aiui_service.out SRC
dep/zlinuxcomponents/aiui_ws/test_aiui_service.cpp)

4
CMakeListsAARCH64.cmake → .project/cmake/target.cmake

@ -1,3 +1,7 @@
message("PUBLIC_SRC: ${PUBLIC_SRC}")
message("PUBLIC_LINK_DIRECTORIES: ${PUBLIC_LINK_DIRECTORIES}")
message("PUBLIC_INCLUDE_DIRECTORIES: ${PUBLIC_INCLUDE_DIRECTORIES}")
message("PUBLIC_LINK_LIBS: ${PUBLIC_LINK_LIBS}")
#
zadd_executable_simple(
TARGET

76
.project/envsetup.sh

@ -1,76 +0,0 @@
#!/bin/bash
# 全局变量
# Config
CONFIG_SUPPORT_ALSA=true
CONFIG_SUPPORT_FFMPEG=true
CONFIG_SUPPORT_IFLYTOP_VOICE_PROCESS=true
CONFIG_SUPPORT_IXWEBSOCKET=true
# Code Begin
mkdir -p ${LIBSDIR}
cd ${LIBSDIR}
# 下载依赖库
# CONFIG_SUPPORT_ALSA
if [ "$CONFIG_SUPPORT_ALSA" = true ]; then
wget -c "192.168.1.2:8021/sdk_firefly_rk3328_v2.5.1/buildtools/libasound2_dev1.1.3-5ubuntu0.6.tar.gz"
wget -c "192.168.1.2:8021/sdk_firefly_rk3328_v2.5.1/buildtools/libz.tar.gz"
rm -rf ${LIBSDIR}/alsa
rm -rf libasound2_dev1.1.3-5ubuntu0.6
tar -xvf libasound2_dev1.1.3-5ubuntu0.6.tar.gz >/dev/null
tar -xvf libz.tar.gz >/dev/null
mkdir -p ${LIBSDIR}/alsa/pkgconfig/
mkdir -p ${LIBSDIR}/alsa/include/sys/
mkdir -p ${LIBSDIR}/alsa/lib/
mkdir -p ${LIBSDIR}/alsa/include/sys/
mv libasound2_dev1.1.3-5ubuntu0.6/unpack/usr/lib/aarch64-linux-gnu/libasound.* ${LIBSDIR}/alsa/lib/
mv libasound2_dev1.1.3-5ubuntu0.6/unpack/usr/lib/aarch64-linux-gnu/pkgconfig/alsa.pc ${LIBSDIR}/alsa/pkgconfig/
mv libasound2_dev1.1.3-5ubuntu0.6/unpack/usr/include/alsa ${LIBSDIR}/alsa/include/
mv libasound2_dev1.1.3-5ubuntu0.6/unpack/usr/include/sys/* ${LIBSDIR}/alsa/include/sys/
mv libz.so.1 ${LIBSDIR}/alsa/lib/
PUBLIC_LINK_DIRECTORIES="${PUBLIC_LINK_DIRECTORIES};${LIBSDIR}/alsa/lib"
PUBLIC_INCLUDE_DIRECTORIES="${PUBLIC_INCLUDE_DIRECTORIES};${LIBSDIR}/alsa/include"
PUBLIC_LINK_LIBS="${PUBLIC_LINK_LIBS};asound"
fi
# CONFIG_SUPPORT_FFMPEG
if [ "$CONFIG_SUPPORT_FFMPEG" = true ]; then
wget -c "192.168.1.2:8021/sdk_firefly_rk3328_v2.5.1/buildtools/ffmpeg-4.1.10-aarch64-20230301.tar.gz"
rm -rf ${LIBSDIR}/ffmpeg
tar -xvf ffmpeg-4.1.10-aarch64-20230301.tar.gz >/dev/null
mv ffmpeg-4.1.10-aarch64-20230301 ${LIBSDIR}/ffmpeg
PUBLIC_LINK_DIRECTORIES="${PUBLIC_LINK_DIRECTORIES};${LIBSDIR}/ffmpeg/lib"
PUBLIC_INCLUDE_DIRECTORIES="${PUBLIC_INCLUDE_DIRECTORIES};${LIBSDIR}/ffmpeg/include"
PUBLIC_LINK_LIBS="${PUBLIC_LINK_LIBS};avcodec;avdevice;avfilter;avformat;avutil;swresample;swscale"
fi
# CONFIG_SUPPORT_IFLYTOP_VOICE_PROCESS
if [ "$CONFIG_SUPPORT_IFLYTOP_VOICE_PROCESS" = true ]; then
wget -c "http://iflytop.local:8021/zlibrelease/libiflytop_voice_process/libiflytop_voice_process_v1.0_aarch64_ubuntu18.04_static_0.tar.gz"
tar -xvf libiflytop_voice_process_v1.0_aarch64_ubuntu18.04_static_0.tar.gz >/dev/null
rm -rf ${LIBSDIR}/libiflytop_voice_process
mv libiflytop_voice_process_v1.0_aarch64_ubuntu18.04_static_0 ${LIBSDIR}/libiflytop_voice_process
PUBLIC_LINK_DIRECTORIES="${PUBLIC_LINK_DIRECTORIES};${LIBSDIR}/libiflytop_voice_process/lib"
PUBLIC_INCLUDE_DIRECTORIES="${PUBLIC_INCLUDE_DIRECTORIES};${LIBSDIR}/libiflytop_voice_process/include"
PUBLIC_LINK_LIBS="${PUBLIC_LINK_LIBS};iflytopvoice;NE10_static"
fi
if [ "$CONFIG_SUPPORT_IXWEBSOCKET" = true ]; then
wget -c "http://iflytop.local:8021/zlibrelease/libixwebsocket/libixwebsocket_v11.4.3_aarch64_static_ubuntu18.04_0.tar.gz"
tar -xvf libixwebsocket_v11.4.3_aarch64_static_ubuntu18.04_0.tar.gz >/dev/null
rm -rf ${LIBSDIR}/libixwebsocket
mv libixwebsocket_v11.4.3_aarch64_static_ubuntu18.04_0 ${LIBSDIR}/libixwebsocket
PUBLIC_LINK_DIRECTORIES="${PUBLIC_LINK_DIRECTORIES};${LIBSDIR}/libixwebsocket/lib"
PUBLIC_INCLUDE_DIRECTORIES="${PUBLIC_INCLUDE_DIRECTORIES};${LIBSDIR}/libixwebsocket/include"
PUBLIC_LINK_LIBS="${PUBLIC_LINK_LIBS};ixwebsocket"
fi
CROSS_TOOLCHAIN_C_COMPILER=aarch64-linux-gnu-gcc
CROSS_TOOLCHAIN_CXX_COMPILER=aarch64-linux-gnu-g++

17
.project/envsetuppc.sh

@ -1,17 +0,0 @@
CONFIG_SUPPORT_IXWEBSOCKET=true
mkdir -p ${LIBSDIR}
cd ${LIBSDIR}
PUBLIC_LINK_LIBS="${PUBLIC_LINK_LIBS};asound"
PUBLIC_LINK_LIBS="${PUBLIC_LINK_LIBS};avcodec;avdevice;avfilter;avformat;avutil;swresample;swscale"
if [ "$CONFIG_SUPPORT_IXWEBSOCKET" = true ]; then
wget -c "http://iflytop.local:8021/zlibrelease/libixwebsocket/libixwebsocket_v11.4.3_amd64_static_ubuntu18.04_0.tar.gz"
tar -xvf libixwebsocket_v11.4.3_amd64_static_ubuntu18.04_0.tar.gz >/dev/null
rm -rf ${LIBSDIR}/libixwebsocket
mv libixwebsocket_v11.4.3_amd64_static_ubuntu18.04_0 ${LIBSDIR}/libixwebsocket
PUBLIC_LINK_DIRECTORIES="${PUBLIC_LINK_DIRECTORIES};${LIBSDIR}/libixwebsocket/lib"
PUBLIC_INCLUDE_DIRECTORIES="${PUBLIC_INCLUDE_DIRECTORIES};${LIBSDIR}/libixwebsocket/include"
PUBLIC_LINK_LIBS="${PUBLIC_LINK_LIBS};ixwebsocket"
fi

17
.project/host.envsetup.sh

@ -0,0 +1,17 @@
CONFIG_SUPPORT_IXWEBSOCKET=true
mkdir -p ${IFLYBUILD_HOST_LIBS_DIR}
cd ${IFLYBUILD_HOST_LIBS_DIR}
IFLYBUILD_HOST_PUBLIC_LINK_LIBS="${IFLYBUILD_HOST_PUBLIC_LINK_LIBS};asound"
IFLYBUILD_HOST_PUBLIC_LINK_LIBS="${IFLYBUILD_HOST_PUBLIC_LINK_LIBS};avcodec;avdevice;avfilter;avformat;avutil;swresample;swscale"
if [ "$CONFIG_SUPPORT_IXWEBSOCKET" = true ]; then
wget -c "http://iflytop.local:8021/zlibrelease/libixwebsocket/libixwebsocket_v11.4.3_amd64_static_ubuntu18.04_0.tar.gz"
tar -xvf libixwebsocket_v11.4.3_amd64_static_ubuntu18.04_0.tar.gz >/dev/null
rm -rf ${IFLYBUILD_HOST_LIBS_DIR}/libixwebsocket
mv libixwebsocket_v11.4.3_amd64_static_ubuntu18.04_0 ${IFLYBUILD_HOST_LIBS_DIR}/libixwebsocket
IFLYBUILD_HOST_PUBLIC_LINK_DIRECTORIES="${IFLYBUILD_HOST_PUBLIC_LINK_DIRECTORIES};${IFLYBUILD_HOST_LIBS_DIR}/libixwebsocket/lib"
IFLYBUILD_HOST_PUBLIC_INCLUDE_DIRECTORIES="${IFLYBUILD_HOST_PUBLIC_INCLUDE_DIRECTORIES};${IFLYBUILD_HOST_LIBS_DIR}/libixwebsocket/include"
IFLYBUILD_HOST_PUBLIC_LINK_LIBS="${IFLYBUILD_HOST_PUBLIC_LINK_LIBS};ixwebsocket"
fi

77
.project/target.envsetup.sh

@ -0,0 +1,77 @@
#!/bin/bash
# 全局变量
# Config
CONFIG_SUPPORT_ALSA=true
CONFIG_SUPPORT_FFMPEG=true
CONFIG_SUPPORT_IFLYTOP_VOICE_PROCESS=true
CONFIG_SUPPORT_IXWEBSOCKET=true
# Code Begin
function prepare_ifytop_librelease_libs() {
cd ${IFLYBUILD_TARGET_LIBS_DIR}
libname=$1
linklibs=$2
url=$3
wget -c $3
tarname=$(basename $3)
# unpackname=tarname 去掉.tar.gz, 例如iflytopv1.3.0.tar.gz -> iflytopv1.3.0
unpackname=${tarname%.tar.gz}
tar -xvf $tarname >/dev/null
rm -rf ${LIBSDIR}/$libname
mv $unpackname ${LIBSDIR}/$libname
IFLYBUILD_TARGET_PUBLIC_LINK_DIRECTORIES="${IFLYBUILD_TARGET_PUBLIC_LINK_DIRECTORIES};${LIBSDIR}/$libname/lib"
IFLYBUILD_TARGET_PUBLIC_INCLUDE_DIRECTORIES="${IFLYBUILD_TARGET_PUBLIC_INCLUDE_DIRECTORIES};${LIBSDIR}/$libname/include"
IFLYBUILD_TARGET_PUBLIC_LINK_LIBS="${IFLYBUILD_TARGET_PUBLIC_LINK_LIBS};$linklibs"
}
cd ${IFLYBUILD_TARGET_LIBS_DIR}
# 下载依赖库
# CONFIG_SUPPORT_ALSA
if [ "$CONFIG_SUPPORT_ALSA" = true ]; then
wget -c "192.168.1.2:8021/sdk_firefly_rk3328_v2.5.1/buildtools/libasound2_dev1.1.3-5ubuntu0.6.tar.gz"
wget -c "192.168.1.2:8021/sdk_firefly_rk3328_v2.5.1/buildtools/libz.tar.gz"
rm -rf ${LIBSDIR}/alsa
rm -rf libasound2_dev1.1.3-5ubuntu0.6
tar -xvf libasound2_dev1.1.3-5ubuntu0.6.tar.gz >/dev/null
tar -xvf libz.tar.gz >/dev/null
mkdir -p ${LIBSDIR}/alsa/pkgconfig/
mkdir -p ${LIBSDIR}/alsa/include/sys/
mkdir -p ${LIBSDIR}/alsa/lib/
mkdir -p ${LIBSDIR}/alsa/include/sys/
mv libasound2_dev1.1.3-5ubuntu0.6/unpack/usr/lib/aarch64-linux-gnu/libasound.* ${LIBSDIR}/alsa/lib/
mv libasound2_dev1.1.3-5ubuntu0.6/unpack/usr/lib/aarch64-linux-gnu/pkgconfig/alsa.pc ${LIBSDIR}/alsa/pkgconfig/
mv libasound2_dev1.1.3-5ubuntu0.6/unpack/usr/include/alsa ${LIBSDIR}/alsa/include/
mv libasound2_dev1.1.3-5ubuntu0.6/unpack/usr/include/sys/* ${LIBSDIR}/alsa/include/sys/
mv libz.so.1 ${LIBSDIR}/alsa/lib/
IFLYBUILD_TARGET_PUBLIC_LINK_DIRECTORIES="${IFLYBUILD_TARGET_PUBLIC_LINK_DIRECTORIES};${LIBSDIR}/alsa/lib"
IFLYBUILD_TARGET_PUBLIC_INCLUDE_DIRECTORIES="${IFLYBUILD_TARGET_PUBLIC_INCLUDE_DIRECTORIES};${LIBSDIR}/alsa/include"
IFLYBUILD_TARGET_PUBLIC_LINK_LIBS="${IFLYBUILD_TARGET_PUBLIC_LINK_LIBS};asound"
fi
# CONFIG_SUPPORT_FFMPEG
if [ "$CONFIG_SUPPORT_FFMPEG" = true ]; then
wget -c "192.168.1.2:8021/sdk_firefly_rk3328_v2.5.1/buildtools/ffmpeg-4.1.10-aarch64-20230301.tar.gz"
rm -rf ${LIBSDIR}/ffmpeg
tar -xvf ffmpeg-4.1.10-aarch64-20230301.tar.gz >/dev/null
mv ffmpeg-4.1.10-aarch64-20230301 ${LIBSDIR}/ffmpeg
IFLYBUILD_TARGET_PUBLIC_LINK_DIRECTORIES="${IFLYBUILD_TARGET_PUBLIC_LINK_DIRECTORIES};${LIBSDIR}/ffmpeg/lib"
IFLYBUILD_TARGET_PUBLIC_INCLUDE_DIRECTORIES="${IFLYBUILD_TARGET_PUBLIC_INCLUDE_DIRECTORIES};${LIBSDIR}/ffmpeg/include"
IFLYBUILD_TARGET_PUBLIC_LINK_LIBS="${IFLYBUILD_TARGET_PUBLIC_LINK_LIBS};avcodec;avdevice;avfilter;avformat;avutil;swresample;swscale"
fi
# CONFIG_SUPPORT_IFLYTOP_VOICE_PROCESS
if [ "$CONFIG_SUPPORT_IFLYTOP_VOICE_PROCESS" = true ]; then
prepare_ifytop_librelease_libs libiflytop_voice_process "iflytopvoice;NE10_static" "http://iflytop.local:8021/zlibrelease/libiflytop_voice_process/libiflytop_voice_process_v1.0_aarch64_ubuntu18.04_static_0.tar.gz"
fi
if [ "$CONFIG_SUPPORT_IXWEBSOCKET" = true ]; then
prepare_ifytop_librelease_libs libixwebsocket "ixwebsocket" "http://iflytop.local:8021/zlibrelease/libixwebsocket/libixwebsocket_v11.4.3_aarch64_static_ubuntu18.04_0.tar.gz"
fi
IFLYBUILD_TARGET_C_COMPILER=aarch64-linux-gnu-gcc
IFLYBUILD_TARGET_CXX_COMPILER=aarch64-linux-gnu-g++

39
CMakeLists.txt

@ -39,39 +39,34 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
message("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
message("PROJECT_NAME: ${PROJECT_NAME}")
message("PUBLIC_LINK_DIRECTORIES: ${PUBLIC_LINK_DIRECTORIES}")
message("PUBLIC_INCLUDE_DIRECTORIES: ${PUBLIC_INCLUDE_DIRECTORIES}")
message("PUBLIC_LINK_LIBS: ${PUBLIC_LINK_LIBS}")
#
include(dep/iflytopcpp/module.cmake)
include(dep/asio1.12.2/module.cmake)
include(dep/websocketpp/module.cmake)
include(dep/zservice_container/module.cmake)
include(dep/zwebservice/module.cmake)
include(dep/zlinuxcomponents/alsaplayer/module.cmake)
include(dep/zlinuxcomponents/rootfs_auto_update/module.cmake)
include(dep/zlinuxcomponents/mycroft_precise/module.cmake)
include(dep/zlinuxcomponents/audio/module.cmake)
include(dep/zlinuxcomponents/aiui_ws/module.cmake)
include (./.project/cmake/deps.cmake)
zadd_public(DEFINES ${DEP_DEFINE})
zadd_public(SRC ${DEP_SRC})
#
set(DEP_LINK_LIBRARIES ${DEP_LINK_LIBRARIES} pthread m ${PUBLIC_LINK_LIBS})
#
set(PUBLIC_INCLUDE_DIRECTORIES ${PUBLIC_INCLUDE_DIRECTORIES})
#
set(PUBLIC_LINK_DIRECTORIES ${PUBLIC_LINK_DIRECTORIES})
# BUILD_FOR_TEST_ON_PC == true, include cmakepc.cmake
if(BUILD_FOR_TEST_ON_PC)
# BUILD_ON_HOST == true, include cmakepc.cmake
if(BUILD_ON_HOST)
#
# PC使README.md
#
include(CMakeListsPC.cmake)
message("IFLYBUILD_HOST_PUBLIC_INCLUDE_DIRECTORIES: ${IFLYBUILD_HOST_PUBLIC_INCLUDE_DIRECTORIES}")
zadd_public(INCLUDE_DIRECTORIES ${IFLYBUILD_HOST_PUBLIC_INCLUDE_DIRECTORIES})
zadd_public(LINK_DIRECTORIES ${IFLYBUILD_HOST_PUBLIC_LINK_DIRECTORIES})
zadd_public(LINK_LIBRARIES ${IFLYBUILD_HOST_PUBLIC_LINK_LIBS})
zadd_public(LINK_LIBRARIES pthread m)
include(./.project/cmake/host.cmake)
return()
else()
#
# 使README.md
#
include(CMakeListsAARCH64.cmake)
zadd_public(INCLUDE_DIRECTORIES
${IFLYBUILD_TARGET_PUBLIC_INCLUDE_DIRECTORIES})
zadd_public(LINK_DIRECTORIES ${IFLYBUILD_TARGET_PUBLIC_LINK_DIRECTORIES})
zadd_public(LINK_LIBRARIES ${IFLYBUILD_TARGET_PUBLIC_LINK_LIBS})
zadd_public(LINK_LIBRARIES pthread m)
include(./.project/cmake/target.cmake)
return()
endif()

2
README.md

@ -25,7 +25,7 @@
# 仅编译
./build.sh build
# 编译调试版本,Cmake使用的是cmakepc.cmake
./build.sh buildpc
./build.sh buildhost
# 编译打包部署(整包)
./build.sh --ip <ip> flash

2
iflybuild

@ -1 +1 @@
Subproject commit a2932b93bea8c07875593af7798c1d972505520a
Subproject commit 2340768938b03846eb3d2879e734c578e721a301

0
project.config

Loading…
Cancel
Save