diff --git a/.gitignore b/.gitignore index 3156912..117f8bc 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ out .cache ./libs libs/ -buildpc \ No newline at end of file +buildpc +buildhost \ No newline at end of file diff --git a/.project/cmake/deps.cmake b/.project/cmake/deps.cmake new file mode 100644 index 0000000..71ad1c3 --- /dev/null +++ b/.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) diff --git a/CMakeListsPC.cmake b/.project/cmake/host.cmake similarity index 61% rename from CMakeListsPC.cmake rename to .project/cmake/host.cmake index cb9af73..b3a7d97 100644 --- a/CMakeListsPC.cmake +++ b/.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) diff --git a/CMakeListsAARCH64.cmake b/.project/cmake/target.cmake similarity index 89% rename from CMakeListsAARCH64.cmake rename to .project/cmake/target.cmake index 8faed25..910deb3 100644 --- a/CMakeListsAARCH64.cmake +++ b/.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 diff --git a/.project/envsetup.sh b/.project/envsetup.sh deleted file mode 100755 index 24ed9ff..0000000 --- a/.project/envsetup.sh +++ /dev/null @@ -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++ diff --git a/.project/envsetuppc.sh b/.project/envsetuppc.sh deleted file mode 100755 index dd09990..0000000 --- a/.project/envsetuppc.sh +++ /dev/null @@ -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 diff --git a/.project/host.envsetup.sh b/.project/host.envsetup.sh new file mode 100755 index 0000000..58af58c --- /dev/null +++ b/.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 diff --git a/.project/target.envsetup.sh b/.project/target.envsetup.sh new file mode 100755 index 0000000..d6106aa --- /dev/null +++ b/.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++ diff --git a/CMakeLists.txt b/CMakeLists.txt index 66b79af..ad0985b 100644 --- a/CMakeLists.txt +++ b/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() diff --git a/README.md b/README.md index 459f834..c7929d6 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ # 仅编译 ./build.sh build # 编译调试版本,Cmake使用的是cmakepc.cmake -./build.sh buildpc +./build.sh buildhost # 编译打包部署(整包) ./build.sh --ip flash diff --git a/iflybuild b/iflybuild index a2932b9..2340768 160000 --- a/iflybuild +++ b/iflybuild @@ -1 +1 @@ -Subproject commit a2932b93bea8c07875593af7798c1d972505520a +Subproject commit 2340768938b03846eb3d2879e734c578e721a301 diff --git a/project.config b/project.config deleted file mode 100644 index e69de29..0000000