From b749b9e83d51778fa39b8eab5b7be20f79256284 Mon Sep 17 00:00:00 2001 From: Mirko Vogt Date: Mon, 12 May 2025 16:50:13 +0000 Subject: [PATCH] qt5*: split qmake.mk into common.mk and qmake.mk That way projects not using qmake (but cmake) can still import all qt5 specific variables and helper functions, without its routines being overriden by the qmake specific ones. --- frameworks/qt5/common.mk | 134 ++++++++++++++++++++ frameworks/qt5/qmake.mk | 128 +------------------ frameworks/qt5/qt5base/Makefile | 1 + frameworks/qt5/qt5graphicaleffects/Makefile | 1 + frameworks/qt5/qt5quick2-controls2/Makefile | 1 + frameworks/qt5/qt5quick2/Makefile | 1 + frameworks/qt5/qt5script/Makefile | 1 + frameworks/qt5/qt5tools/Makefile | 1 + frameworks/qt5/qt5translations/Makefile | 1 + 9 files changed, 142 insertions(+), 127 deletions(-) create mode 100644 frameworks/qt5/common.mk diff --git a/frameworks/qt5/common.mk b/frameworks/qt5/common.mk new file mode 100644 index 0000000..e630d5f --- /dev/null +++ b/frameworks/qt5/common.mk @@ -0,0 +1,134 @@ +# +# Copyright (C) 2020 OpenWrt.org +# Author: Mirko Vogt +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +# for target builds (STAGING_DIR) +QT_INSTALL_PREFIX:=$(CONFIGURE_PREFIX) +QT_INSTALL_CONFIGURATION:=/etc/qt5 +QT_INSTALL_LIBS:=$(QT_INSTALL_PREFIX)/lib +QT_INSTALL_DATA:=$(QT_INSTALL_PREFIX)/share/qt5 +QT_INSTALL_HEADERS:=$(QT_INSTALL_PREFIX)/include/qt5 +QT_INSTALL_CMAKES:=$(QT_INSTALL_PREFIX)/lib/cmake +QT_INSTALL_PKGCONFIGS:=$(QT_INSTALL_PREFIX)/lib/pkgconfig +QT_INSTALL_BINS:=$(QT_INSTALL_PREFIX)/bin +QT_INSTALL_DOCS:=$(QT_INSTALL_DATA)/doc +QT_INSTALL_TRANSLATIONS:=$(QT_INSTALL_DATA)/translations +QT_INSTALL_ARCHDATA:=$(QT_INSTALL_LIBS)/qt5 +QT_INSTALL_LIBEXECS:=$(QT_INSTALL_ARCHDATA) +QT_INSTALL_TESTS:=$(QT_INSTALL_ARCHDATA)/tests +QT_INSTALL_PLUGINS:=$(QT_INSTALL_ARCHDATA)/plugins +QT_INSTALL_IMPORTS:=$(QT_INSTALL_ARCHDATA)/imports +QT_INSTALL_QML:=$(QT_INSTALL_ARCHDATA)/qml +QT_INSTALL_EXAMPLES:=$(QT_INSTALL_ARCHDATA)/examples +QT_INSTALL_DEMOS:=$(QT_INSTALL_EXAMPLES) +# for host builds defined in target project files (STAGING_DIR)/host +QT_HOST_PREFIX:=$(STAGING_DIR)/host +QT_HOST_DATA:=$(QT_HOST_PREFIX)/share/qt5 +QT_HOST_BINS:=$(QT_HOST_PREFIX)/bin/qt5 +QT_HOST_LIBS:=$(QT_HOST_PREFIX)/lib +# for host builds defined in host project files (STAGING_DIR_HOST) +QT_HOSTPKG_PREFIX:=$(STAGING_DIR_HOST) +QT_HOSTPKG_CONFIGURATION:=$(STAGING_DIR_HOST)/etc/qt5 +QT_HOSTPKG_LIBS:=$(QT_HOSTPKG_PREFIX)/lib +QT_HOSTPKG_DATA:=$(QT_HOSTPKG_PREFIX)/share/qt5 +QT_HOSTPKG_HEADERS:=$(QT_HOSTPKG_PREFIX)/include/qt5 +QT_HOSTPKG_CMAKES:=$(QT_HOSTPKG_PREFIX)/lib/cmake +QT_HOSTPKG_PKGCONFIGS:=$(QT_HOSTPKG_PREFIX)/lib/pkgconfig +QT_HOSTPKG_BINS:=$(QT_HOSTPKG_PREFIX)/bin/qt5 +QT_HOSTPKG_DOCS:=$(QT_HOSTPKG_DATA)/doc +QT_HOSTPKG_TRANSLATIONS:=$(QT_HOSTPKG_DATA)/translations +QT_HOSTPKG_ARCHDATA:=$(QT_HOSTPKG_LIBS)/qt5 +QT_HOSTPKG_LIBEXECS:=$(QT_HOSTPKG_ARCHDATA)/libexec +QT_HOSTPKG_TESTS:=$(QT_HOSTPKG_ARCHDATA)/tests +QT_HOSTPKG_PLUGINS:=$(QT_HOSTPKG_ARCHDATA)/plugins +QT_HOSTPKG_IMPORTS:=$(QT_HOSTPKG_ARCHDATA)/imports +QT_HOSTPKG_QML:=$(QT_HOSTPKG_ARCHDATA)/qml +QT_HOSTPKG_EXAMPLES:=$(QT_HOSTPKG_ARCHDATA)/examples +QT_HOSTPKG_DEMOS:=$(QT_HOSTPKG_EXAMPLES) + + +define Build/Install/HostFiles + $(INSTALL_DIR) \ + $(1)/host + + $(CP) \ + $(PKG_INSTALL_DIR)/host/* \ + $(1)/host/ +endef + +define Build/Install/Headers + $(INSTALL_DIR) \ + $(1)/$(QT_INSTALL_HEADERS) + + $(CP) \ + $(PKG_INSTALL_DIR)/$(QT_INSTALL_HEADERS)/* \ + $(1)/$(QT_INSTALL_HEADERS)/ +endef + +define Build/Install/Libs + $(INSTALL_DIR) \ + $(1)/$(QT_INSTALL_LIBS) + + $(CP) \ + $(PKG_INSTALL_DIR)/$(QT_INSTALL_LIBS)/$(2).so* \ + $(1)/$(QT_INSTALL_LIBS)/ +endef + +define Build/Install/Cmakes + $(INSTALL_DIR) \ + $(1)/$(QT_INSTALL_CMAKES) + + $(CP) \ + $(PKG_INSTALL_DIR)/$(QT_INSTALL_CMAKES)/* \ + $(1)/$(QT_INSTALL_CMAKES)/ +endef + +define Build/Install/Pkgconfigs + $(INSTALL_DIR) \ + $(1)/$(QT_INSTALL_PKGCONFIGS) + + $(CP) \ + $(PKG_INSTALL_DIR)/$(QT_INSTALL_PKGCONFIGS)/* \ + $(1)/$(QT_INSTALL_PKGCONFIGS)/ +endef + +define Build/Install/Translations + $(INSTALL_DIR) \ + $(1)/$(QT_INSTALL_TRANSLATIONS) + + $(CP) \ + $(PKG_INSTALL_DIR)/$(QT_INSTALL_TRANSLATIONS)/$(2).qm \ + $(1)/$(QT_INSTALL_TRANSLATIONS)/ +endef + +define Build/Install/Plugins + if [ "$(2)" = '*' ]; then \ + $(INSTALL_DIR) \ + $(1)/$(QT_INSTALL_PLUGINS) ; \ + $(CP) \ + $(PKG_INSTALL_DIR)/$(QT_INSTALL_PLUGINS)/$(2) \ + $(1)/$(QT_INSTALL_PLUGINS)/ ; \ + else \ + $(INSTALL_DIR) \ + $(1)/$(QT_INSTALL_PLUGINS)/$(2) ; \ + $(CP) \ + $(PKG_INSTALL_DIR)/$(QT_INSTALL_PLUGINS)/$(2)/$(3).so* \ + $(1)/$(QT_INSTALL_PLUGINS)/$(2)/ ; \ + fi +endef + +define Build/Install/Examples + $(INSTALL_DIR) \ + $(1)/$(QT_INSTALL_EXAMPLES) + + $(CP) \ + $(PKG_INSTALL_DIR)/$(QT_INSTALL_EXAMPLES)/* \ + $(1)/$(QT_INSTALL_EXAMPLES)/ + + $(FIND) $(1)/$(QT_INSTALL_EXAMPLES) \ + -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.pro' -o -name '*.pri' \) | \ + $(XARGS) $(RM) -vf +endef diff --git a/frameworks/qt5/qmake.mk b/frameworks/qt5/qmake.mk index 6e06038..29ff6f5 100644 --- a/frameworks/qt5/qmake.mk +++ b/frameworks/qt5/qmake.mk @@ -37,53 +37,10 @@ # objects on the target platform. Tihs behaviour wasn't observed so far, however # one might use the QT_INSTALL_* variables for some weird reason during runtime. -# for target builds (STAGING_DIR) -QT_INSTALL_PREFIX:=$(CONFIGURE_PREFIX) -QT_INSTALL_CONFIGURATION:=/etc/qt5 -QT_INSTALL_LIBS:=$(QT_INSTALL_PREFIX)/lib -QT_INSTALL_DATA:=$(QT_INSTALL_PREFIX)/share/qt5 -QT_INSTALL_HEADERS:=$(QT_INSTALL_PREFIX)/include/qt5 -QT_INSTALL_CMAKES:=$(QT_INSTALL_PREFIX)/lib/cmake -QT_INSTALL_PKGCONFIGS:=$(QT_INSTALL_PREFIX)/lib/pkgconfig -QT_INSTALL_BINS:=$(QT_INSTALL_PREFIX)/bin -QT_INSTALL_DOCS:=$(QT_INSTALL_DATA)/doc -QT_INSTALL_TRANSLATIONS:=$(QT_INSTALL_DATA)/translations -QT_INSTALL_ARCHDATA:=$(QT_INSTALL_LIBS)/qt5 -QT_INSTALL_LIBEXECS:=$(QT_INSTALL_ARCHDATA) -QT_INSTALL_TESTS:=$(QT_INSTALL_ARCHDATA)/tests -QT_INSTALL_PLUGINS:=$(QT_INSTALL_ARCHDATA)/plugins -QT_INSTALL_IMPORTS:=$(QT_INSTALL_ARCHDATA)/imports -QT_INSTALL_QML:=$(QT_INSTALL_ARCHDATA)/qml -QT_INSTALL_EXAMPLES:=$(QT_INSTALL_ARCHDATA)/examples -QT_INSTALL_DEMOS:=$(QT_INSTALL_EXAMPLES) -# for host builds defined in target project files (STAGING_DIR)/host -QT_HOST_PREFIX:=$(STAGING_DIR)/host -QT_HOST_DATA:=$(QT_HOST_PREFIX)/share/qt5 -QT_HOST_BINS:=$(QT_HOST_PREFIX)/bin/qt5 -QT_HOST_LIBS:=$(QT_HOST_PREFIX)/lib -# for host builds defined in host project files (STAGING_DIR_HOST) -QT_HOSTPKG_PREFIX:=$(STAGING_DIR_HOST) -QT_HOSTPKG_CONFIGURATION:=$(STAGING_DIR_HOST)/etc/qt5 -QT_HOSTPKG_LIBS:=$(QT_HOSTPKG_PREFIX)/lib -QT_HOSTPKG_DATA:=$(QT_HOSTPKG_PREFIX)/share/qt5 -QT_HOSTPKG_HEADERS:=$(QT_HOSTPKG_PREFIX)/include/qt5 -QT_HOSTPKG_CMAKES:=$(QT_HOSTPKG_PREFIX)/lib/cmake -QT_HOSTPKG_PKGCONFIGS:=$(QT_HOSTPKG_PREFIX)/lib/pkgconfig -QT_HOSTPKG_BINS:=$(QT_HOSTPKG_PREFIX)/bin/qt5 -QT_HOSTPKG_DOCS:=$(QT_HOSTPKG_DATA)/doc -QT_HOSTPKG_TRANSLATIONS:=$(QT_HOSTPKG_DATA)/translations -QT_HOSTPKG_ARCHDATA:=$(QT_HOSTPKG_LIBS)/qt5 -QT_HOSTPKG_LIBEXECS:=$(QT_HOSTPKG_ARCHDATA)/libexec -QT_HOSTPKG_TESTS:=$(QT_HOSTPKG_ARCHDATA)/tests -QT_HOSTPKG_PLUGINS:=$(QT_HOSTPKG_ARCHDATA)/plugins -QT_HOSTPKG_IMPORTS:=$(QT_HOSTPKG_ARCHDATA)/imports -QT_HOSTPKG_QML:=$(QT_HOSTPKG_ARCHDATA)/qml -QT_HOSTPKG_EXAMPLES:=$(QT_HOSTPKG_ARCHDATA)/examples -QT_HOSTPKG_DEMOS:=$(QT_HOSTPKG_EXAMPLES) - QMAKE_SPEC:=linux-g++ QMAKE_XSPEC:=linux-openwrt-g++ +# for target builds PKG_INSTALL_DIR_ROOT:=$(PKG_INSTALL_DIR) PKG_INSTALL_DIR:=$(PKG_INSTALL_DIR_ROOT)/$(STAGING_DIR) @@ -156,86 +113,3 @@ define Host/Install/Default $(MAKE) -C $(HOST_BUILD_DIR)/$(MAKE_PATH) \ $(1) install endef - -define Build/Install/HostFiles - $(INSTALL_DIR) \ - $(1)/host - - $(CP) \ - $(PKG_INSTALL_DIR)/host/* \ - $(1)/host/ -endef - -define Build/Install/Headers - $(INSTALL_DIR) \ - $(1)/$(QT_INSTALL_HEADERS) - - $(CP) \ - $(PKG_INSTALL_DIR)/$(QT_INSTALL_HEADERS)/* \ - $(1)/$(QT_INSTALL_HEADERS)/ -endef - -define Build/Install/Libs - $(INSTALL_DIR) \ - $(1)/$(QT_INSTALL_LIBS) - - $(CP) \ - $(PKG_INSTALL_DIR)/$(QT_INSTALL_LIBS)/$(2).so* \ - $(1)/$(QT_INSTALL_LIBS)/ -endef - -define Build/Install/Cmakes - $(INSTALL_DIR) \ - $(1)/$(QT_INSTALL_CMAKES) - - $(CP) \ - $(PKG_INSTALL_DIR)/$(QT_INSTALL_CMAKES)/* \ - $(1)/$(QT_INSTALL_CMAKES)/ -endef - -define Build/Install/Pkgconfigs - $(INSTALL_DIR) \ - $(1)/$(QT_INSTALL_PKGCONFIGS) - - $(CP) \ - $(PKG_INSTALL_DIR)/$(QT_INSTALL_PKGCONFIGS)/* \ - $(1)/$(QT_INSTALL_PKGCONFIGS)/ -endef - -define Build/Install/Translations - $(INSTALL_DIR) \ - $(1)/$(QT_INSTALL_TRANSLATIONS) - - $(CP) \ - $(PKG_INSTALL_DIR)/$(QT_INSTALL_TRANSLATIONS)/$(2).qm \ - $(1)/$(QT_INSTALL_TRANSLATIONS)/ -endef - -define Build/Install/Plugins - if [ "$(2)" = '*' ]; then \ - $(INSTALL_DIR) \ - $(1)/$(QT_INSTALL_PLUGINS) ; \ - $(CP) \ - $(PKG_INSTALL_DIR)/$(QT_INSTALL_PLUGINS)/$(2) \ - $(1)/$(QT_INSTALL_PLUGINS)/ ; \ - else \ - $(INSTALL_DIR) \ - $(1)/$(QT_INSTALL_PLUGINS)/$(2) ; \ - $(CP) \ - $(PKG_INSTALL_DIR)/$(QT_INSTALL_PLUGINS)/$(2)/$(3).so* \ - $(1)/$(QT_INSTALL_PLUGINS)/$(2)/ ; \ - fi -endef - -define Build/Install/Examples - $(INSTALL_DIR) \ - $(1)/$(QT_INSTALL_EXAMPLES) - - $(CP) \ - $(PKG_INSTALL_DIR)/$(QT_INSTALL_EXAMPLES)/* \ - $(1)/$(QT_INSTALL_EXAMPLES)/ - - $(FIND) $(1)/$(QT_INSTALL_EXAMPLES) \ - -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.pro' -o -name '*.pri' \) | \ - $(XARGS) $(RM) -vf -endef diff --git a/frameworks/qt5/qt5base/Makefile b/frameworks/qt5/qt5base/Makefile index 1726509..b0872f9 100644 --- a/frameworks/qt5/qt5base/Makefile +++ b/frameworks/qt5/qt5base/Makefile @@ -40,6 +40,7 @@ HOST_BUILD_DEPENDS:=qt5base include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/nls.mk +include ../common.mk include ../qmake.mk # hard disable udev support for now diff --git a/frameworks/qt5/qt5graphicaleffects/Makefile b/frameworks/qt5/qt5graphicaleffects/Makefile index 9e6212b..3d3f8f0 100644 --- a/frameworks/qt5/qt5graphicaleffects/Makefile +++ b/frameworks/qt5/qt5graphicaleffects/Makefile @@ -23,6 +23,7 @@ PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk +include ../common.mk include ../qmake.mk define Package/qt5graphicaleffects diff --git a/frameworks/qt5/qt5quick2-controls2/Makefile b/frameworks/qt5/qt5quick2-controls2/Makefile index 69bba2a..c30ecf4 100644 --- a/frameworks/qt5/qt5quick2-controls2/Makefile +++ b/frameworks/qt5/qt5quick2-controls2/Makefile @@ -22,6 +22,7 @@ PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk +include ../common.mk include ../qmake.mk define Package/qt5quick2-controls2 diff --git a/frameworks/qt5/qt5quick2/Makefile b/frameworks/qt5/qt5quick2/Makefile index 5647561..83bce29 100644 --- a/frameworks/qt5/qt5quick2/Makefile +++ b/frameworks/qt5/qt5quick2/Makefile @@ -23,6 +23,7 @@ PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk +include ../common.mk include ../qmake.mk define Package/qt5quick2/Default diff --git a/frameworks/qt5/qt5script/Makefile b/frameworks/qt5/qt5script/Makefile index 94e4b13..9a658d6 100644 --- a/frameworks/qt5/qt5script/Makefile +++ b/frameworks/qt5/qt5script/Makefile @@ -23,6 +23,7 @@ PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk +include ../common.mk include ../qmake.mk define Package/qt5script/Default diff --git a/frameworks/qt5/qt5tools/Makefile b/frameworks/qt5/qt5tools/Makefile index 5d20620..9fac6e1 100644 --- a/frameworks/qt5/qt5tools/Makefile +++ b/frameworks/qt5/qt5tools/Makefile @@ -27,6 +27,7 @@ HOST_BUILD_DEPENDS:=qt5base/host include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/nls.mk +include ../common.mk include ../qmake.mk define Package/qt5tools diff --git a/frameworks/qt5/qt5translations/Makefile b/frameworks/qt5/qt5translations/Makefile index 3bcc697..e0fda9e 100644 --- a/frameworks/qt5/qt5translations/Makefile +++ b/frameworks/qt5/qt5translations/Makefile @@ -23,6 +23,7 @@ PKG_BUILD_DEPENDS:=qt5tools/host include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk +include ../common.mk include ../qmake.mk define Package/qt5translations -- 2.30.2