diff --git a/repos/libports/ports/qt6_api.hash b/repos/libports/ports/qt6_api.hash index caef29603d..57866b1dcf 100644 --- a/repos/libports/ports/qt6_api.hash +++ b/repos/libports/ports/qt6_api.hash @@ -1 +1 @@ -695f32b36de504cc9d882cba9c1bb539721939e8 +2d1831e725ae12bc81d1f3e3ebd166028046a6d5 diff --git a/repos/libports/ports/qt6_api.port b/repos/libports/ports/qt6_api.port index f25d5756c4..f0e5f882cb 100644 --- a/repos/libports/ports/qt6_api.port +++ b/repos/libports/ports/qt6_api.port @@ -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 diff --git a/repos/libports/ports/qt6_qt5compat.hash b/repos/libports/ports/qt6_qt5compat.hash new file mode 100644 index 0000000000..c5654b592e --- /dev/null +++ b/repos/libports/ports/qt6_qt5compat.hash @@ -0,0 +1 @@ +667443206609cf3be2989955915620097b1a8bb3 diff --git a/repos/libports/ports/qt6_qt5compat.port b/repos/libports/ports/qt6_qt5compat.port new file mode 100644 index 0000000000..c5acc64185 --- /dev/null +++ b/repos/libports/ports/qt6_qt5compat.port @@ -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 diff --git a/repos/libports/recipes/api/qt6_qt5compat/content.mk b/repos/libports/recipes/api/qt6_qt5compat/content.mk new file mode 100644 index 0000000000..f96620c86a --- /dev/null +++ b/repos/libports/recipes/api/qt6_qt5compat/content.mk @@ -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 $@ diff --git a/repos/libports/recipes/api/qt6_qt5compat/hash b/repos/libports/recipes/api/qt6_qt5compat/hash new file mode 100644 index 0000000000..9b72454288 --- /dev/null +++ b/repos/libports/recipes/api/qt6_qt5compat/hash @@ -0,0 +1 @@ +2025-02-03 de5863bbe7e70a2a5ef525a325d00a22f6efa010 diff --git a/repos/libports/recipes/src/qt6_qt5compat/api b/repos/libports/recipes/src/qt6_qt5compat/api new file mode 100644 index 0000000000..46a089bbc1 --- /dev/null +++ b/repos/libports/recipes/src/qt6_qt5compat/api @@ -0,0 +1 @@ +qt6_qt5compat diff --git a/repos/libports/recipes/src/qt6_qt5compat/content.mk b/repos/libports/recipes/src/qt6_qt5compat/content.mk new file mode 100644 index 0000000000..ec6e21d9c9 --- /dev/null +++ b/repos/libports/recipes/src/qt6_qt5compat/content.mk @@ -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 $@ diff --git a/repos/libports/recipes/src/qt6_qt5compat/hash b/repos/libports/recipes/src/qt6_qt5compat/hash new file mode 100644 index 0000000000..9769ebdb80 --- /dev/null +++ b/repos/libports/recipes/src/qt6_qt5compat/hash @@ -0,0 +1 @@ +2025-02-05 79721af867e6a571051f92ea1efddebd2c14dcff diff --git a/repos/libports/recipes/src/qt6_qt5compat/used_apis b/repos/libports/recipes/src/qt6_qt5compat/used_apis new file mode 100644 index 0000000000..d9fe4ebe7b --- /dev/null +++ b/repos/libports/recipes/src/qt6_qt5compat/used_apis @@ -0,0 +1,8 @@ +libc +mesa +qt6_base +qt6_component +qt6_declarative +qt6_shadertools +so +stdcxx diff --git a/repos/libports/src/qt6/qt5compat/target.mk b/repos/libports/src/qt6/qt5compat/target.mk new file mode 100644 index 0000000000..0c14cdb570 --- /dev/null +++ b/repos/libports/src/qt6/qt5compat/target.mk @@ -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