CMake не может найти Perl - PullRequest
       50

CMake не может найти Perl

0 голосов
/ 04 апреля 2019

Я пытаюсь собрать mbedcrypto, используя свой собственный рецепт для армборда с использованием Yocto Linux.Я могу загрузить и распаковать исходный код, но во время компиляции библиотеки я получаю ошибки

| -- Detecting C compiler ABI info
| -- Detecting C compiler ABI info - done
| -- Detecting C compile features
| -- Detecting C compile features - done
| -- Could NOT find PythonInterp (missing:  PYTHON_EXECUTABLE)
| -- Could NOT find Perl (missing:  PERL_EXECUTABLE)

Соответствующая часть CMakeLists.txt следующим образом


set(CTR_DRBG_128_BIT_KEY_WARNING "${WARNING_BORDER}"
                         "${CTR_DRBG_128_BIT_KEY_WARN_L1}"
                         "${CTR_DRBG_128_BIT_KEY_WARN_L2}"
                         "${CTR_DRBG_128_BIT_KEY_WARN_L3}"
                         "${WARNING_BORDER}")


find_package(PythonInterp)
find_package(Perl)
if(PERL_FOUND)

    # If 128-bit keys are configured for CTR_DRBG, display an appropriate warning
    execute_process(COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/config.pl -f ${CMAKE_CURRENT_SOURCE_DIR}/include/mbedtls/config.h get MBEDTLS_CTR_DRBG_USE_128_BIT_KEY

Ошибка msg

 Found Threads: TRUE
| -- Could NOT find Perl (missing:  PERL_EXECUTABLE)
| CMake Error at tests/CMakeLists.txt:15 (message):
|   Cannot build test suites without Perl

происходит из файла tests / CMakeLists.txt, в котором есть

if(ENABLE_ZLIB_SUPPORT)
    set(libs ${libs} ${ZLIB_LIBRARIES})
endif(ENABLE_ZLIB_SUPPORT)

find_package(Perl)
if(NOT PERL_FOUND)
    message(FATAL_ERROR "Cannot build test suites without Perl")
endif()

. У меня установлен perl и он работает в / usr / bin / perl моего хост-компьютера.Я не знаю, если это какая-то конфигурация cmake или проблема с yocto.

mbedcrypto recipe

DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
DEPENDS = ""
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=302d50a6369f5f22efdb674db908167a"
SRC_URI[md5sum] = "06dd48905c236f7939d03b09bcf7f1a2"


SRC_URI = "https://github.com/ARMmbed/mbed-crypto/archive/mbedcrypto-${PV}.tar.gz"

S = "${WORKDIR}/mbed-crypto-mbedcrypto-${PV}"

inherit cmake pkgconfig

1 Ответ

0 голосов
/ 08 апреля 2019

В вашем рецепте отсутствует зависимость во время сборки для Perl и Python.Эти зависимости задаются переменной DEPENDS .

Если вам нужен собственный вариант Perl для построения тестов, укажите (отредактируйте: согласно комментарию, это не помогло):

DEPENDS = "perl-native"

Вы также можете использовать класс perlnative (разницу см. В документе) :

inherit perlnative

Кстати, существуют также зависимости времени выполнения (см. переменная RDEPENDS) .

...