Недавно выпущенный 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, поэтому я, вероятно, что-то пропустил, но не знаю что. Любая идея приветствуется!
Наконец, я добился успеха. Я нашел статью Phoronix о Qt6.
Qt6 начал использовать менеджер пакетов conan.io. Таким образом, источников, предоставленных установщиком Qt, достаточно. Он загружает исходники qtimageformats в следующую папку ~/Qt/AdditionalLibraries/Qt/qtimageformats-6.0.0.
Конан сделает все остальное.
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.
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.