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.
This commit is contained in:
Mirko Vogt
2025-05-12 16:50:13 +00:00
parent 8c825c6477
commit b749b9e83d
9 changed files with 142 additions and 127 deletions

134
frameworks/qt5/common.mk Normal file
View File

@@ -0,0 +1,134 @@
#
# Copyright (C) 2020 OpenWrt.org
# Author: Mirko Vogt <mirko-openwrt@nanl.de>
# 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

View File

@@ -37,53 +37,10 @@
# objects on the target platform. Tihs behaviour wasn't observed so far, however # 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. # 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_SPEC:=linux-g++
QMAKE_XSPEC:=linux-openwrt-g++ QMAKE_XSPEC:=linux-openwrt-g++
# for target builds
PKG_INSTALL_DIR_ROOT:=$(PKG_INSTALL_DIR) PKG_INSTALL_DIR_ROOT:=$(PKG_INSTALL_DIR)
PKG_INSTALL_DIR:=$(PKG_INSTALL_DIR_ROOT)/$(STAGING_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) \ $(MAKE) -C $(HOST_BUILD_DIR)/$(MAKE_PATH) \
$(1) install $(1) install
endef 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

View File

@@ -40,6 +40,7 @@ HOST_BUILD_DEPENDS:=qt5base
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include ../common.mk
include ../qmake.mk include ../qmake.mk
# hard disable udev support for now # hard disable udev support for now

View File

@@ -23,6 +23,7 @@ PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include ../common.mk
include ../qmake.mk include ../qmake.mk
define Package/qt5graphicaleffects define Package/qt5graphicaleffects

View File

@@ -22,6 +22,7 @@ PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include ../common.mk
include ../qmake.mk include ../qmake.mk
define Package/qt5quick2-controls2 define Package/qt5quick2-controls2

View File

@@ -23,6 +23,7 @@ PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include ../common.mk
include ../qmake.mk include ../qmake.mk
define Package/qt5quick2/Default define Package/qt5quick2/Default

View File

@@ -23,6 +23,7 @@ PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include ../common.mk
include ../qmake.mk include ../qmake.mk
define Package/qt5script/Default define Package/qt5script/Default

View File

@@ -27,6 +27,7 @@ HOST_BUILD_DEPENDS:=qt5base/host
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include ../common.mk
include ../qmake.mk include ../qmake.mk
define Package/qt5tools define Package/qt5tools

View File

@@ -23,6 +23,7 @@ PKG_BUILD_DEPENDS:=qt5tools/host
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include ../common.mk
include ../qmake.mk include ../qmake.mk
define Package/qt5translations define Package/qt5translations