Рецепт также производит-родной вывод, который нуждается в упаковке - PullRequest
0 голосов
/ 10 июля 2019

У меня есть рецепт, который успешно вызывает устаревшую команду сборки для кросс-компиляции цели.

В качестве побочного эффекта он создает некоторые собственные нативные инструменты, которые используются в сборке.

Я хочу собрать эти инструменты в пакет -tools-native, чтобы другие рецепты зависели от основного пакета для доступа к артефактам, и использовать пакет -tools-native для дальнейшей обработки этих артефактов.

Я могу создать такой собственный пакет, просто добавив:

PROVIDES = "${PN} ${PN}-tools-native"
SYSROOT_DIRS += "/"
PACKAGES += "${PN}-tools-native"
FILES_${PN}-tools-native += "/native-bin/*"

и имея раздел установки, установите нативные инструменты в / native-bin /

но все же это как-то не настоящий нативный пакет, и когда DEPENDS по дополнительному рецепту * d native-bin artifacts are installed in recipe-sysroot instead of recipe-sysroot-native`

Мне также нужно установить инструменты 0644, или битбэйк пытается удалить их (и терпит неудачу, поскольку они являются собственной сборкой).

Поскольку нативные инструменты уже сгенерированы устаревшими командами сборки, мне не нужно на самом деле вызывать как -native вариант рецепта.

Это долгий процесс, я тоже не хочу запускать его дважды.

В настоящее время я работаю над этим, имея другие рецепты DEPEND на recipe-native-tools и исправляя разрешения и PATH

Но как правильно это сделать?

1 Ответ

1 голос
/ 11 июля 2019

Обычно это делается по отдельным рецептам.Не существует механизма для совместного использования собственных двоичных файлов из целевых рецептов, поскольку их хэши задач содержат неверную информацию (они меняются в зависимости от целевой архитектуры).

Целевые рецепты не устанавливают свои bindir / sbindir вsysroot, поскольку мы не можем запустить их, и, как вы упомянули, это неправильная архитектура, поэтому они путают полосу и т. д.

Вы можете попробовать использовать собственный рецепт, который зависит от этого целевого рецепта и который устанавливаетдвоичные файлы, сохраненные целевым рецептом где-то в его $ {D} в do_install.Это может дать некоторые предупреждения, так как в целом нативные рецепты не должны зависеть от целевых рецептов, но, вероятно, это ваш лучший вариант, если вы не можете собрать дважды.

...