File dueca.spec of Package dueca

# -*-rpm-*-

%define name dueca
%define ver  4.2.5
%define sosuffix 4_2

%define gtkthree_config 1
%define glui_config 1
%define gtkmm_config 1
%define hdf5_config 1
%define udpcom_config 1
%define python3_config 1
%define gtkfour_config 1

%if 0%{?sle_version} && 0%{?sle_version} <= 120300 && 0
%define websock_config 0
%else
%define websock_config 1
%endif

%if 0%{?staticlibs_config}
%if "%{_prefix}" != "/usr"
%define ldconfigfile 1
%endif
%endif

Summary: Middleware for real-time distributed systems
Name: %name
Version: %ver
Release: 1
License: EUPL-1.2
URL: https://github.com/dueca
Group: Development/Libraries/C and C++

Requires: python3
Requires: cvs
Requires: python3-GitPython
Requires: python3-pyparsing
Requires: python3-lxml
Requires: python3-jinja2
Requires: msgpack-devel
BuildRequires: python3-xlwt
BuildRequires: lsb-release
BuildRequires: msgpack-devel
BuildRequires: python3-pip
BuildRequires: python3-jinja2

%if 0%{?is_opensuse} && 0%{?sle_version} >= 150500
BuildRequires: guile-devel
%endif
%if 0%{?is_opensuse} && 0%{?sle_version} < 150500
BuildRequires: libguile1-devel
BuildRequires: guile1
%endif
%if 0%{?fedora_version}
BuildRequires: compat-guile18-devel
%endif

%if 0%{?gtkthree_config}
BuildRequires:  gtkmm3-devel
BuildRequires:  gtk3-devel
%endif

%if 0%{?gtkfour_config}
%define GTKFOUR_CONFIG -DBUILD_GTK4=ON -DBUILD_GTKMM4=ON
BuildRequires:  gtkmm4-devel
BuildRequires:  gtk4-devel
%endif

BuildRequires: fdupes
BuildRequires: fltk-devel
BuildRequires: eigen3-devel
BuildRequires: flex
BuildRequires: bison
BuildRequires: libglade2-devel
BuildRequires: python3-lxml
%if 0%{?suse_version}
BuildRequires: gtkmm2-devel pkg-config
BuildRequires: rsvg-convert
%else
BuildRequires: gtkmm24-devel pkgconfig
BuildRequires: librsvg2-tools
%endif
BuildRequires: gcc-c++
BuildRequires: freeglut-devel
BuildRequires: glfw-devel
BuildRequires: graphviz
%if 0%{?suse_version}
BuildRequires: graphviz-gd
%endif
BuildRequires: doxygen
BuildRequires: cmake
BuildRequires: gtkglext-devel
BuildRequires: python3-pyparsing
BuildRequires: rapidjson-devel
BuildRequires: python3-setuptools
BuildRequires: python3-wheel
BuildRequires: python3-GitPython
BuildRequires: python3-pip
BuildRequires: xmlstarlet

%if 0%{?python3_config}
BuildRequires: python3-devel
BuildRequires: libboost_python3-devel
%define SCRIPT_PYTHON_CONFIG -DSCRIPT_PYTHON=ON
%endif
%if 0%{?python_config}
BuildRequires: python-devel
%define SCRIPT_PYTHON_CONFIG -DSCRIPT_PYTHON=ON
%endif

%if 0%{?sle_version}
BuildRequires:  openSUSE-release
BuildRequires:  libboost_system-devel >= 1.60
BuildRequires:  libboost_thread-devel >= 1.60
BuildRequires:  libboost_filesystem-devel >= 1.60
BuildRequires:  libboost_coroutine-devel >= 1.60
BuildRequires:  libboost_context-devel >= 1.60
BuildRequires:  libboost_regex-devel >= 1.60
%if 0%{?is_opensuse} == 0
BuildRequires:  libboost_headers-devel-impl >= 1.60
%endif
%else
BuildRequires:  boost-devel
%endif
BuildRequires:  pugixml-devel

%if 0%{?glui_config}
BuildRequires: glui-devel
%define GLUI_CONFIG -DBUILD_GLUTGUI=ON
%endif

%if 0%{?gtkmm_config}
%define GTKMM_CONFIG -DBUILD_GTKMM=ON
%endif

%if 0%{?gtkthree_config}
%define GTKTHREE_CONFIG -DBUILD_GTK3=ON -DBUILD_GTKMM3=ON
%endif
%if 0%{?staticlibs_config}
%define STATICLIBS_CONFIG -DDUECA_BUILD_STATIC=ON -DDUECA_BUILD_SHARED=OFF
%else
%define STATICLIBS_CONFIG -DDUECA_BUILD_STATIC=OFF -DDUECA_BUILD_SHARED=ON
%endif

%if 0%{?websock_config}
%define WEBSOCK_CONFIG -DBUILD_WEBSOCK=ON
BuildRequires: openssl-devel
BuildRequires: Simple-Websocket-Server-devel
BuildRequires: Simple-Web-Server-devel
%endif

BuildRequires: date-devel
BuildRequires: toml11-devel

Source0: dueca-%{ver}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-root

%description
DUECA is a middleware library for the implementation of real-time data
flow processes on distributed hardware. It is currently used for the
Man-Machine lab of the Control and Simulation Division, Aerospace
Engineering, Delft Universtiy of Technology, on the SIMONA Research
Simulator, for the displays in the PH-LAB laboratory aircraft and on
a some other set-ups.

%package devel
Summary: Development headers and libraries for DUECA
Group: Development/Libraries/C and C++
Requires: %{name} = %{ver}
Requires: eigen3-devel
Requires: freeglut-devel
Requires: fltk-devel
Requires: libglade2-devel
Requires: gtkglext-devel
%if 0%{?suse_version}
Requires: libtinyxml-devel
%else
Requires: tinyxml-devel
%endif
Requires: doxygen
Requires: make
Requires: gcc-c++
%if 0%{?suse_version}
Requires: libXmu-devel
Requires: libXi-devel
%endif
%if 0%{?suse_version}
Requires: libguile1-devel
Requires: guile1
Requires: udev
%endif
%if 0%{?fedora_version}
Requires: compat-guile18-devel
%endif
%if 0%{?glui_config}
Requires: glui-devel
%endif
%if 0%{?python3_config}
Requires: python3-devel
Requires: libboost_python3-devel
%endif
%if 0%{?python_config}
Requires: python2-devel
%endif
Requires: boost-devel


%description devel
DUECA is a middleware library for the implementation of real-time data
flow processes on distributed hardware. This package contains development
headers, libraries and development scripts

%package dusime
Summary: For simulations in dueca
Group: Development/Libraries/C and C++
Requires: %{name} = %{ver}
%description dusime
DUSIME is an addition to DUECA that provides classes for implementations
of simulation models in a real-time data flow process

%package dusime-devel
Summary: For simulations in dueca
Group: Development/Libraries/C and C++
Requires: %{name}-dusime = %{ver}
Requires: %{name}-ddff-devel
Requires: toml11-devel
%description dusime-devel
DUSIME is an addition to DUECA that provides classes for implementations
of simulation models in a real-time data flow process.
This package contains development headers, libraries and development scripts

%package -n libdueca-ddff%{sosuffix}
Summary: File logging facilities
Group: Development/Libraries/C and C++
Requires: %{name} = %{ver}
%description -n libdueca-ddff%{sosuffix}
DDFF is a custom file format for logging and replay in DUECA

%package ddff-devel
Summary: File logging facilities
Group: Development/Libraries/C and C++
Requires: libdueca-ddff%{sosuffix} = %{ver}
Requires: date-devel
%description ddff-devel
DDFF is a custom file format for logging and replay in DUECA
This package contains development headers, libraries and development scripts

%package -n libdueca-inter%{sosuffix}
Summary: Connect DUECA instances
Group: Development/Libraries/C and C++
Requires: %{name}
%description -n libdueca-inter%{sosuffix}
INTER is an addition to DUECA that provides classes for implementations
of simulation models in a real-time data flow process

%package inter-devel
Summary: For simulations in dueca
Group: Development/Libraries/C and C++
Requires: libdueca-inter%{sosuffix} = %{ver}
%description inter-devel
INTER is an addition to DUECA that can connect several DUECA processes.
This package contains development headers, libraries and development scripts

%if 0%{?hdf5_config}
%define HDF5_CONFIG -DBUILD_HDF5=ON

%package -n libdueca-hdf%{sosuffix}
Summary: Connect DUECA instances
Group: Development/Libraries/C and C++
BuildRequires: hdf5-devel
BuildRequires: zlib-devel
Requires: python3-h5py

%description -n libdueca-hdf%{sosuffix}
HDF is an addition to DUECA that provides hdf logging

%package hdf-devel
Summary: For simulations in dueca
Group: Development/Libraries/C and C++
Requires: libdueca-hdf%{sosuffix} = %{ver}
Requires: hdf5-devel
Requires: %{name}-devel

%description hdf-devel
HDF is an addition to DUECA that provides hdf logging
This package contains development headers, libraries, in case you
want to tweak and replace the default logging module

%endif

%if 0%{?udpcom_config}
%define UDPCOM_CONFIG -DBUILD_UDP=ON


%package -n libdueca-udp%{sosuffix}
Summary: Connect DUECA communication using new udp library
Group: Development/Libraries/C and C++

%description -n libdueca-udp%{sosuffix}
New udp-based connection library, offers means to communication using
udp point-to-point, multicast, broadcast and communication over websocket
links.

%package udp-devel
Summary: Network communication for simulations in DUECA
Group: Development/Libraries/C and C++
Requires: libdueca-udp%{sosuffix} = %{ver}
Requires: %{name}-devel

%description udp-devel
This library offers an efficient UDP cycle based communications mechanism
for DUECA, using either multicast, broadcast or point-to-point links, with
the set-up of the communication based on a server-client TCP connection.

%endif


%if 0%{?websock_config}
%package -n libdueca-websock%{sosuffix}
Summary: Connect to DUECA using websockets
Group: Development/Libraries/C and C++

%description -n libdueca-websock%{sosuffix}
Websocket communication to channels. Offers websocket endpoints and
communication through JSON objects.

%package websock-devel
Summary: For simulations in dueca
Group: Development/Libraries/C and C++
Requires: libdueca-websock%{sosuffix} = %{ver}
Requires: %{name}-devel

%description websock-devel
This library offers websocket connection to dueca channels

%endif

%package doc
Summary: API documentation for DUECA/DUSIME
Group: Development/Libraries/C and C++
%description doc
Documentation for users of the DUSIME and DUECA API

%prep
%setup -q -n dueca-%{ver}

%build

%cmake \
%if 0%{?suse_version}
       '-DCMAKE_EXE_LINKER_FLAGS=-Wl,-z,relro -Wl,--no-as-needed' \
       '-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-z,relro' \
       '-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-z,relro' \
%endif
       -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \
       -DALSO_INIT_GLUT=ON \
       %{?STATICLIBS_CONFIG} \
       -DDUECA_DOC_PATH:PATH=%{_docdir} \
       %{?GLUI_CONFIG} \
       -DBUILD_GTK2=ON \
       %{?GTKMM_CONFIG} \
       %{?GTKTHREE_CONFIG} \
       %{?GTKFOUR_CONFIG} \
       %{?GTKMMFOUR_CONFIG} \
       %{?HDF5_CONFIG} \
       %{?UDPCOM_CONFIG} \
       %{?WEBSOCK_CONFIG} \
       %{?SCRIPT_PYTHON_CONFIG} \
       -DTRY_INSTALL_PYTHON_BUILD=ON \
       -DBUILD_X11GL=ON \
       -DBUILD_DDFF=ON

if [ -d "%{?__cmake_builddir}" ]; then
    %cmake_build
    cd %{__cmake_builddir}
elif [ -d build ]; then
    cd build
    make
else
    make
fi
make doc

%install

if [ -d "%{?__cmake_builddir}" ]; then
    cd %{__cmake_builddir}
elif [ -d build ]; then
    cd build
fi
%make_install

%if 0%{?suse_version}
%fdupes -s %{buildroot}%{_docdir}
%endif

%preun doc
if [ $1 == 0 ]; then
    # remove the symbolic link to the doc directory
    rm -f %{_docdir}/dueca-doc
fi

%post doc

# create a symbolic link to the doc directory
rm -f %{_docdir}/dueca-doc
ln -sf %{_docdir}/dueca-doc-%{ver} %{_docdir}/dueca-doc

%if 0%{?staticlibs_config} == 0
%post
/sbin/ldconfig
# add a group rtdueca if it does not exist, for permission cpulatency
getent group rtdueca || groupadd rtdueca

%postun
/sbin/ldconfig

%post dusime
/sbin/ldconfig

%postun dusime
/sbin/ldconfig

%post -n libdueca-ddff%{sosuffix}
/sbin/ldconfig

%postun -n libdueca-ddff%{sosuffix}
/sbin/ldconfig

%post -n libdueca-inter%{sosuffix}
/sbin/ldconfig

%postun -n libdueca-inter%{sosuffix}
/sbin/ldconfig

%if       0%{?hdf5_config}
%post -n libdueca-hdf%{sosuffix}
/sbin/ldconfig

%postun -n libdueca-hdf%{sosuffix}
/sbin/ldconfig
%endif

%if       0%{?udpcom_config}
%post -n libdueca-udp%{sosuffix}
/sbin/ldconfig

%postun -n libdueca-udp%{sosuffix}
/sbin/ldconfig

%endif

%if       0%{?websock_config}
%post -n libdueca-websock%{sosuffix}
/sbin/ldconfig

%postun -n libdueca-websock%{sosuffix}
/sbin/ldconfig

%endif

%endif


%files
%defattr(-, root, root)
%doc README.md ChangeLog.md AUTHORS COPYING

# configuration files
%dir %{_sysconfdir}/dueca
%config(noreplace) %{_sysconfdir}/dueca/profile
%config(noreplace) %{_sysconfdir}/udev/rules.d/90-rtdueca-cpulatency.rules

# for some reason, sle 15.1+ complains about /etc/udev directory not owned
%if 0%{?sle_version} >= 150100 && 0%{?is_opensuse}
%dir %{_sysconfdir}/udev
%dir %{_sysconfdir}/udev/rules.d
%endif

# dynamic libraries
%if 0%{?staticlibs_config} == 0
%{_libdir}/libdueca.so.*
%{_libdir}/libdueca-fltk*.so.*
%{_libdir}/libdueca-glut.so.*
%{_libdir}/libdueca-gtk2.so.*
%if 0%{?gtkmm_config}
%{_libdir}/libdueca-gtkmm.so.*
%endif
%if 0%{?gtkthree_config}
%{_libdir}/libdueca-extra-gtk3.so.*
%{_libdir}/libdueca-gtk3.so.*
%{_libdir}/libdueca-gtkmm3.so.*
%endif
%if 0%{?gtkfour_config}
%{_libdir}/libdueca-extra-gtk4.so.*
%{_libdir}/libdueca-gtk4.so.*
%{_libdir}/libdueca-gtkmm4.so.*
%endif
%{_libdir}/libdueca-ip*.so.*
%{_libdir}/libdueca-shm*.so.*
%{_libdir}/libdueca-extra.so.*
%{_libdir}/libdueca-extra-glut.so.*
%{_libdir}/libdueca-extra-gtk2.so.*
%{_libdir}/libdueca-extra-glfw.so.*

%if 0%{?gtkmm_config}
%{_libdir}/libdueca-extra-gtkmm.so.*
%endif
%{_libdir}/libdueca-extra-X11.so.*
%if 0%{?glui_config}
%{_libdir}/libdueca-glut-gui*.so.*
%{_libdir}/libdueca-extra-glut-gui*.so.*
%endif
%endif

# run scripts
%{_bindir}/moveandnumber
%{_bindir}/clean-dueca-rundir
%{_bindir}/dueca-archivelogfiles
%{_bindir}/rrundueca
%{_bindir}/rrunduecaX
%{_bindir}/rrunduecaXmwm
%{_bindir}/rrunduecaXxf
%{_bindir}/rrunduecaXfvwm

# data files
%{_prefix}/share/dueca

# ldconfig file
%if 0%{?ldconfigfile}
%config /etc/ld.so.conf.d/dueca.conf
%endif

%if 0%{?staticlibs_config}
%define so_or_a a
%else
%define so_or_a so
%endif
%define startsoa a

%files devel
%defattr(-, root, root)
# header files
%dir %{_includedir}/dueca
%{_includedir}/dueca/dueca
%{_includedir}/dueca/extra
%{_includedir}/dueca/*.h

# pkgconfig
%{_libdir}/pkgconfig/dueca-extra*pc
%{_libdir}/pkgconfig/dueca-fltk*.pc
%{_libdir}/pkgconfig/dueca-glut.pc
%{_libdir}/pkgconfig/dueca-glut-??.pc
%{_libdir}/pkgconfig/dueca-gtk2*.pc
%{_libdir}/pkgconfig/dueca-ip*.pc
%{_libdir}/pkgconfig/dueca.pc
%{_libdir}/pkgconfig/dueca-start*.pc
%{_libdir}/pkgconfig/dueca-shm*.pc

# static or dynamic libraries
%{_libdir}/libdueca.%{so_or_a}
%{_libdir}/libdueca-start-??.%{startsoa}
%{_libdir}/libdueca-fltk.%{so_or_a}
%{_libdir}/libdueca-fltk-??.%{startsoa}
%{_libdir}/libdueca-glut.%{so_or_a}
%{_libdir}/libdueca-glut-??.%{startsoa}
%{_libdir}/libdueca-gtk2.%{so_or_a}
%{_libdir}/libdueca-gtk2-??.%{startsoa}
%if 0%{?gtkmm_config}
%{_libdir}/pkgconfig/dueca-gtkmm.pc
%{_libdir}/libdueca-gtkmm.%{so_or_a}
%endif
%if 0%{?gtkthree_config}
%{_libdir}/pkgconfig/dueca-gtk3*.pc
%{_libdir}/pkgconfig/dueca-gtkmm3.pc
%{_libdir}/libdueca-extra-gtk3.%{so_or_a}
%{_libdir}/libdueca-gtk3.%{so_or_a}
%{_libdir}/libdueca-gtk3-??.%{startsoa}
%{_libdir}/libdueca-gtkmm3.%{so_or_a}
%endif
%%if 0%{?gtkfour_config}
%{_libdir}/pkgconfig/dueca-gtk4*.pc
%{_libdir}/pkgconfig/dueca-gtkmm4.pc
%{_libdir}/libdueca-extra-gtk4.%{so_or_a}
%{_libdir}/libdueca-gtk4.%{so_or_a}
%{_libdir}/libdueca-gtk4-??.%{startsoa}
%{_libdir}/libdueca-gtkmm4.%{so_or_a}
%endif
%{_libdir}/libdueca-ip.%{so_or_a}
%{_libdir}/libdueca-ip-??.%{startsoa}
%{_libdir}/libdueca-shm.%{so_or_a}
%{_libdir}/libdueca-shm-??.%{startsoa}
%{_libdir}/libdueca-extra.%{so_or_a}
%{_libdir}/libdueca-extra-??.%{startsoa}
%{_libdir}/libdueca-extra-fltk.%{startsoa}
%{_libdir}/libdueca-extra-glut.%{so_or_a}
%{_libdir}/libdueca-extra-glut-??.%{startsoa}
%{_libdir}/libdueca-extra-gtk2.%{so_or_a}
%{_libdir}/libdueca-extra-gtk2-??.%{startsoa}
%{_libdir}/libdueca-extra-glfw.%{so_or_a}
%if 0%{?gtkmm_config}
%{_libdir}/libdueca-extra-gtkmm.%{so_or_a}
%endif
%{_libdir}/libdueca-extra-X11.%{so_or_a}
%if 0%{?glui_config}
%{_libdir}/pkgconfig/dueca-glut-gui*.pc
%{_libdir}/libdueca-glut-gui.%{so_or_a}
%{_libdir}/libdueca-glut-gui-??.%{startsoa}
%{_libdir}/libdueca-extra-glut-gui.%{so_or_a}
%{_libdir}/libdueca-extra-glut-gui-??.%{startsoa}
%endif

# scripts relevant for development
%{_bindir}/dueca-codegen
%{_bindir}/dueca-config
%{_bindir}/dueca-filtmods
%{_bindir}/dueca-gencommh
%{_bindir}/dueca-listdco
%{_bindir}/dueca-project
%{_bindir}/dueca-copy-project
%{_bindir}/dueca-scriptcommands
%{_bindir}/dueca-tagfiles
%{_bindir}/dueca-rtwparser
%{_bindir}/makemycvsdir
%{_bindir}/new-module
%{_bindir}/new-dco
%{_bindir}/dueca-channeldot
%{_bindir}/dueca-gproject
%{_bindir}/dueca-cvs-to-git
%{_bindir}/dueca-scheme-to-python
%{_bindir}/dueca-startlink

# python package
%{python3_sitelib}/duecautils*
%files -n libdueca-inter%{sosuffix}
%defattr(-, root, root)
%if 0%{?staticlibs_config} == 0
%{_libdir}/libdueca-inter.so.*
%endif

%if 0%{?hdf5_config}
%files -n libdueca-hdf%{sosuffix}
%defattr(-, root, root)
%if 0%{?staticlibs_config} == 0
%{_libdir}/libdueca-hdf.so.*
%endif
%endif

%if 0%{?udpcom_config}

%files -n libdueca-udp%{sosuffix}
%defattr(-, root, root)
%if 0%{?staticlibs_config} == 0
%{_libdir}/libdueca-udp.so.*
%if 0%{?gtkthree_config}
%{_libdir}/libdueca-udp-gtk3.so.*
%endif
%if 0%{?gtkfour_config}
%{_libdir}/libdueca-udp-gtk4.so.*
%endif
%{_libdir}/libdueca-udp-gtk2.so.*
%endif

%files udp-devel
%defattr(-, root, root)
%{_libdir}/libdueca-udp.%{so_or_a}
%{_libdir}/libdueca-udp-??.%{startsoa}
%{_includedir}/dueca/udp
%{_libdir}/pkgconfig/dueca-udp*.pc
%if 0%{?gtkthree_config}
%{_libdir}/libdueca-udp-gtk3.%{so_or_a}
%{_libdir}/libdueca-udp-gtk3-??.%{startsoa}
%endif
%if 0%{?gtkfour_config}
%{_libdir}/libdueca-udp-gtk4.%{so_or_a}
%{_libdir}/libdueca-udp-gtk4-??.%{startsoa}
%endif
%{_libdir}/libdueca-udp-gtk2.%{so_or_a}
%{_libdir}/libdueca-udp-gtk2-??.%{startsoa}

# closing off udpcom_config
%endif

# for now always included
%files -n libdueca-ddff%{sosuffix}
%{_libdir}/libdueca-ddff.so.*
%{_libdir}/libdueca-ddfflog.so.*
%{_bindir}/ddff-convert

%files ddff-devel
%{_libdir}/libdueca-ddff.%{so_or_a}
%{_libdir}/libdueca-ddfflog.%{so_or_a}
%{_libdir}/libdueca-ddfflog-??.%{startsoa}
%{_includedir}/dueca/ddff
%{_libdir}/pkgconfig/dueca-ddff*.pc
%{python3_sitelib}/pyddff*

%if 0%{?websock_config}

%files -n libdueca-websock%{sosuffix}
%defattr(-, root, root)
%if 0%{?staticlibs_config} == 0
%{_libdir}/libdueca-websock.so.*
%endif

%files websock-devel
%defattr(-, root, root)
%{_libdir}/libdueca-websock.%{so_or_a}
%{_libdir}/libdueca-websock-??.%{startsoa}
%{_includedir}/dueca/websock
%{_libdir}/pkgconfig/dueca-websock*.pc

%endif

%files inter-devel
%defattr(-, root, root)
%{_libdir}/libdueca-inter.%{so_or_a}
%{_libdir}/libdueca-inter-??.%{startsoa}
%{_includedir}/dueca/inter
%{_libdir}/pkgconfig/dueca-inter*.pc

%if 0%{?hdf5_config}
%files hdf-devel
%defattr(-, root, root)
%{_libdir}/libdueca-hdf.%{so_or_a}
%{_libdir}/libdueca-hdf-??.%{startsoa}
%{_includedir}/dueca/hdf5utils
%{_libdir}/pkgconfig/dueca-hdf*.pc
%endif


%files dusime
%defattr(-, root, root)
%if 0%{?staticlibs_config} == 0
%{_libdir}/libdueca-dusime.so.*
%{_libdir}/libdueca-dusime-gtk2.so.*
%if 0%{?gtkthree_config}
%{_libdir}/libdueca-dusime-gtk3.so.*
%endif
%%if 0%{?gtkfour_config}
%{_libdir}/libdueca-dusime-gtk4.so.*
%endif
%endif

%files dusime-devel
%defattr(-, root, root)
%{_libdir}/libdueca-dusime.%{so_or_a}
%{_libdir}/libdueca-dusime-??.%{startsoa}
%{_libdir}/libdueca-dusime-gtk2.%{so_or_a}
%{_libdir}/libdueca-dusime-gtk2-??.%{startsoa}
%if 0%{?gtkthree_config}
%{_libdir}/libdueca-dusime-gtk3.%{so_or_a}
%{_libdir}/libdueca-dusime-gtk3-??.%{startsoa}
%endif
%if 0%{?gtkfour_config}
%{_libdir}/libdueca-dusime-gtk4.%{so_or_a}
%{_libdir}/libdueca-dusime-gtk4-??.%{startsoa}
%endif
%{_includedir}/dueca/dusime
%{_libdir}/pkgconfig/dueca-dusime*pc

%files doc
%defattr(-, root, root)
%doc %{_docdir}/dueca-doc-%{version}

%changelog
openSUSE Build Service is sponsored by