Помощь. ebuild для corrade и magnum [РЕШЕНО]

Добрый день!

Я не умею создавать файлы *.ebuild и с CMake я не работала.
Перед тем, как обратиться за помощью, я выполнила eix-remote update и eix -R magn и eix -R corra - ничего нет.

На сайте https://github.com/fffaraz/awesome-cpp#graphics я наткнулась на библиотеку http://mosra.cz/blog/magnum.php
Я уже хотела было собрать c -DCMAKE_INSTALL_PREFIX=/home/olga/tmp/usr но в зависимостях у magnum, видимо, https://github.com/mosra/corrade
потому что CMake сообщает CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message): Could NOT find Corrade (missing: CORRADE_UTILITY_LIBRARY

Если у вам будет время и если вам не трудно и вы знаете CMake и умеете создавать файлы *.ebuild, пожалуйста, не могли бы вы сделать corrade-9999.ebuild и magnum-9999.ebuild, зависящий от corrade-9999?

Спасибо, WiseLord!

А что вы дальше с этим будете

А что вы дальше с этим будете делать?

А дальше я положу эти два

А дальше я положу эти два файла в локальный оверлей, сделаю emerge magnum, а потом буду писать 2d игру простенькую с какой-нибудь базовой графикой.

^_^

Держите

Набросал за пару минут на базе чего-то git-ового из portage. С правильной категорией и другими возможными зависимостями разбирайтесь по необходимости сами.

Большое спасибо! Всё

Большое спасибо! Всё собралось!

^_^

В сооответствии с

В сооответствии с https://github.com/mosra/magnum/blob/master/package/archlinux/PKGBUILD
добавила

RDEPEND="
    dev-libs/corrade
    media-libs/openal
    media-libs/freeglut
    media-libs/libsdl2
"

^_^

Я сегодня славно поработала и

Я сегодня славно поработала и славно отдохну:
* http://paste.kde.org/pzwtbrrob - corrade-9999.ebuild
* http://paste.kde.org/p150ls8go - magnum-9999.ebuild
* http://paste.kde.org/pevp2xf6a - magnum-examples-9999.ebuild"
* http://paste.kde.org/pfnyeykm3 - magnum-examples/files/MotionBlurCamera.cpp.patch
* http://paste.kde.org/pazh5ipt7 - magnum-integration-9999.ebuild
* http://paste.kde.org/po99ccm7y - magnum-plugins-9999.ebuild

Но в конце magnum-examples происходит

>>> Source compiled.
>>> Test phase [not enabled]: dev-libs/magnum-examples-9999

>>> Install magnum-examples-9999 into /var/tmp/portage/dev-libs/magnum-examples-9999/image/ category dev-libs
>>> Working in BUILD_DIR: "/var/tmp/portage/dev-libs/magnum-examples-9999/work/magnum-examples-9999_build"
make -j2 install 
make: *** No rule to make target `install'.  Stop.
 * ERROR: dev-libs/magnum-examples-9999::belgorod failed (install phase):

Что-то надо подправить, а что - я не знаю.

^_^

.

olga_python написал(а):
Я сегодня славно поработала и славно отдохну:
* http://paste.kde.org/pzwtbrrob - corrade-9999.ebuild
* http://paste.kde.org/p150ls8go - magnum-9999.ebuild
* http://paste.kde.org/pevp2xf6a - magnum-examples-9999.ebuild"
* http://paste.kde.org/pfnyeykm3 - magnum-examples/files/MotionBlurCamera.cpp.patch
* http://paste.kde.org/pazh5ipt7 - magnum-integration-9999.ebuild
* http://paste.kde.org/po99ccm7y - magnum-plugins-9999.ebuild

Есть мнение, что после проверки/отладки итоговые версии ебилдов правильно унести в родной трекер: https://bugs.gentoo.org/

olga_python написал(а):
Но в конце magnum-examples происходит

>>> Source compiled.
>>> Test phase [not enabled]: dev-libs/magnum-examples-9999

>>> Install magnum-examples-9999 into /var/tmp/portage/dev-libs/magnum-examples-9999/image/ category dev-libs
>>> Working in BUILD_DIR: "/var/tmp/portage/dev-libs/magnum-examples-9999/work/magnum-examples-9999_build"
make -j2 install 
make: *** No rule to make target `install'.  Stop.
 * ERROR: dev-libs/magnum-examples-9999::belgorod failed (install phase):

Что-то надо подправить, а что - я не знаю.

man portage
man 1 ebuild
man 5 ebuild
И на десерт
emerge app-portage/eclass-manpages

Практически цитированная ошибка сообщает об отсутствии в Makefile'ах пакета цели install. И как следствие — невозможность установить посредством стандартных функций.
Вам надо разобраться с содержимым пакета и переопределить (написать) функцию src_install(). Инструкции перечислены.

:wq
--
Live free or die

Вы правы, я сравнила

Вы правы, я сравнила файлы
magnum-examples-9999_build/src/bullet/cmake_install.cmake
magnum-9999_build/src/Magnum/cmake_install.cmake

и увидела недостающую "FILE(INSTALL DESTINATION "/usr/include/Magnum" TYPE FILE FILES" часть,
после чего "grep -R add_executable" показал строки вида

add_executable(magnum-fontconverter fontconverter.cpp)
add_executable(magnum-distancefieldconverter distancefieldconverter.cpp)
add_executable(magnum-info magnum-info.cpp)

Сейчас попытаюсь добавить аналогичные add_executable в CMakeLists.txt в magnum-examples-9999
для каждого из {bullet, cubemap, framebuffer, motionblur, primitives, text, textured-triangle, triangle, viewer}

^_^

Странно, все add_executable

Странно, все add_executable уже добавлены...
Например, в src/triangle/CMakeLists.txt есть строка add_executable(triangle TriangleExample.cpp), но она не приводит к генерации "FILE(INSTALL DESTINATION ..."

^_^

а оно вручную хоть

а оно вручную хоть собирается?

Я даже нагуглила, как

Я даже нагуглила, как дебажить CMakeLists.txt с помощью вставок message("01"), message("02") ...
и увидела, что, например, add_executable(triangle TriangleExample.cpp) выполняется в момент конфигурации:

-- Found X11: /usr/lib64/libX11.so
-- Found OpenGL: /usr/lib64/libGL.so
-- Found Magnum: /usr/lib64/libMagnum.so
-- Found SDL2: /usr/lib64/libSDL2.so
-- Found Magnum: /usr/lib64/libMagnum.so  found components:  DebugTools SceneGraph Shaders Shapes Sdl2Application
-- Found Magnum: /usr/lib64/libMagnum.so
-- Found Bullet: /usr/lib64/libBulletDynamics.so
-- Found MagnumIntegration: /usr/lib64/libMagnum.so  found components:  Bullet
-- Found Magnum: /usr/lib64/libMagnum.so  found components:  MeshTools Primitives SceneGraph Sdl2Application
-- Found Magnum: /usr/lib64/libMagnum.so  found components:  Primitives SceneGraph Sdl2Application
-- Found Magnum: /usr/lib64/libMagnum.so  found components:  MeshTools Primitives SceneGraph Shaders Sdl2Application
-- Found Magnum: /usr/lib64/libMagnum.so  found components:  MeshTools Primitives Shaders Sdl2Application
-- Found Magnum: /usr/lib64/libMagnum.so  found components:  Shaders Text Sdl2Application
-- Found Magnum: /usr/lib64/libMagnum.so  found components:  Sdl2Application
-- Found Magnum: /usr/lib64/libMagnum.so  found components:  Shaders Sdl2Application
-- Found Magnum: /usr/lib64/libMagnum.so  found components:  MeshTools Shaders SceneGraph Sdl2Application

Это всё отдельные CMakeLists.txt отрабатывают. А цели install всё равно нет. Это, возможно, магия CMake...

^_^

Всё понятно. Если хотя бы в

Всё понятно. Если хотя бы в один CMakeLists.txt c add_executable добавить ещё и install(TARGETS имямодуля DESTINATION ${MAGNUM_BINARY_INSTALL_DIR}) то цель install появляется.
Вот уж теперь полностью РЕШЕНО.

^_^

http://paste.kde.org/pl9otfnf

http://paste.kde.org/pl9otfnfh - magnum-examples-9999.ebuild
http://paste.kde.org/pfnyeykm3 - magnum-examples/files/MotionBlurCamera.cpp.patch
http://paste.kde.org/pq3dkx5sp - magnum-examples/files/CMakeLists.txt.patch

bullet:

^_^

если я верно понял то, что у

если я верно понял то, что у Вас происходит – это огромный повод сообщить автору о жуке

/

olga_python написал(а):
Всё понятно. Если хотя бы в один CMakeLists.txt c add_executable добавить ещё и install(TARGETS имямодуля DESTINATION ${MAGNUM_BINARY_INSTALL_DIR}) то цель install появляется.
Вот уж теперь полностью РЕШЕНО.

Ваш подход правильнее.
Но без таракана в трекере апстрима о решении проблемы говорить нельзя.

Про особенность применения live (-9999) пакетов в Gentoo знаете?

И да: не стесняемся, проходим в родной трекер https://bugs.gentoo.org/ регистрируемся если ещё не зарегистрированы, открываем баг (или даже два бага) и прикрепляем к ним полученные файлы ебилдов.
;)
И только после этого проблема темы действительно решена.

:wq
--
Live free or die

>И да: не стесняемся,

>И да: не стесняемся, проходим в родной трекер https://bugs.gentoo.org/ регистрируемся если ещё не зарегистрированы, открываем баг (или даже два бага) и прикрепляем к ним полученные файлы ебилдов

и ждем пару месяцев ответа в стиле «это никому не нужно, поддерживать никто не будет – если хотите, запиливайте свой оверлей [и идите нафиг отсюдова]»

/

Beelzebubbie написал(а):
и ждем пару месяцев ответа в стиле «это никому не нужно, поддерживать никто не будет – если хотите, запиливайте свой оверлей [и идите нафиг отсюдова]»

…или не месяцев, а лет.
Но это совершенно не оправдывает нежелания поступать _правильно_.
Ибо при таком подходе не то, что проблема не будет решена, но нет даже перспективы её решения.

Выкладку оправдывает уже только то, что трекер — место куда более надёжное, чем паста. И стандартное для правильного маршрута место поиска заинтересованными.
А когда заинтересованных наберётся достаточно, можно будет ставить вопрос и о запиливании в дерево.

ЗЫ: Хотя по мне задача совсем не проста и ни фига не однозначна, основное дерево уже содержит достаточно много несогласуемых противоречий, и назрела необходимость творческой обрезки.
Например в моём случае (Linux) первым кандидатом на rsync_excludes закономерно идёт sys-freebsd/*.

:wq
--
Live free or die

Я пока поступила

Я пока поступила так:
https://github.com/mosra/corrade/pull/16
https://github.com/mosra/magnum/pull/69
https://github.com/mosra/magnum-integration/pull/2
https://github.com/mosra/magnum-plugins/pull/5
https://github.com/mosra/magnum-examples/pull/8

Посмотрим, понравится ли автору. А там уж видно будет.

^_^

/

olga_python написал(а):

https://github.com/mosra/magnum-examples/pull/8

Посмотрим, понравится ли автору. А там уж видно будет.

Полагаю, автор не оценит, а то и не поймёт.

Было бы куда лучше, если бы Вы сообщили о неполных правилах сборки (пропуске цели install).
С приложением предлагаемого патча.

:wq
--
Live free or die

Anarchist

Anarchist написал(а):
Полагаю, автор не оценит, а то и не поймёт.

Автор понял и оценил. Минут 10 назад

^_^

Йя плакаль! Вот за такие

Йя плакаль! Вот за такие дебилды гентушников и гонят изо всех мест поганой метлой.
Хоть бы в ирке на ревью отдали ....

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

¯\_(ツ)_/¯

¯\_(ツ)_/¯

^_^

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".