diff options
author | Thomas Bettler <thomas.bettler@gmail.com> | 2023-06-11 10:53:46 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2023-06-13 14:12:24 +0200 |
commit | 03a9f4e5516702df1a185f616b06f429dc9ad19f (patch) | |
tree | 5c1c47d94a6709dcf2d18fc63f57d25b02230f62 | |
parent | dev-ruby/connection_pool: add 2.4.1 (diff) | |
download | gentoo-03a9f4e5516702df1a185f616b06f429dc9ad19f.tar.gz gentoo-03a9f4e5516702df1a185f616b06f429dc9ad19f.tar.bz2 gentoo-03a9f4e5516702df1a185f616b06f429dc9ad19f.zip |
qmake-utils.eclass: add qt6 support
Signed-off-by: Thomas Bettler <thomas.bettler@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/31254
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
-rw-r--r-- | eclass/qmake-utils.eclass | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/eclass/qmake-utils.eclass b/eclass/qmake-utils.eclass index 88755ab7aa8a..5c5fa8dcb047 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 |