Package version up to 4.1.10
[platform/core/uifw/libtbm.git] / packaging / libtbm.spec
index 0c8dbc6..da6dc19 100644 (file)
+%bcond_with x
+%bcond_with wayland
+%define HALTESTS_PACKAGE 1
+%if 0%{?gcov:1}
+%define HALTESTS_GCOV    1
+%else
+%define HALTESTS_GCOV    0
+%endif
+
+%define _tmpfilesdir /usr/lib/tmpfiles.d
+
 Name:           libtbm
-Version:        1.0.6
-Release:        4
+Version:        4.1.10
+Release:        1
 License:        MIT
-Summary:        Tizen Buffer Manager Library
+Summary:        The library for Tizen Buffer Manager
 Group:          System/Libraries
 Source0:        %{name}-%{version}.tar.gz
-Source1001:    libtbm.manifest
+Source1001:            %name.manifest
+Source1002:     sw_sync.conf
 
-BuildRequires:  pkgconfig(pthread-stubs)
 BuildRequires:  pkgconfig(libdrm)
+BuildRequires:  pkgconfig(wayland-server)
+BuildRequires:  pkgconfig(wayland-client)
+BuildRequires:  pkgconfig(capi-base-common)
+BuildRequires:  pkgconfig(libpng)
+BuildRequires:  pkgconfig(dlog)
+BuildRequires:  pkgconfig(pixman-1)
+BuildRequires:  pkgconfig(gmock)
+BuildRequires:  pkgconfig(hal-api-tbm)
 
 %description
-The library for Tizen Buffer Manager.
+Description: %{summary}
 
 %package devel
 Summary:        Tizen Buffer Manager Library - Development
 Group:          Development/Libraries
 Requires:       libtbm = %{version}
-Requires:       pkgconfig(libdrm)
+Requires:       pkgconfig(capi-base-common)
 
 %description devel
 The library for Tizen Buffer Manager.
 
 Development Files.
 
+%if 0%{?gcov:1}
+%package gcov
+Summary: Tizen Buffer Manager gcov data package
+Group: Development/Libraries
+
+%description gcov
+Tizen Buffer Manager gcno data for gcov
+%endif
+
+%if "%{HALTESTS_PACKAGE}" == "1"
+%package haltests
+Summary: Tizen Buffer Manager unit tests package
+Group: System/Libraries
+
+%description haltests
+Test module for testing libtbm APIs
+%endif
+
+%global TZ_SYS_RO_SHARE  %{?TZ_SYS_RO_SHARE:%TZ_SYS_RO_SHARE}%{!?TZ_SYS_RO_SHARE:/usr/share}
+
 %prep
 %setup -q
 cp %{SOURCE1001} .
 
 %build
+HALTESTS="no"
+
+%if "%{HALTESTS_PACKAGE}" == "1"
+HALTESTS="yes"
+%endif
+
+%if "%{HALTESTS_GCOV}" == "1"
+CFLAGS+=" -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
+CXXFLAGS+=" -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
+LDFLAGS+=" -lgcov"
+%endif
 
-%reconfigure --prefix=%{_prefix} \
+%if %{with wayland}
+%reconfigure --prefix=%{_prefix} --with-tbm-platform=WAYLAND  --with-haltests=${HALTESTS} --bindir=%{_bindir}/hal \
+            --with-default-dlog=yes \
             CFLAGS="${CFLAGS} -Wall -Werror" LDFLAGS="${LDFLAGS} -Wl,--hash-style=both -Wl,--as-needed"
+%else
+%reconfigure --prefix=%{_prefix} --with-tbm-platform=X11  --with-haltests=${HALTESTS} --bindir=%{_bindir}/hal \
+            CFLAGS="${CFLAGS} -Wall -Werror" LDFLAGS="${LDFLAGS} -Wl,--hash-style=both -Wl,--as-needed"
+%endif
 
 make %{?_smp_mflags}
 
+%if 0%{?gcov:1}
+mkdir -p gcov-obj
+find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
+rm gcov-obj/tbm_haltests-tc*
+%endif
+
 %install
 rm -rf %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp -af COPYING %{buildroot}/usr/share/license/%{name}
 %make_install
 
+%__mkdir_p %{buildroot}%{_tmpfilesdir}
+install -m 0644 %SOURCE1002 %{buildroot}%{_tmpfilesdir}/sw_sync.conf
+
+%__mkdir_p %{buildroot}%{_unitdir_user}
+install -m 644 service/tbm-drm-auth-user.service %{buildroot}%{_unitdir_user}
+install -m 644 service/tbm-drm-auth-user.path %{buildroot}%{_unitdir_user}
+
+%if 0%{?gcov:1}
+mkdir -p %{buildroot}%{_datadir}/gcov/obj
+install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
+%endif
 
 %clean
 rm -rf %{buildroot}
 
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%pre
+%__mkdir_p %{_unitdir_user}/basic.target.wants
+ln -sf ../tbm-drm-auth-user.path %{_unitdir_user}/basic.target.wants/
 
+%post
+%if "%{HALTESTS_PACKAGE}" == "1"
+if [ -f %{_bindir}/tbm-haltests ]; then
+    rm -f %{_bindir}/tbm-haltests
+fi
+ln -s %{_bindir}/hal/tbm-haltests %{_bindir}/tbm-haltests
+%endif
+
+%postun -p /sbin/ldconfig
+rm -f %{_unitdir_user}/basic.target.wants/tbm-drm-auth-user.path
 
 %files
 %manifest %{name}.manifest
 %defattr(-,root,root,-)
-/usr/share/license/%{name}
+%license COPYING
 %{_libdir}/libtbm.so.*
-%{_libdir}/libdrm_slp.so.*
+%{_unitdir_user}/tbm-drm-auth-user.path
+%{_unitdir_user}/tbm-drm-auth-user.service
+%{_tmpfilesdir}/sw_sync.conf
 
 %files devel
 %manifest %{name}.manifest
 %defattr(-,root,root,-)
 %dir %{_includedir}
-%{_includedir}/tbm_bufmgr.h
-%{_includedir}/tbm_bufmgr_backend.h
+%{_includedir}/tbm_*.h
 %{_libdir}/libtbm.so
-%{_libdir}/libdrm_slp.so
 %{_libdir}/pkgconfig/libtbm.pc
 
+%if "%{HALTESTS_PACKAGE}" == "1"
+%files haltests
+%defattr(-,root,root,-)
+%{_bindir}/hal/tbm-haltests
+%endif
+
+%if 0%{?gcov:1}
+%files gcov
+%{_datadir}/gcov/obj/*
+%endif