From 03a9f4e5516702df1a185f616b06f429dc9ad19f Mon Sep 17 00:00:00 2001 From: Thomas Bettler Date: Sun, 11 Jun 2023 10:53:46 +0200 Subject: [PATCH] qmake-utils.eclass: add qt6 support Signed-off-by: Thomas Bettler Closes: https://github.com/gentoo/gentoo/pull/31254 Signed-off-by: Andreas Sturmlechner --- eclass/qmake-utils.eclass | 59 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/eclass/qmake-utils.eclass b/eclass/qmake-utils.eclass index 88755ab7aa8a5..5c5fa8dcb0474 100644 --- a/eclass/qmake-utils.eclass +++ b/eclass/qmake-utils.eclass @@ -155,4 +155,63 @@ qt6_get_plugindir() { echo $(qt6_get_libdir)/qt6/plugins } +# @FUNCTION: qt6_get_qmake_args +# @DESCRIPTION: +# Echoes a multi-line string containing arguments to pass to qmake. +qt6_get_qmake_args() { + cat <<-EOF + QMAKE_AR="$(tc-getAR) cqs" + QMAKE_CC="$(tc-getCC)" + QMAKE_LINK_C="$(tc-getCC)" + QMAKE_LINK_C_SHLIB="$(tc-getCC)" + QMAKE_CXX="$(tc-getCXX)" + QMAKE_LINK="$(tc-getCXX)" + QMAKE_LINK_SHLIB="$(tc-getCXX)" + QMAKE_OBJCOPY="$(tc-getOBJCOPY)" + QMAKE_RANLIB= + QMAKE_STRIP= + QMAKE_CFLAGS="${CFLAGS}" + QMAKE_CFLAGS_RELEASE= + QMAKE_CFLAGS_DEBUG= + QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO= + QMAKE_CXXFLAGS="${CXXFLAGS}" + QMAKE_CXXFLAGS_RELEASE= + QMAKE_CXXFLAGS_DEBUG= + QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO= + QMAKE_LFLAGS="${LDFLAGS}" + QMAKE_LFLAGS_RELEASE= + QMAKE_LFLAGS_DEBUG= + QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO= + EOF +} + +# @FUNCTION: eqmake6 +# @USAGE: [arguments for qmake] +# @DESCRIPTION: +# Wrapper for Qt6's qmake. All arguments are passed to qmake. +# +# For recursive build systems, i.e. those based on the subdirs template, +# you should run eqmake6 on the top-level project file only, unless you +# have a valid reason to do otherwise. During the building, qmake will +# be automatically re-invoked with the right arguments on every directory +# specified inside the top-level project file. +eqmake6() { + debug-print-function ${FUNCNAME} "$@" + + ebegin "Running qmake" + + local -a args + mapfile -t args <<<"$(qt6_get_qmake_args)" + # NB: we're passing literal quotes in but qmake doesn't seem to mind + "$(qt6_get_bindir)"/qmake -makefile "${args[@]}" "$@" + + if ! eend $? ; then + echo + eerror "Running qmake has failed! (see above for details)" + eerror "This shouldn't happen - please send a bug report to https://bugs.gentoo.org/" + echo + die "eqmake6 failed" + fi +} + fi