forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-qt/qtcore: Fix cmake macro compat. for upgrade from <Qt-5.14
Closes: https://bugs.gentoo.org/703306 Closes: https://bugs.gentoo.org/705198 Package-Manager: Portage-2.3.87, Repoman-2.3.20 Signed-off-by: Andreas Sturmlechner <[email protected]>
- Loading branch information
Showing
2 changed files
with
135 additions
and
0 deletions.
There are no files selected for viewing
50 changes: 50 additions & 0 deletions
50
dev-qt/qtcore/files/qtcore-5.14.1-cmake-macro-backward-compat.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
From: Andreas Sturmlechner <[email protected]> | ||
Date: Sun, 9 Feb 2020 11:45:00 +0100 | ||
Subject: [PATCH] qtcore: Fix cmake macro compat. for upgrade from <Qt-5.14 | ||
|
||
In upstream commit: | ||
|
||
https://code.qt.io/cgit/qt/qtbase.git/commit/?h=5.14&id=63d9cd17 | ||
|
||
_populate_$${CMAKE_MODULE_NAME}_plugin_properties in 5.14.0 gained an additional argument | ||
IsDebugAndRelease without providing backward compatibility. This macro is used (at least) for | ||
QtGui and QtDesigner plugins added by qtimageformats, qtsvg, qtvirtualkeyboard and qtwayland. | ||
During upgrade from <Qt-5.14 to >=Qt-5.14, as a consequence of slot upgrade rebuilds, some | ||
reverse dependencies are slated for rebuild before these Qt consumers have been rebuilt and their | ||
cmake files regenerated, leading to cmake errors like: | ||
|
||
https://bugs.gentoo.org/703306 | ||
https://bugs.gentoo.org/705198 | ||
|
||
From mkspecs/features/create_cmake.prf: | ||
|
||
# CMAKE_DEBUG_AND_RELEASE is used to tell the _populate_$${CMAKE_MODULE_NAME}_target_properties | ||
# functions whether a Configuration specific generator expression needs to be added to the values | ||
# of INTERFACE_LINK_LIBRARIES and INTERFACE_LINK_OPTIONS. For debug_and_release builds, we do need | ||
# configuration specific values. For singular builds (only release or only debug), we want the | ||
# values to be applied regardless of the configuration. | ||
# This would allow on Linux and macOS (and with a recent enough version of CMake on Windows) to | ||
# build a Debug configuration of an application, even if Qt was built in a Release configuration. | ||
|
||
qt5-build.eclass is configuring either as 'release' or as 'debug', so we make IsDebugAndRelease | ||
optional and default to FALSE. | ||
|
||
--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2020-01-23 13:37:32.000000000 +0100 | ||
+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2020-02-09 15:15:21.156219814 +0100 | ||
@@ -538,8 +538,14 @@ | ||
|
||
file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") | ||
|
||
- macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION | ||
- IsDebugAndRelease) | ||
+ macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) | ||
+ set(IsDebugAndRelease FALSE) | ||
+ set (list_var ${ARGN}) | ||
+ list(LENGTH list_var num_extra_arg) | ||
+ if (${num_extra_arg} GREATER 0) | ||
+ list(GET list_var 0 IsDebugAndRelease) | ||
+ endif() | ||
+ | ||
set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) | ||
|
||
!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# Copyright 1999-2020 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
QT5_MODULE="qtbase" | ||
inherit qt5-build | ||
|
||
DESCRIPTION="Cross-platform application development framework" | ||
|
||
if [[ ${QT5_BUILD_TYPE} == release ]]; then | ||
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" | ||
fi | ||
|
||
IUSE="icu systemd" | ||
|
||
DEPEND=" | ||
dev-libs/double-conversion:= | ||
dev-libs/glib:2 | ||
dev-libs/libpcre2[pcre16,unicode] | ||
sys-libs/zlib:= | ||
icu? ( dev-libs/icu:= ) | ||
!icu? ( virtual/libiconv ) | ||
systemd? ( sys-apps/systemd:= ) | ||
" | ||
RDEPEND="${DEPEND} | ||
!<dev-qt/qtcore-4.8.7-r4:4 | ||
" | ||
|
||
QT5_TARGET_SUBDIRS=( | ||
src/tools/bootstrap | ||
src/tools/moc | ||
src/tools/rcc | ||
src/corelib | ||
src/tools/qlalr | ||
doc | ||
) | ||
|
||
QT5_GENTOO_PRIVATE_CONFIG=( | ||
!:network | ||
!:sql | ||
!:testlib | ||
!:xml | ||
) | ||
|
||
PATCHES=( "${FILESDIR}/${P}-cmake-macro-backward-compat.patch" ) # bug 703306 | ||
|
||
src_prepare() { | ||
# don't add -O3 to CXXFLAGS, bug 549140 | ||
sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/corelib/corelib.pro || die | ||
|
||
# fix missing qt_version_tag symbol w/ LTO, bug 674382 | ||
sed -i -e 's/^gcc:ltcg/gcc/' src/corelib/global/global.pri || die | ||
|
||
qt5-build_src_prepare | ||
} | ||
|
||
src_configure() { | ||
local myconf=( | ||
-no-feature-statx # bug 672856 | ||
$(qt_use icu) | ||
$(qt_use !icu iconv) | ||
$(qt_use systemd journald) | ||
) | ||
qt5-build_src_configure | ||
} | ||
|
||
src_install() { | ||
qt5-build_src_install | ||
|
||
local flags=( | ||
DBUS FREETYPE IMAGEFORMAT_JPEG IMAGEFORMAT_PNG | ||
OPENGL OPENSSL SSL WIDGETS | ||
) | ||
|
||
for flag in ${flags[@]}; do | ||
cat >> "${D}"/${QT5_HEADERDIR}/QtCore/qconfig.h <<- _EOF_ || die | ||
#if defined(QT_NO_${flag}) && defined(QT_${flag}) | ||
# undef QT_NO_${flag} | ||
#elif !defined(QT_NO_${flag}) && !defined(QT_${flag}) | ||
# define QT_NO_${flag} | ||
#endif | ||
_EOF_ | ||
done | ||
} |