contrib: qt: build qt modules with CMake

The scripts call just translate old options into their CMake counterpart.
The BUILD and BUILDPREFIX qt toolchain point to different build configurations.

The qt.toolchain.cmake corresponds to the toolchain file used by qt-cmake.
But we can't use it as it's supposed to be a tool for the cross-compiled
target. This toolchain file is the official one to use when cross-compiling Qt6
for Raspberry Pi in Qt Creator: https://wiki.qt.io/Cross-Compile_Qt_6_for_Raspberry_Pi
This commit is contained in:
Steve Lhomme 2024-04-02 14:40:18 +02:00
parent b77311d307
commit ef32c02a72
5 changed files with 69 additions and 38 deletions

View File

@ -19,13 +19,20 @@ $(TARBALLS)/qt5compat-everywhere-src-$(QT5COMPAT_VERSION).tar.xz:
.sum-qt5compat: qt5compat-everywhere-src-$(QT5COMPAT_VERSION).tar.xz
QT5_COMPAT_CONFIG := -DCMAKE_TOOLCHAIN_FILE=$(PREFIX)/lib/cmake/Qt6/qt.toolchain.cmake
ifdef ENABLE_PDB
QT5_COMPAT_CONFIG += -DCMAKE_BUILD_TYPE=RelWithDebInfo
else
QT5_COMPAT_CONFIG += -DCMAKE_BUILD_TYPE=Release
endif
qt5compat: qt5compat-everywhere-src-$(QT5COMPAT_VERSION).tar.xz .sum-qt5compat
$(UNPACK)
$(MOVE)
.qt5compat: qt5compat toolchain.cmake
mkdir -p $(BUILD_DIR)
+cd $(BUILD_DIR) && $(PREFIX)/bin/qt-configure-module $(BUILD_SRC)
$(CMAKECLEAN)
$(HOSTVARS) $(CMAKE) $(QT5_COMPAT_CONFIG)
+$(CMAKEBUILD)
$(CMAKEINSTALL)
touch $@

View File

@ -42,45 +42,49 @@ qtdeclarative: qtdeclarative-everywhere-src-$(QTDECLARATIVE_VERSION).tar.xz .sum
$(APPLY) $(SRC)/qtdeclarative/0001-Fix-incorrect-library-inclusion.patch
$(MOVE)
QT_DECLARATIVE_CONFIG := \
--no-feature-quick-designer \
--no-feature-quick-particles \
--no-feature-qml-preview \
--no-feature-quickcontrols2-imagine \
--no-feature-quickcontrols2-material \
--no-feature-quickcontrols2-universal \
--no-feature-quickcontrols2-macos \
--no-feature-quickcontrols2-ios \
--no-feature-qml-network
QT_DECLARATIVE_COMMON_CONFIG := \
-DFEATURE_qml_debug=OFF \
-DFEATURE_qml_profiler=OFF \
-DFEATURE_quick_designer=OFF \
-DFEATURE_quick_particles=OFF \
-DFEATURE_qml_preview=OFF \
-DFEATURE_quickcontrols2_imagine=OFF \
-DFEATURE_quickcontrols2_material=OFF \
-DFEATURE_quickcontrols2_universal=OFF \
-DFEATURE_quickcontrols2_macos=OFF \
-DFEATURE_quickcontrols2_ios=OFF \
-DFEATURE_qml_network=OFF
QT_DECLARATIVE_NATIVE_CONFIG := $(QT_DECLARATIVE_CONFIG) \
--no-feature-qml-animation \
--no-feature-qml-delegate-model \
--no-feature-qml-itemmodel \
--no-feature-qml-object-model \
--no-feature-qml-table-model \
--no-feature-quick-particles \
--no-feature-quick-shadereffect \
--no-feature-quick-path \
--no-feature-qml-network
QT_DECLARATIVE_CONFIG := $(QT_DECLARATIVE_COMMON_CONFIG) \
-DCMAKE_TOOLCHAIN_FILE=$(PREFIX)/lib/cmake/Qt6/qt.toolchain.cmake \
-DQT_HOST_PATH=$(BUILDPREFIX)
ifdef ENABLE_PDB
QT_DECLARATIVE_CONFIG += -DCMAKE_BUILD_TYPE=RelWithDebInfo
else
QT_DECLARATIVE_CONFIG += -DCMAKE_BUILD_TYPE=Release
endif
QT_DECLARATIVE_FEATURES := -DFEATURE_qml_debug=OFF -DFEATURE_qml_profiler=OFF
QT_DECLARATIVE_NATIVE_CONFIG := $(QT_DECLARATIVE_COMMON_CONFIG) \
-DFEATURE_qml_animation=OFF \
-DFEATURE_qml_delegate_model=OFF \
-DFEATURE_qml_itemmodel=OFF \
-DFEATURE_qml_object-model=OFF \
-DFEATURE_qml_table-model=OFF \
-DFEATURE_quick_shadereffect=OFF \
-DFEATURE_quick_path=OFF \
-DCMAKE_TOOLCHAIN_FILE=$(BUILDPREFIX)/lib/cmake/Qt6/qt.toolchain.cmake \
.qtdeclarative-tools: BUILD_DIR=$</vlc_native
.qtdeclarative-tools: qtdeclarative
$(CMAKECLEAN)
mkdir -p $(BUILD_DIR)
cd $(BUILD_DIR) && $(BUILDVARS) $(BUILDPREFIX)/bin/qt-configure-module $(BUILD_SRC) $(QT_DECLARATIVE_NATIVE_CONFIG) -- $(QT_DECLARATIVE_FEATURES)
$(BUILDVARS) $(CMAKE_NATIVE) $(QT_DECLARATIVE_NATIVE_CONFIG)
+$(CMAKEBUILD)
$(CMAKEINSTALL)
touch $@
.qtdeclarative: qtdeclarative toolchain.cmake
mkdir -p $(PREFIX)/libexec
$(CMAKECLEAN)
mkdir -p $(BUILD_DIR)
+cd $(BUILD_DIR) && $(PREFIX)/bin/qt-configure-module $(BUILD_SRC) $(QT_DECLARATIVE_CONFIG) -- $(QT_DECLARATIVE_FEATURES)
$(HOSTVARS) $(CMAKE) $(QT_DECLARATIVE_CONFIG)
+$(CMAKEBUILD)
$(CMAKEINSTALL)
touch $@

View File

@ -41,6 +41,15 @@ $(TARBALLS)/qtshadertools-everywhere-src-$(QTSHADERTOOLS_VERSION).tar.xz:
.sum-qtshadertools-tools: .sum-qtshadertools
touch $@
QT_SHADETOOLS_CONFIG := -DCMAKE_TOOLCHAIN_FILE=$(PREFIX)/lib/cmake/Qt6/qt.toolchain.cmake -DQT_HOST_PATH=$(BUILDPREFIX)
ifdef ENABLE_PDB
QT_SHADETOOLS_CONFIG += -DCMAKE_BUILD_TYPE=RelWithDebInfo
else
QT_SHADETOOLS_CONFIG += -DCMAKE_BUILD_TYPE=Release
endif
QT_SHADETOOLS_NATIVE_CONFIG := -DCMAKE_TOOLCHAIN_FILE=$(BUILDPREFIX)/lib/cmake/Qt6/qt.toolchain.cmake
qtshadertools: qtshadertools-everywhere-src-$(QTSHADERTOOLS_VERSION).tar.xz .sum-qtshadertools
$(UNPACK)
$(APPLY) $(SRC)/qtshadertools/0001-Use-fxc2-through-wine-instead-of-fxc.patch
@ -50,17 +59,14 @@ qtshadertools: qtshadertools-everywhere-src-$(QTSHADERTOOLS_VERSION).tar.xz .sum
.qtshadertools-tools: BUILD_DIR=$</vlc_native
.qtshadertools-tools: qtshadertools
$(CMAKECLEAN)
mkdir -p $(BUILD_DIR)
cd $(BUILD_DIR) && $(BUILDVARS) $(BUILDPREFIX)/bin/qt-configure-module $(BUILD_SRC)
$(BUILDVARS) $(CMAKE_NATIVE) $(QT_SHADETOOLS_NATIVE_CONFIG)
+$(CMAKEBUILD)
$(CMAKEINSTALL)
touch $@
.qtshadertools: qtshadertools toolchain.cmake
$(CMAKECLEAN)
mkdir -p $(BUILD_DIR)
+cd $(BUILD_DIR) && $(PREFIX)/bin/qt-configure-module $(BUILD_SRC)
$(HOSTVARS) $(CMAKE) $(QT_SHADETOOLS_CONFIG)
+$(CMAKEBUILD)
$(CMAKEINSTALL)
touch $@

View File

@ -19,13 +19,20 @@ $(TARBALLS)/qtsvg-everywhere-src-$(QTSVG_VERSION).tar.xz:
.sum-qtsvg: qtsvg-everywhere-src-$(QTSVG_VERSION).tar.xz
QTSVG_CONFIG := -DCMAKE_TOOLCHAIN_FILE=$(PREFIX)/lib/cmake/Qt6/qt.toolchain.cmake
ifdef ENABLE_PDB
QTSVG_CONFIG += -DCMAKE_BUILD_TYPE=RelWithDebInfo
else
QTSVG_CONFIG += -DCMAKE_BUILD_TYPE=Release
endif
qtsvg: qtsvg-everywhere-src-$(QTSVG_VERSION).tar.xz .sum-qtsvg
$(UNPACK)
$(MOVE)
.qtsvg: qtsvg toolchain.cmake
mkdir -p $(BUILD_DIR)
+cd $(BUILD_DIR) && $(PREFIX)/bin/qt-configure-module $(BUILD_SRC)
$(CMAKECLEAN)
$(HOSTVARS) $(CMAKE) $(QTSVG_CONFIG)
+$(CMAKEBUILD)
$(CMAKEINSTALL)
touch $@

View File

@ -11,13 +11,20 @@ $(TARBALLS)/qtwayland-everywhere-src-$(QTWAYLAND_VERSION).tar.xz:
.sum-qtwayland: qtwayland-everywhere-src-$(QTWAYLAND_VERSION).tar.xz
QTWAYLAND_CONFIG := -DCMAKE_TOOLCHAIN_FILE=$(PREFIX)/lib/cmake/Qt6/qt.toolchain.cmake
ifdef ENABLE_PDB
QTWAYLAND_CONFIG += -DCMAKE_BUILD_TYPE=RelWithDebInfo
else
QTWAYLAND_CONFIG += -DCMAKE_BUILD_TYPE=Release
endif
qtwayland: qtwayland-everywhere-src-$(QTWAYLAND_VERSION).tar.xz .sum-qtwayland
$(UNPACK)
$(MOVE)
.qtwayland: qtwayland toolchain.cmake
mkdir -p $(BUILD_DIR)
+cd $(BUILD_DIR) && $(PREFIX)/bin/qt-configure-module $(BUILD_SRC)
$(CMAKECLEAN)
$(HOSTVARS) $(CMAKE) $(QTWAYLAND_CONFIG)
+$(CMAKEBUILD)
$(CMAKEINSTALL)
touch $@