File macros.kf6 of Package kf6-filesystem
#
# Macros for KDE Packages using Qt6
#
# SPDX-License-Identifier: MIT
#
#########################################################################
#
# Note: The kf6-extra-cmake-modules package has a dependency on kf6-filesystem,
# you don't need to add kf6-filesystem to your package's 'BuildRequires'
#
#########################################################################
# The following macros are provided:
#
# %%cmake_kf6
# Run CMake with the default parameters for KDE packages
#
# %%kf6_build
# Builds the project with the selected build tool (default: ninja)
#
# %%kf6_install
# Install the project once built
#
# %%kf6_use_make
# Use 'make' instead of 'ninja' for building
#
# Alternatively, you can add the following line in your spec file:
# %%global %%__kf6_build_tool make
#
#########################################################################
#
# Note about the compiler used for Leap 15 builds:
# The compiler version required is the same as the one used for building
# Qt6 packages
#
#########################################################################
# Default paths
%__kf6_sourcedir .
%__kf6_builddir build
# Use the Ninja generator by default
%__kf6_build_tool %__ninja
# Default build type
%__kf6_build_type RelWithDebInfo
# _kf6_variables to use in %%files sections
%_kf6_prefix %{_prefix}
%_kf6_sysconfdir %{_sysconfdir}
%_kf6_libexecdir %{_libexecdir}/kf6
%_kf6_bindir %{_kf6_prefix}/bin
%_kf6_includedir %{_kf6_prefix}/include/KF6
%_kf6_libdir %{_kf6_prefix}/%{_lib}
%_kf6_sbindir %{_prefix}/sbin
%_kf6_sharedir %{_prefix}/share
%_kf6_datadir %{_kf6_sharedir}/kf6
%_kf6_configdir %{_kf6_sysconfdir}/xdg
%_kf6_cmakedir %{_kf6_libdir}/cmake
%_kf6_pkgconfigdir %{_kf6_libdir}/pkgconfig
%_kf6_qchdir %{_kf6_sharedir}/doc/qt6
%_kf6_importdir %{_kf6_libdir}/qt6/imports
%_kf6_mkspecsdir %{_kf6_libdir}/qt6/mkspecs/modules
%_kf6_plugindir %{_kf6_libdir}/qt6/plugins
%_kf6_qmldir %{_kf6_libdir}/qt6/qml
%_kf6_appsdir %{_kf6_sharedir}
%_kf6_applicationsdir %{_kf6_sharedir}/applications
%_kf6_configkcfgdir %{_kf6_sharedir}/config.kcfg
%_kf6_dbusinterfacesdir %{_kf6_sharedir}/dbus-1/interfaces
%_kf6_dbuspolicydir %{_kf6_sharedir}/dbus-1/system.d
%_kf6_htmldir %{_kf6_sharedir}/doc/HTML
%_kf6_iconsdir %{_kf6_sharedir}/icons
%_kf6_notificationsdir %{_kf6_sharedir}/knotifications6
%_kf6_knsrcfilesdir %{_kf6_sharedir}/knsrcfiles
%_kf6_kxmlguidir %{_kf6_sharedir}/kxmlgui5
%_kf6_localedir %{_kf6_sharedir}/locale/kf6
%_kf6_mandir %{_kf6_sharedir}/man
%_kf6_appstreamdir %{_kf6_sharedir}/metainfo
%_kf6_plasmadir %{_kf6_sharedir}/plasma
%_kf6_debugdir %{_kf6_sharedir}/qlogging-categories6
%_kf6_wallpapersdir %{_kf6_sharedir}/wallpapers
# Macro to use 'make' instead of 'ninja'
%kf6_use_make %global __kf6_build_tool %__make
# Run CMake
%cmake_kf6 \
cmake -DCMAKE_BUILD_TYPE:STRING=%{__kf6_build_type} \\\
-DCMAKE_INSTALL_PREFIX:STRING=%{_kf6_prefix} \\\
-S %__kf6_sourcedir \\\
-B %__kf6_builddir \\\
%if "%__kf6_build_tool" == "%__ninja" \
-GNinja \\\
%else \
-G"Unix Makefiles" \\\
%endif \
%if 0%{?suse_version} == 1500 \
-DCMAKE_C_COMPILER:STRING=gcc-13 \\\
-DCMAKE_CXX_COMPILER:STRING=g++-13 \\\
-DCMAKE_CXX_LINK_PIE_SUPPORTED:BOOL=TRUE \\\
%endif \
-DCMAKE_C_FLAGS:STRING="%{optflags}" \\\
-DCMAKE_CXX_FLAGS:STRING="%{optflags}" \\\
-DCMAKE_EXE_LINKER_FLAGS:STRING="-Wl,--as-needed -Wl,--no-undefined" \\\
-DCMAKE_MODULE_LINKER_FLAGS:STRING="-Wl,--as-needed -Wl,--no-undefined" \\\
-DCMAKE_SHARED_LINKER_FLAGS:STRING="-Wl,--as-needed -Wl,--no-undefined" \\\
-DKDE_INSTALL_LIBEXECDIR=%{_libexecdir} \\\
-DBUILD_TESTING:BOOL=FALSE
# Build the package
%kf6_build \
cmake --build %__kf6_builddir %{?_smp_mflags} -v \
%{nil}
# Install package
%kf6_install \
DESTDIR=%{buildroot} cmake --build %__kf6_builddir -v \\\
%if "%__kf6_build_tool" == "%__ninja" \
-t install \
%else \
-t install/fast \
%endif