Каков канонический способ интеграции Qt6 с Bazel и Bzlmod в Linux ARM64?Linux

Ответить
Anonymous
 Каков канонический способ интеграции Qt6 с Bazel и Bzlmod в Linux ARM64?

Сообщение Anonymous »

Я пытаюсь интегрировать Qt6 в свой проект C++, который создан с использованием Bazel 8.4.1 с включенным Bzlmod. Моя среда разработки — виртуальная машина Debian 13 (aarch64) на Apple M3 Mac.
Я потратил много времени, пытаясь решить эту проблему, и каждый раз упирался в стену:
  • Попытка rule_qt6 (Vertexwahn/rules_qt6): это казалось многообещающим, но у него нет aarch64 Linux. версия.
  • Попытка использования других правил сообщества (например, The-OpenROAD-Project/qt_bazel_prebuilts): этот репозиторий (rules_qt) привел к неразрешимому аду зависимостей. Для этого требуются несовместимые версии основных зависимостей, таких как protobuf и Rules_proto, которые конфликтуют с существующей настройкой gRPC моего проекта. Использование single_version_override не решило проблему.
Моя текущая гипотеза/последнее средство:
В настоящее время я думаю, что Bzlmod, возможно, недостаточно зрел, чтобы обрабатывать сложные немодульные зависимости, такие как Qt, из исходного кода через модуль_extension. Последним средством, по-видимому, является гибридный подход:
- Создание файла WORKSPACE вместе с MODULE.bazel.
- Использование старого, более мощного правила http_archive с атрибутом build_command внутри файла WORKSPACE для загрузки и компиляции Qt.
- Создание этого внешне определенного репозитория доступным для моих целей Bzlmod.
Мое основное требование — герметичная сборка типа FetchContent. Я хочу, чтобы Bazel полностью управлял зависимостью Qt, в идеале собирая его из исходного кода, не полагаясь на установленные в системе библиотеки и без путей жесткого кодирования.

Подробнее здесь: https://stackoverflow.com/questions/797 ... inux-arm64
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»