qt6: add qt5compat module

Fixes #5458
This commit is contained in:
Christian Prochaska 2025-02-21 08:44:34 +01:00 committed by Christian Helmuth
parent c9406c246e
commit dbf23a7a0c
11 changed files with 137 additions and 2 deletions

View File

@ -1 +1 @@
695f32b36de504cc9d882cba9c1bb539721939e8
2d1831e725ae12bc81d1f3e3ebd166028046a6d5

View File

@ -4,5 +4,5 @@ VERSION := 6.6.2
DOWNLOADS := qt6_api.git
URL(qt6_api) := https://github.com/cproc/qt6_api.git
REV(qt6_api) := issue5419
REV(qt6_api) := issue5458
DIR(qt6_api) := src/lib/qt6_api

View File

@ -0,0 +1 @@
667443206609cf3be2989955915620097b1a8bb3

View File

@ -0,0 +1,8 @@
LICENSE := LGPL
VERSION := 6.6.2
DOWNLOADS := qt6_qt5compat.git
URL(qt6_qt5compat) := https://github.com/cproc/qt6_qt5compat.git
REV(qt6_qt5compat) := issue5458
DIR(qt6_qt5compat) := src/lib/qt6_qt5compat

View File

@ -0,0 +1,14 @@
PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt6_api)
MIRROR_LIB_SYMBOLS := libQt6Core5Compat
content: $(MIRROR_LIB_SYMBOLS)
$(MIRROR_LIB_SYMBOLS):
mkdir -p lib/symbols
cp $(PORT_DIR)/src/lib/qt6_api/lib/symbols/$@ lib/symbols/
content: LICENSE
LICENSE:
cp $(PORT_DIR)/src/lib/qt6_api/LICENSE.LGPL3 $@

View File

@ -0,0 +1 @@
2025-02-03 de5863bbe7e70a2a5ef525a325d00a22f6efa010

View File

@ -0,0 +1 @@
qt6_qt5compat

View File

@ -0,0 +1,21 @@
MIRROR_FROM_REP_DIR := src/qt6/qt5compat/target.mk
content: $(MIRROR_FROM_REP_DIR)
$(MIRROR_FROM_REP_DIR):
$(mirror_from_rep_dir)
PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt6_qt5compat)
MIRROR_FROM_PORT_DIR := src/lib/qt6_qt5compat
content: $(MIRROR_FROM_PORT_DIR)
$(MIRROR_FROM_PORT_DIR):
mkdir -p $(dir $@)
cp -r $(PORT_DIR)/$@ $(dir $@)
content: LICENSE
LICENSE:
cp $(PORT_DIR)/src/lib/qt6_qt5compat/LICENSES/LGPL-3.0-only.txt $@

View File

@ -0,0 +1 @@
2025-02-05 79721af867e6a571051f92ea1efddebd2c14dcff

View File

@ -0,0 +1,8 @@
libc
mesa
qt6_base
qt6_component
qt6_declarative
qt6_shadertools
so
stdcxx

View File

@ -0,0 +1,80 @@
TARGET = qt6_qt5compat.cmake_target
ifeq ($(CONTRIB_DIR),)
QT6_QT5COMPAT_DIR = $(call select_from_repositories,src/lib/qt6_qt5compat)
else
QT6_QT5COMPAT_PORT_DIR := $(call select_from_ports,qt6_qt5compat)
QT6_QT5COMPAT_DIR = $(QT6_QT5COMPAT_PORT_DIR)/src/lib/qt6_qt5compat
endif
QT6_PORT_LIBS = libQt6Core libQt6Gui libQt6Network libQt6OpenGL
QT6_PORT_LIBS += libQt6Qml libQt6QmlModels libQt6Quick
QT6_PORT_LIBS += libQt6ShaderTools
LIBS = qt6_cmake ldso_so_support libc libm egl mesa qt6_component stdcxx
INSTALL_LIBS = lib/libQt6Core5Compat.lib.so
BUILD_ARTIFACTS = $(notdir $(INSTALL_LIBS))
build: cmake_prepared.tag qt6_so_files
@#
@# run cmake
@#
$(VERBOSE)cmake \
-G "Unix Makefiles" \
-DCMAKE_PREFIX_PATH="$(CURDIR)/build_dependencies" \
-DCMAKE_MODULE_PATH="$(CURDIR)/build_dependencies/lib/cmake/Modules" \
-DCMAKE_SYSTEM_NAME="Genode" \
-DCMAKE_AR="$(AR)" \
-DCMAKE_C_COMPILER="$(CC)" \
-DCMAKE_C_FLAGS="$(GENODE_CMAKE_CFLAGS)" \
-DCMAKE_CXX_COMPILER="$(CXX)" \
-DCMAKE_CXX_FLAGS="$(GENODE_CMAKE_CFLAGS)" \
-DCMAKE_EXE_LINKER_FLAGS="$(GENODE_CMAKE_LFLAGS_APP)" \
-DCMAKE_SHARED_LINKER_FLAGS="$(GENODE_CMAKE_LFLAGS_SHLIB)" \
-DCMAKE_MODULE_LINKER_FLAGS="$(GENODE_CMAKE_LFLAGS_SHLIB)" \
-DQT_QMAKE_TARGET_MKSPEC=$(QT_PLATFORM) \
-DCMAKE_INSTALL_PREFIX=/qt \
$(QT6_QT5COMPAT_DIR) \
$(QT6_OUTPUT_FILTER)
@#
@# build
@#
$(VERBOSE)$(MAKE) VERBOSE=$(MAKE_VERBOSE)
@#
@# install into local 'install' directory
@#
$(VERBOSE)$(MAKE) VERBOSE=$(MAKE_VERBOSE) DESTDIR=install install
@#
@# remove shared library existence checks since many libs are not
@# present and not needed at build time
@#
$(VERBOSE)find $(CURDIR)/install/qt/lib/cmake -name "*.cmake" \
-exec sed -i "/list(APPEND _IMPORT_CHECK_TARGETS /d" {} \;
@#
@# strip libs and create symlinks in 'bin' and 'debug' directories
@#
$(VERBOSE)for LIB in $(INSTALL_LIBS); do \
cd $(CURDIR)/install/qt/$$(dirname $${LIB}) && \
$(OBJCOPY) --only-keep-debug $$(basename $${LIB}) $$(basename $${LIB}).debug && \
$(STRIP) $$(basename $${LIB}) -o $$(basename $${LIB}).stripped && \
$(OBJCOPY) --add-gnu-debuglink=$$(basename $${LIB}).debug $$(basename $${LIB}).stripped; \
ln -sf $(CURDIR)/install/qt/$${LIB}.stripped $(PWD)/bin/$$(basename $${LIB}); \
ln -sf $(CURDIR)/install/qt/$${LIB}.stripped $(PWD)/debug/$$(basename $${LIB}); \
ln -sf $(CURDIR)/install/qt/$${LIB}.debug $(PWD)/debug/; \
done
.PHONY: build
QT6_TARGET_DEPS = build