Package version up to 4.1.31
[platform/core/uifw/libtbm.git] / packaging / libtbm.spec
1 %bcond_with x
2 %bcond_with wayland
3 %define HALTESTS_PACKAGE 1
4 %if 0%{?gcov:1}
5 %define HALTESTS_GCOV    1
6 %else
7 %define HALTESTS_GCOV    0
8 %endif
9
10 %define _tmpfilesdir /usr/lib/tmpfiles.d
11
12 Name:           libtbm
13 Version:        4.1.31
14 Release:        1
15 License:        MIT
16 Summary:        The library for Tizen Buffer Manager
17 Group:          System/Libraries
18 Source0:        %{name}-%{version}.tar.gz
19 Source1001:     %name.manifest
20 Source1002:     sw_sync.conf
21 Source1003:     run-unittest.sh
22
23 BuildRequires:  pkgconfig(libdrm)
24 BuildRequires:  pkgconfig(wayland-server)
25 BuildRequires:  pkgconfig(wayland-client)
26 BuildRequires:  pkgconfig(capi-base-common)
27 BuildRequires:  pkgconfig(libpng)
28 BuildRequires:  pkgconfig(dlog)
29 BuildRequires:  pkgconfig(pixman-1)
30 BuildRequires:  pkgconfig(gmock)
31 BuildRequires:  pkgconfig(hal-api-tbm)
32
33 %description
34 Description: %{summary}
35
36 %package devel
37 Summary:        Tizen Buffer Manager Library - Development
38 Group:          Development/Libraries
39 Requires:       libtbm = %{version}
40 Requires:       pkgconfig(capi-base-common)
41
42 %description devel
43 The library for Tizen Buffer Manager.
44
45 Development Files.
46
47 %if 0%{?gcov:1}
48 %package gcov
49 Summary: Tizen Buffer Manager gcov data package
50 Group: Development/Libraries
51
52 %description gcov
53 Tizen Buffer Manager gcno data for gcov
54 %endif
55
56 %if "%{HALTESTS_PACKAGE}" == "1"
57 %package haltests
58 Summary: Tizen Buffer Manager unit tests package
59 Group: System/Libraries
60
61 %description haltests
62 Test module for testing libtbm APIs
63
64 %package unittests
65 Summary: Tizen Buffer Manager unit tests package
66 Group: System/Libraries
67
68 %description unittests
69 Test module for testing libtbm APIs
70 %endif
71
72 %global TZ_SYS_RO_SHARE  %{?TZ_SYS_RO_SHARE:%TZ_SYS_RO_SHARE}%{!?TZ_SYS_RO_SHARE:/usr/share}
73
74 %prep
75 %setup -q
76 cp %{SOURCE1001} .
77
78 %build
79 HALTESTS="no"
80
81 %if "%{HALTESTS_PACKAGE}" == "1"
82 HALTESTS="yes"
83 %endif
84
85 %if "%{HALTESTS_GCOV}" == "1"
86 CFLAGS+=" -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
87 CXXFLAGS+=" -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
88 LDFLAGS+=" -lgcov"
89 %endif
90
91 %if %{with wayland}
92 %reconfigure --prefix=%{_prefix} --with-tbm-platform=WAYLAND  --with-haltests=${HALTESTS} --bindir=%{_bindir}/hal \
93             --with-default-dlog=yes \
94             CFLAGS="${CFLAGS} -Wall -Werror" LDFLAGS="${LDFLAGS} -Wl,--hash-style=both -Wl,--as-needed"
95 %else
96 %reconfigure --prefix=%{_prefix} --with-tbm-platform=X11  --with-haltests=${HALTESTS} --bindir=%{_bindir}/hal \
97             CFLAGS="${CFLAGS} -Wall -Werror" LDFLAGS="${LDFLAGS} -Wl,--hash-style=both -Wl,--as-needed"
98 %endif
99
100 make %{?_smp_mflags}
101
102 %install
103 rm -rf %{buildroot}
104 %make_install
105
106 %__mkdir_p %{buildroot}%{_tmpfilesdir}
107 install -m 0644 %SOURCE1002 %{buildroot}%{_tmpfilesdir}/sw_sync.conf
108
109 %__mkdir_p %{buildroot}%{_unitdir_user}
110 install -m 644 service/tbm-drm-auth-user.service %{buildroot}%{_unitdir_user}
111 install -m 644 service/tbm-drm-auth-user.path %{buildroot}%{_unitdir_user}
112
113 %if 0%{?gcov:1}
114 find haltests/ -name '*.gcno' -exec rm {} \;
115
116 builddir=$(basename $PWD)
117 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
118 mkdir -p "$gcno_obj_dir"
119 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
120 %endif
121
122 %if "%{HALTESTS_PACKAGE}" == "1"
123 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
124 install -m 0755 %SOURCE1003 %{buildroot}%{_bindir}/tizen-unittests/%{name}/
125 %endif
126
127 %clean
128 rm -rf %{buildroot}
129
130 %pre
131 %__mkdir_p %{_unitdir_user}/basic.target.wants
132 ln -sf ../tbm-drm-auth-user.path %{_unitdir_user}/basic.target.wants/
133
134 %post
135 %if "%{HALTESTS_PACKAGE}" == "1"
136 if [ -f %{_bindir}/tbm-haltests ]; then
137     rm -f %{_bindir}/tbm-haltests
138 fi
139 ln -s %{_bindir}/hal/tbm-haltests %{_bindir}/tbm-haltests
140
141 if [ -f %{_bindir}/tbm-unittests ]; then
142     rm -f %{_bindir}/tbm-unittests
143 fi
144 ln -s %{_bindir}/hal/tbm-unittests %{_bindir}/tbm-unittests
145 %endif
146
147 %postun -p /sbin/ldconfig
148 rm -f %{_unitdir_user}/basic.target.wants/tbm-drm-auth-user.path
149
150 %files
151 %manifest %{name}.manifest
152 %defattr(-,root,root,-)
153 %license COPYING
154 %{_libdir}/libtbm.so.*
155 %{_unitdir_user}/tbm-drm-auth-user.path
156 %{_unitdir_user}/tbm-drm-auth-user.service
157 %{_tmpfilesdir}/sw_sync.conf
158
159 %files devel
160 %manifest %{name}.manifest
161 %defattr(-,root,root,-)
162 %dir %{_includedir}
163 %{_includedir}/tbm_*.h
164 %{_libdir}/libtbm.so
165 %{_libdir}/pkgconfig/libtbm.pc
166
167 %if "%{HALTESTS_PACKAGE}" == "1"
168 %files haltests
169 %defattr(-,root,root,-)
170 %{_bindir}/hal/tbm-haltests
171
172 %files unittests
173 %defattr(-,root,root,-)
174 %{_bindir}/hal/tbm-unittests
175 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
176 %endif
177
178 %if 0%{?gcov:1}
179 %files gcov
180 %{_datadir}/gcov/obj/*
181 %endif