File macros.mingw64-kf5 of Package mingw64-kf5-filesystem
%_mingw64_kf5_prefix %{_mingw64_prefix}
%_mingw64_kf5_bindir %{_mingw64_kf5_prefix}/bin
%_mingw64_kf5_sharedir %{_mingw64_datadir}
%_mingw64_kf5_datadir %{_mingw64_kf5_sharedir}/kf5
%_mingw64_kf5_includedir %{_mingw64_includedir}/KF5
%_mingw64_kf5_libdir %{_mingw64_kf5_prefix}/lib
%_mingw64_kf5_libexecdir %{_mingw64_kf5_bindir}
%_mingw64_kf5_mandir %{_mingw64_kf5_sharedir}/man
%_mingw64_kf5_sbindir %{_mingw64_sbindir}
%_mingw64_kf5_notifydir %{_mingw64_kf5_sharedir}/knotifications5
%_mingw64_kf5_localedir %{_mingw64_kf5_sharedir}/locale
%_mingw64_kf5_sysconfdir %{_mingw64_sysconfdir}
%_mingw64_kf5_plugindir %{_mingw64_kf5_libdir}/qt5/plugins
%_mingw64_kf5_plasmadir %{_mingw64_kf5_sharedir}/plasma
%_mingw64_kf5_importdir %{_mingw64_kf5_libdir}/qt5/imports
%_mingw64_kf5_qmldir %{_mingw64_kf5_libdir}/qt5/qml
%_mingw64_kf5_cmakedir %{_mingw64_kf5_libdir}/cmake
%_mingw64_kf5_mkspecsdir %{_mingw64_kf5_sharedir}/qt5/mkspecs/modules
%_mingw64_kf5_dbusinterfacesdir %{_mingw64_kf5_sharedir}/dbus-1/interfaces
%_mingw64_kf5_dbuspolicydir %{_mingw64_kf5_sharedir}/dbus-1/system.d
%_mingw64_kf5_dbusservicesdir %{_mingw64_kf5_sharedir}/dbus-1/services
%_mingw64_kf5_configdir %{_mingw64_kf5_sysconfdir}/xdg
%_mingw64_kf5_appstreamdir %{_mingw64_kf5_sharedir}/metainfo
%_mingw64_kf5_debugdir %{_mingw64_kf5_sharedir}/qlogging-categories5
%_mingw64_kf5_applicationsdir %{_mingw64_kf5_sharedir}/applications
%_mingw64_kf5_iconsdir %{_mingw64_kf5_sharedir}/icons
%_mingw64_kf5_wallpapersdir %{_mingw64_kf5_sharedir}/wallpapers
%_mingw64_kf5_appsdir %{_mingw64_kf5_sharedir}
%_mingw64_kf5_configkcfgdir %{_mingw64_kf5_sharedir}/config.kcfg
%_mingw64_kf5_servicesdir %{_mingw64_kf5_sharedir}/kservices5
%_mingw64_kf5_servicetypesdir %{_mingw64_kf5_sharedir}/kservicetypes5
%_mingw64_kf5_htmldir %{_mingw64_kf5_sharedir}/doc/HTML
%_mingw64_kf5_kxmlguidir %{_mingw64_kf5_sharedir}/kxmlgui5
%_mingw64_kf5_py2kf5dir %{python2_sitelib}/PyKF5
%_mingw64_kf5_py3kf5dir %{python3_sitelib}/PyKF5
%_mingw64_kf5_pysipdir %{_mingw64_kf5_sharedir}/sip/PyKF5
%_mingw64_kf5_knsrcfilesdir %{_mingw64_kf5_sharedir}/knsrcfiles
# FIXME move to generic _mingw64_cross_bindir to mingw64-filesystem
%_mingw64_kf5_cross_bindir %{_prefix}/%{_mingw64_target}/bin
%_mingw64_kf5_version 5.103.0
%_plasma5_branding_version 5.0.0
%_mingw64_kf5_build_type RelWithDebInfo
%_mingw64_kf5_build_requires \
BuildRequires: cmake >= 2.8.12 \
BuildRequires: mingw64-cross-gcc-c++ \
BuildRequires: mingw64-cross-pkg-config \
BuildRequires: mingw64-cross-libqt5-qmake \
BuildRequires: mingw64-cross-libqt5-qttools >= 5.2.0 \
BuildRequires: mingw64-extra-cmake-modules >= 1.6.0 \
BuildRequires: mingw64-kf5-filesystem \
BuildRequires: mingw64-libqt5-qtbase-devel >= 5.2.0 \
BuildRequires: mingw64-libqt5-qttools >= 5.2.0
%_mingw64_kf5_makeinstall make VERBOSE=1 DESTDIR=%{?buildroot:%{buildroot}} install
# KF5 specific compile flags
%_mingw64_kf5_cflags -DNDEBUG -fno-stack-protector -Wno-expansion-to-defined
%_mingw64_kf5_cxxflags -DNDEBUG -fno-stack-protector -Wno-expansion-to-defined
%_mingw64_kf5_ldflags -Wl,--as-needed -Wl,--no-undefined -Wl,-Bsymbolic-functions
#
# set env variables CFLAGS, CXXFLAGS or LDFLAGS to override default flags
# by default %_mingw64_xxflags %_mingw64_kf5_xxflags are used
# note: _mingw64_env uses MINGWxx_ flags and exports regular compiler flags
#
# usage: _mingw64_cmake_kf5 -d <builddir> -- <cmake-options>
# note: on return current dir is <builddir>
%_mingw64_cmake_kf5(d:) \
MINGW64_CFLAGS="${CFLAGS:-%_mingw64_cflags %_mingw64_kf5_cflags}" \
MINGW64_CXXFLAGS="${CXXFLAGS:-%_mingw64_cflags %_mingw64_kf5_cxxflags}" \
MINGW64_LDFLAGS="${LDFLAGS:-%_mingw64_ldflags %_mingw64_kf5_ldflags}" \
%{_mingw64_env} ; \
bdir=. \
%{-d:dir=%{-d*} \
mkdir $dir \
cd $dir \
bdir=.. } \
cmake \\\
-DCMAKE_BUILD_TYPE="RelWithDebInfo" \\\
-DBIN_INSTALL_DIR=%{_mingw64_bindir} \\\
-DBUILD_SHARED_LIBS:BOOL=ON \\\
-DCMAKE_C_COMPILER="%{_bindir}/%{_mingw64_cc}" \\\
-DCMAKE_CXX_COMPILER="%{_bindir}/%{_mingw64_cxx}" \\\
-DCMAKE_RC_COMPILER="%{_bindir}/%{_mingw64_windres}" \\\
-DCMAKE_BUILD_TYPE=%{_mingw64_kf5_build_type} \\\
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-Bsymbolic-functions" \\\
-DCMAKE_FIND_ROOT_PATH="%{_mingw64_prefix}" \\\
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \\\
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \\\
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \\\
-DCMAKE_INSTALL_PREFIX=%{_mingw64_kf5_prefix} \\\
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-Bsymbolic-functions" \\\
-DCMAKE_PREFIX_PATH=%{_mingw64_kf5_prefix} \\\
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-Bsymbolic-functions" \\\
-DCMAKE_SYSTEM_NAME="Windows" \\\
-DCMAKE_VERBOSE_MAKEFILE=ON \\\
-DECM_MKSPECS_INSTALL_DIR=%{_mingw64_kf5_mkspecsdir} \\\
-DINCLUDE_INSTALL_DIR:PATH=%{_mingw64_includedir} \\\
-DLIB_INSTALL_DIR:PATH=%{_mingw64_libdir} \\\
-DKDE_INSTALL_LIBDIR=%{_mingw64_kf5_libdir} \\\
-DKDE_INSTALL_PLUGINDIR=%{_mingw64_kf5_plugindir} \\\
-DKDE_INSTALL_QTPLUGINDIR=%{_mingw64_kf5_plugindir} \\\
-DKDE_INSTALL_METAINFODIR=%{_mingw64_kf5_appstreamdir} \\\
-DKDE_INSTALL_QMLDIR=%{_mingw64_kf5_qmldir} \\\
-DKDE_INSTALL_QTQUICKIMPORTSDIR=%{_mingw64_kf5_importdir} \\\
-DKDE_INSTALL_SYSCONFDIR=%{_mingw64_kf5_sysconfdir} \\\
-DKDE_INSTALL_USE_QT_SYS_PATHS=OFF \\\
-DKF_IGNORE_PLATFORM_CHECK=1 \\\
-DSHARE_INSTALL_DIR:PATH=%{_mingw64_datadir} \\\
-DSHARE_INSTALL_PREFIX:PATH=%{_mingw64_datadir} \\\
-DSYSCONF_INSTALL_DIR:PATH=%{_mingw64_sysconfdir} \\\
-DKCONFIG_COMPILER_EXECUTABLE=/usr/bin/%{_mingw64_target}-kconfig_compiler5 \\\
-DKCONF_UPDATE_EXECUTABLE=/usr/bin/%{_mingw64_target}-kconf_update \\\
-DMEINPROC5_EXECUTABLE=/usr/bin/%{_mingw64_target}-meinproc5 \\\
-DCHECKXML5_EXECUTABLE=/usr/bin/%{_mingw64_target}-checkXML5 \\\
-DDOCBOOKL10NHELPER_EXECUTABLE=/usr/bin/%{_mingw64_target}-docbookl10nhelper5 \\\
-DDESKTOPTOJSON_EXECUTABLE=/usr/bin/%{_mingw64_target}-desktoptojson \\\
-DPARSETRIGRAMS_EXECUTABLE=/usr/bin/%{_mingw64_target}-parsetrigrams \\\
-DKATEHIGHLIGHTINGINDEXER_EXECUTABLE=/usr/bin/%{_mingw64_target}-katehighlightingindexer \\\
-DKGENDESIGNERPLUGIN_EXECUTABLE=/usr/bin/%{_mingw64_target}-kgendesignerplugin \\\
-DICEMAKER_EXECUTABLE=/usr/bin/%{_mingw64_target}-icemaker5 \\\
-Dlconvert_executable=/usr/%{_mingw64_target}/bin/qt5/lconvert \\\
-DPng2Ico_EXECUTABLE=/usr/bin/%{_mingw64_target}-png2ico \\\
-DBUILD_TESTING=OFF \\\
$bdir %* \
%{nil}
%_mingw64_create_subdir_filelist(d:f:o:v:) \
%{!-d:echo -e "\\nERROR: missing parameter for macro _mingw64_create_subdir_filelist\\n" ; exit 1 ; } \
filelist=%{-f:%{-f*}}%{!-f:%{-d*}} \
filelist=${filelist#*/} \
if test -e doc/%{-d*}; then \
pushd doc/%{-d*} \
make DESTDIR=$RPM_BUILD_ROOT.%{-d*} install \
popd \
fi \
pushd %{-d*} \
make DESTDIR=$RPM_BUILD_ROOT.%{-d*} install \
mkdir -p $RPM_BUILD_DIR/%buildsubdir/filelists \
{ \
echo "%%defattr(-,root,root,755)" \
if test -n "%{-v*}"; then \
devel_filelist=%{-v*} \
devel_filelist=${devel_filelist#*/} \
{ \
echo "%%defattr(-,root,root,755)" \
find $RPM_BUILD_ROOT.%{-d*} \\( \\\
-path "$RPM_BUILD_ROOT.%{-d*}%{_mingw64_prefix}/include/KF5/*" \\( -type f -o -type l \\) -o \\\
-path "$RPM_BUILD_ROOT.%{-d*}%{_mingw64_datadir}/kde5/apps/cmake/modules/*" -type f -o \\\
-path "$RPM_BUILD_ROOT.%{-d*}%{_mingw64_prefix}/lib*/cmake/*" -type f -o \\\
-name '*.so' -type l \\) -printf "/%%P\\n" \
} | tee -a $RPM_BUILD_DIR/%buildsubdir/filelists/$devel_filelist | \
sed -e '/^%%defattr/d' -e 's/^/%%exclude /' \
fi \
find $RPM_BUILD_ROOT.%{-d*} \\\
\\( -path "$RPM_BUILD_ROOT.%{-d*}%{_mingw64_datadir}/doc/HTML/en/%{-d*}" -o \\\
-path "$RPM_BUILD_ROOT.%{-d*}%{_mingw64_datadir}/doc/HTML/en/%{-d*}/*" -o \\\
-type d -printf "%%%%dir /%%P\\n" -o \\\
\\( -type f -o -type l \\) -printf "/%%P\\n" \
} | \
sed -r "s/man\\/man([1-9])\\/(.*)\\.[1-9]$/man\\/man\\1\\/\\2\\.\\1.gz/;s,^%{_mingw64_datadir}/doc/HTML/(.[^/])/,%%doc %%lang(\\1) &," >> $RPM_BUILD_DIR/%buildsubdir/filelists/$filelist \
rm -rf $RPM_BUILD_ROOT.%{-d*} \
popd \
%{nil}
%create_exclude_filelist \
pushd $RPM_BUILD_DIR/%buildsubdir/ \
for f in filelists/*; do \
case $f in \
filelists/exclude) ;; \
*) sed -e '/^%%defattr/d' -e 's/^%%exclude //' -e 's/^/%%exclude /' "$f";; \
esac \
done >filelists/exclude \
popd \
%{nil}
%__spec_clean_post rm -rf filelists
%_mingw64_kf5_post_install \
if test -e /usr/lib/rpm/suse_update_desktop_file.sh; then \
find $RPM_BUILD_ROOT/%{_mingw64_datadir} \\\
-name '*.desktop' -o -name '*.directory' 2> /dev/null | while read file; do \
test -r "$file" || continue \
grep -q "^X-SuSE-translate=" "$file" && continue \
case "$file" in \
*/.hidden/*) \
%suse_update_desktop_file -n "$file" \
;; \
*) \
%suse_update_desktop_file "$file" \
;; \
esac \
done \
fi \
%{nil}
%make_jobs \
%{__make} %{?_smp_mflags} VERBOSE=1
#
# %_mingw64_kf5_find_lang [<name>] [<mo-name>]
#
%_mingw64_kf5_find_lang() \
if test %# -ge 1; then NAME=%1; else NAME=%{name}; fi \
if test %# -ge 2; then MO_NAME=%2; else MO_NAME=$NAME.lang; fi \
if ! test -s $MO_NAME ; then \
echo "%defattr (644, root, root, 755)" > $MO_NAME \
fi \
MO_NAME_NEW=$MO_NAME.tmp.$$ \
rm -f $MO_NAME_NEW \
\
# remove languages we do not yet support - but give out statistics \
if [ -d "%{buildroot}%{_mingw64_kf5_localedir}" ] ; then \
find "%{buildroot}%{_mingw64_kf5_localedir}" -maxdepth 1 -type d | sed 's:'"%{buildroot}%{_mingw64_kf5_localedir}"'::; /^$/d' | while read dir; do \
if ! rpm -ql mingw64-filesystem | grep -E -q "%{_mingw64_datadir}/locale$dir"$; then \
find %{buildroot}%{_mingw64_kf5_localedir}/$dir -name *.mo | sed 's:%{buildroot}::' | while read file; do \
echo -n "removing translation $file: " \
msgunfmt "%{buildroot}/$file" | msgfmt --statistics -o /dev/null - \
done \
rm -rf %{buildroot}%{_mingw64_kf5_localedir}/$dir \
fi \
done \
echo "%dir %{_mingw64_kf5_localedir}" >> $MO_NAME \
fi \
\
find "%{buildroot}" -type f -o -type l|sed ' \
s:'"%{buildroot}"':: \
s:\\(.*/locale/\\)\\([^/_]\\+\\)\\([^/]*\\)\\(.*\\.mo$\\):%%dir %%lang(\\2) \\1\\2\\3\\n%%dir %%lang(\\2) \\1\\2\\3/LC_MESSAGES\\n%%lang(\\2) \\1\\2\\3\\4: \
s:\\(.*/locale/\\)\\([^/_]\\+\\)\\(/[^/]*\\)\\(/[^/]*\\)\\(/[^/]*\\.js$\\):%%dir %%lang(\\2) \\1\\2\\n%%dir %%lang(\\2) \\1\\2\\3\\n%%dir %%lang(\\2) \\1\\2\\3\\4\\n%%lang(\\2) \\1\\2\\3\\4\\5: \
s:^\\([^%].*\\):: \
/^$/d' \ > $MO_NAME_NEW \
if ! grep -q / $MO_NAME_NEW; then \
echo "No translations found for ${NAME} in %{buildroot}" \
rm -f $MO_NAME_NEW \
exit 1 \
fi \
sort -u $MO_NAME_NEW >> $MO_NAME \
rm -f $MO_NAME_NEW
#
# %_mingw64_kf5_find_htmldocs [<name>]
#
%_mingw64_kf5_find_htmldocs() \
# rpm 4.14's find_lang.sh added support for those docs, but we do it ourselves \
# to stay backwards-compatible and keep the en docs in the main package \
if test %# -ge 1; then NAME=%1; else NAME=%{name}; fi \
sed -i'' '\\#%{_mingw64_kf5_htmldir}#d' $NAME.lang \
CURDIR=`pwd` \
pushd %{buildroot}%{_mingw64_kf5_htmldir} \
for i in *; do \
if ! [ -d "%{_mingw64_kf5_localedir}/${i}" ]; then \
echo "Removing unsupported translation %{_mingw64_kf5_htmldir}/${i}" \
rm -rf "$i" \
elif [ "$i" != "en" ]; then \
echo "%%doc %%lang($i) %{_mingw64_kf5_htmldir}/${i}" >> $CURDIR/$NAME.lang \
fi \
done \
popd
%_mingw64_kf5_python_bindings_package \
%package -n mingw64-python2-%{name} \
Summary: Python bindings for %{name} \
Group: Development/Libraries/KDE \
Requires: %{name} = %{version} \
%requires_python_sip_api \
%description -n mingw64-python2-%{name} \
This package contains Python 2 bindings for %{name}. \
\
%package -n mingw64-python3-%{name} \
Summary: Python 3 bindings for %{name} \
Group: Development/Libraries/KDE \
Requires: %{name} = %{version} \
%requires_python3_sip_api \
%description -n mingw64-python3-%{name} \
This package contains Python 3 bindings for %{name}. \
\
%package -n mingw64-python-%{name}-devel \
Provides: %{python_module %{name}-devel} = %{version} \
Requires: %{python_module %{name}-devel} = %{version} \
Summary: Development files for %{name} Python bindings \
Group: Development/Libraries/KDE \
%description -n mingw64-python-%{name}-devel \
This package contains the SIP files used to generate the Python bindings for %{name}.