如何使用RaspberryPi的bitbake编译Alexa-SDK的SampleApp

时间:2019-07-16 09:12:52

标签: cmake alexa yocto bitbake custom-application

我正在尝试为Alexa-SDK添加自定义图层。我创建了* .bb文件,当我运行bitbake alexa命令时,每个任务都成功完成。但是我无法在/ tmp / deploy或/ work目录下找到SampleApp可执行文件。

这是我的* .bb文件

SUMMARY = "bitbake-alexa recipe" 
DESCRIPTION = "Alexa SDK"  
SECTION = "alexa" 
LICENSE = "CLOSED"

SRC_URI = "git://github.com/alexa/avs-devicesdk.git;branch=master;protocol=https"

SRCREV = "8bf0160c5e56a3d5ebc1e1caeab14afc8658b0da"

INSANE_SKIP_${PN} = "dev-so" 
TARGET_CC_ARCH += "${LDFLAGS}"

S = "${WORKDIR}/git" 
SB = "${WORKDIR}/build"

AVS_DIR ?= "/home/root/Alexa_SDK"

inherit cmake
EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RELEASE \
                 -DGSTREAMER_MEDIA_PLAYER=ON \
                 -DCMAKE_INSTALL_PREFIX=${D}${AVS_DIR}/avs-sdk-client \
                 -DPORTAUDIO=ON  \
                 -DPORTAUDIO_LIB_PATH=${STAGING_LIBDIR}/libportaudio.so \
                 -DPORTAUDIO_INCLUDE_DIR=${STAGING_INCDIR} \
"

RDEPENDS_${PN} += "bash perl" 
DEPENDS = "curl sqlite3 portaudio-v19 gstreamer1.0-plugins-base"

do_compile() {
    cd ${SB}
    oe_runmake ${PARALLEL_MAKE} SampleApp 
}

do_install() {
    install -d -m 0755 ${D}${AVS_DIR}
    install -d -m 0755 ${D}/sounds
    install -d -m 0755 ${D}/database
    install -d -m 0755 ${D}${AVS_DIR}/avs-sdk-client

    cd ${SB}
    find ./ -executable -type f -exec cp --parents -v {} 
   ${D}/${AVS_DIR}/avs-sdk-client \;

    find ./ -name *.py -exec cp --parents -v {} ${D}/${AVS_DIR}/avs-sdk-client \;

    find ${D}/${AVS_DIR}/avs-sdk-client -name "*.py" -exec sed -e s#${SB}#${AVS_DIR}/avs-sdk-client#g -i {} \;

    mkdir ${D}/${AVS_DIR}/avs-sdk-client/Integration
    mkdir ${D}/${AVS_DIR}/libs
    cd ${D}/${AVS_DIR}/libs
    find ../avs-sdk-client -executable -type f -exec ${WORKDIR}/libsInstall.sh {} \;

    cp -r -L ${S} ${D}/${AVS_DIR}/avs-device-sdk
    cd ${D}/${AVS_DIR}/avs-device-sdk
    git repack -a -d 
}

FILES_${PN} = "${AVS_DIR} /sounds /database" 
BBCLASSEXTEND = "native"

请提出我所缺少的内容,因为我想使SampleApp成为图像的一部分并在RaspberryPi上运行

1 个答案:

答案 0 :(得分:0)

由于您在此处使用cmake,因此无需在此处编写do_compile(),因为cmake bbclass在继承cmake时会使用它。

如果适合您的CmakeLists.txt应用程序很好,yocto会将其编译出来并创建所需的bins / libs作为其一部分。

您可以添加

     FILES_${PN}  += "${bindir}/sample app \
                      ${AVSDIR} \
                      sounds"

然后将您的软件包添加到相应的软件包组或添加local.conf。

IMAGE_INSTALL_append = "sampleApp"

检查现在是否在rootfs中获得了所需的bin。