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}.
openSUSE Build Service is sponsored by