Как скомпилировать qtimageformats?

Недавно выпущенный Qt 6.0.0 изменил распределение форматов qtimage. Они больше не создаются заранее и должны быть построены на месте.

Я проверил исходники QT git, как описано здесь.

git clone git://code.qt.io/qt/qt5.git
cd qt5
git checkout v6.0.0

Затем я отредактировал файл .gitmodules и изменил флаг игнорирования qtimageformats на «аддон». Я узнал, что скрипт configure основан на .gitmodules и этих флагах.

[submodule "qtimageformats"]
    depends = qtbase
    path = qtimageformats
    url = ../qtimageformats.git
    branch = dev
    status = addon

Я устанавливаю необходимую среду сборки в соответствии с Qt doc.

REM Set up Microsoft Visual Studio 2019, where <arch> is amd64, x86, etc.
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64
SET _ROOT=C:\Qt6\Qt5
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
REM Uncomment the below line when using a git checkout of the source repository
REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
SET _ROOT=

Затем я получил все модули git, как описано в Qt docs.

perl init-repository

До сих пор - все работает как положено. Справка по настройке действительно показывает параметры qtimageformats.

configure --help
...
...
Further image format options:

  -jasper .............. Enable JPEG-2000 support using the JasPer library [no]
  -mng ................. Enable MNG support [no]
  -tiff ................ Enable TIFF support [system/qt/no]
  -webp ................ Enable WEBP support [system/qt/no]

Однако теперь я застрял на следующей ошибке. Похоже, эти параметры не распознаются конфигуратором?

c:\qt6\qt5>configure.bat -tiff qt
+ cd qtbase
+ c:\qt6\qt5\qtbase\configure.bat -top-level -tiff qt
CMake Error at qtbase/cmake/QtProcessConfigureArgs.cmake:227 (message):
  Unknown command line option '-tiff'.
Call Stack (most recent call first):
  qtbase/cmake/QtProcessConfigureArgs.cmake:531 (qtConfAddError)

В Qt 6 нет документации относительно форматов qtimage, поэтому я, вероятно, что-то пропустил, но не знаю что. Любая идея приветствуется!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
640
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Наконец, я добился успеха. Я нашел статью Phoronix о Qt6.

Qt6 начал использовать менеджер пакетов conan.io. Таким образом, источников, предоставленных установщиком Qt, достаточно. Он загружает исходники qtimageformats в следующую папку ~/Qt/AdditionalLibraries/Qt/qtimageformats-6.0.0.

Конан сделает все остальное.

MacOS [общие библиотеки]

cd ~/Qt/AdditionalLibraries/Qt/qtimageformats-6.0.0/Src
export QT_PATH=~/Qt/6.0.0/clang_64
~/Qt/Tools/Conan/conan install . -o qtimageformats:shared=True
~/Qt/Tools/Conan/conan build .

PS: Команда установки действительно предшествует команде сборки - это не ошибка.

Библиотеки были успешно созданы на MacOS.


Windows [общие библиотеки]

CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
SET QT_PATH=C:\Qt\6.0.0\msvc2019_64
cd C:\Qt\AdditionalLibraries\Qt\qtimageformats-6.0.0\Src
md build
cd build
C:\Qt\Tools\Conan\conan install .. -s build_type=RelWithDebInfo
C:\Qt\Tools\Conan\conan build ..
C:\Qt\Tools\Conan\conan build ..

PS: Первая команда сборки conan завершится ошибкой, так как сгенерированные файлы cmake не подходят для параллельной сборки. Вторая команда сборки conan завершится успешно. Если вы знаете, как убедить conan.io отключить параллельную сборку без conanfile.py, сообщите нам об этом.

После того, как я сам собрал Qt с новой структурой CMake, самый простой способ собрать эти дополнительные пакеты — по-прежнему использовать qmake в корневом каталоге пакета, например (например, в WINDOWS с использованием VS):

set PATH=c:\Qt\6.0.0\bin;%PATH%
qmake <package>.pro
nmake
nmake install

Первая строка просто указывает путь к моему файлу qt6 qmake.

Другие вопросы по теме