LINUX.ORG.RU
ФорумGames

OpenMW: Bullet does not uses double precision

 ,


0

1

При обновлении Мира на Gentoo стал обновляться и openMW:

-- Found Bullet: /usr/local/lib/libBulletDynamics.a (Required is at least version "286") 
-- Checking if Bullet uses double precision
CMake Error at CMakeLists.txt:387 (message):      
  Bullet does not uses double precision       
Bullet собрана вот с такими юзами
[ebuild   R   ~] sci-physics/bullet-3.21:0/3.21::gentoo  USE="double-precision openmp threads -doc -examples -extras (-tbb) -test" 0 KiB

Что за проблема и решается ли?

★★★★★

Меня бы смутило, что оно находится в /usr/local/lib/ Вы случаем не пытались установить эту библиотеку самостоятельно в обход portage?

Что пишет qlist bullet? (полный вывод не нужен, просто оно правда в /usr/local/lib находится или всё-таки в /usr/lib ?). qlist в пакете gentoolkit, если память не подводит.

BattleCoder ★★★★★
()
Ответ на: комментарий от mittorn

Я точно туда ничего не копировал. Ну фиг с ним, удалил из локаля, но теперь ошибка такая:

-- Found Bullet: /usr/lib64/libBulletDynamics.so (Required is at least version "286") 
-- Checking if Bullet uses double precision
CMake Error at CMakeLists.txt:387 (message):      
  Bullet does not uses double precision                 
                                                           
                                                           
-- Configuring incomplete, errors occurred!

burato ★★★★★
() автор топика
Ответ на: комментарий от burato

Тогда одно из двух, либо sci-physics/bullet этот флаг игнорирует и собирает библиотеку неправильно (я бы почитал ebuild, logs и т.п.), либо cmake из games-engines/openmw неправильно этот double precision проверяет (я бы изучил, как он это делает, и попробовал бы вручную ту же проверку запустить).

BattleCoder ★★★★★
()
Ответ на: комментарий от burato
src_configure() {
        local mycmakeargs=(
                -DBUILD_CPU_DEMOS=OFF
                -DBUILD_OPENGL3_DEMOS=OFF
                -DBUILD_BULLET2_DEMOS=OFF
                -DUSE_GRAPHICAL_BENCHMARK=OFF
                -DINSTALL_LIBS=ON
                -DBUILD_BULLET3=ON
                -DBUILD_BULLET_ROBOTICS_GUI_EXTRA=OFF   # This module depends on example libraries
                -DBUILD_EXTRAS=$(usex extras)
                -DUSE_DOUBLE_PRECISION=$(usex double-precision) # ВОТ ТУТ
                -DBUILD_UNIT_TESTS=$(usex test)
                -DBULLET2_MULTITHREADING=$(usex threads)
                -DBULLET2_USE_OPEN_MP_MULTITHREADING=$(usex openmp)
                -DBULLET2_USE_TBB_MULTITHREADING=$(usex tbb)
        )
        cmake_src_configure
}

Вроде бы задаёт флаг правильно, но я бы проверил журнал сборки пакета bullet, а не выдаёт ли cmake каких-то предупреждений на тему того, что флаг не поддерживает, конфликтует с другим флагом или вообще в этой версии его отключили. Бывает… 🤷‍♂️

BattleCoder ★★★★★
()
Ответ на: комментарий от burato

https://gitlab.com/OpenMW/openmw/-/blob/master/cmake/CheckBulletPrecision.cmake?ref_type=heads

Вот код этой проверки.

Очень может быть, что причина весьма банальная - refactoring затеяли и переименовали какой-нибудь заголовочный файл или перенесли в другой каталог, вот он его не в том месте ищет теперь.

Одно из двух - либо bug надо отправлять в openmw, либо в bullet, либо в один из двух ebuild.

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

BattleCoder ★★★★★
()
Ответ на: комментарий от burato

Удаление из /usr/local делается по другому: качаешь stage3, распаковываешь в повый раздел и копируешь туда конфиги и world set, после этого пересобираешь систему и мир. Без этого уверенрости что ты все кишки вычистил нет. И советую разобраться, что его туда поставило. Может pip какой обосрался?

mittorn ★★★★★
()
Ответ на: комментарий от burato

Необязательно настолько категорично как @mittorn советует. Может, просто что-то ещё в /usr/local осталось… У меня он пустой почти, на чистой системе он не нужен, понятное дело. Можно перенести (временно) его содержимое в другое место.

BattleCoder ★★★★★
()