Рецепт BitBake для настраиваемого файла setup.py

В моем рецепте мне нужно скачать репозиторий git и запустить CMake. После завершения работы CMake создается дополнительный каталог OUT, содержащий файл setup.py, который мне нравится запускать в do_install? Я пытался:

DEPENDS = "setuptools python" 
do_install () {
python OUT/setup.py install 
}

Но это не вызывает ошибку setup.py found. Может ли кто-нибудь заниматься такой проблемой?


person PatLas    schedule 12.03.2018    source источник
comment
в вашей строке наследования не должно быть символа "   -  person Nayfe    schedule 12.03.2018
comment
Плохо, что у меня ЗАВИСИМОСТЬ вместо наследования (исправлено в основном посте). Есть другие предложения?   -  person PatLas    schedule 12.03.2018


Ответы (3)


Это происходит потому, что bitbake не знает, где хранится setup.py - вам нужно использовать переменную $ {S}, сгенерированную bitbake, чтобы указать полный путь к этому скрипту.

Прочтите, как работает задача do_install () - ссылка

person lukaszgard    schedule 13.03.2018

На данный момент я реорганизовал свой рецепт, который выглядит следующим образом:

LICENSE = "CLOSED"
BB_STRICT_CHECKSUM = "0"

inherit cmake setuptools pythonnative

DEPENDS = "boost udev python swig-native python-native python-setuptools-native cmake-native"

SRC_URI = " \
    git://github.com/my_repo.git;name=my_name \
    file://0001-system-install.patch \
"
SRCREV_my_name = "404ff3eeff0d79c15cbfdbc126c4bff2996baea6"

S = "${WORKDIR}/git"

PARALLEL_MAKEINST = ""

Проект загружен с базы git на CMake, который устанавливается следующим образом:

install(CODE "execute_process(COMMAND python \"${PROJECT_SOURCE_DIR}/python/setup.py\" \"install\")")

Но когда я вызываю рецепт для сборки (bitbake my_recipe) или образ, который содержит этот рецепт (bitbake my_image), я получил такую ​​ошибку:

ERROR: pc-ble-driver-git-r0 do_compile: python setup.py build execution failed.
ERROR: pc-ble-driver-git-r0 do_compile: Function failed: do_compile (log file is located at /build/yocto-fsl/build/tmp/work/cortexa7hf-neon-poky-linux-gnueabi/pc-ble-driver/git-r0/temp/log.do_compile.16502)
ERROR: Logfile of failure stored in: /build/yocto-fsl/build/tmp/work/cortexa7hf-neon-poky-linux-gnueabi/pc-ble-driver/git-r0/temp/log.do_compile.16502
Log data follows:
| DEBUG: Executing shell function do_compile
| ERROR: python setup.py build execution failed.
| /build/yocto-fsl/build/tmp/work/cortexa7hf-neon-poky-linux-gnueabi/pc-ble-driver/git-r0/recipe-sysroot-native/usr/bin/python-native/python: can't open file 'setup.py': [Errno 2] No such file or directory
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /build/yocto-fsl/build/tmp/work/cortexa7hf-neon-poky-linux-gnueabi/pc-ble-driver/git-r0/temp/log.do_compile.16502)
ERROR: Task (/build/yocto-fsl/sources/meta-slabs/recipes-external/pc-ble-driver/pc-ble-driver_git.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 2195 tasks of which 2194 didn't need to be rerun and 1 failed.

P.S. На моем ПК, когда я создаю проект CMake и вызываю make install, все идет, как я предполагал.

Есть ли другие предложения, как с этим бороться?

person PatLas    schedule 13.03.2018

Попробуйте добавить команду ниже в свой файл рецепта

distutils_do_compile() {                                                                                                                                       
    :                                                                                                                                                          
}                                                                                                                                                              
distutils_stage_headers() {                                                                                                                                    
    :                                                                                                                                                          
}                                                                                                                                                              
distutils_stage_all() {                                                                                                                                        
    :                                                                                                                                                          
}                                                                                                                                                              
distutils_do_install() {                                                                                                                                       
    :                                                                                                                                                          
} 

и см. более подробную информацию ниже ... ./poky/meta/classes/distutils-tools.bbclass

person Patrick.C Jeon    schedule 24.04.2019