Add the base code for gtest verification
[platform/core/connectivity/bluetooth-agent.git] / packaging / bluetooth-agent.spec
1 %define _usrlibdir /usr/lib
2
3 Name:       bluetooth-agent
4 Summary:    Bluetooth agent packages that support various external profiles
5 Version:    0.1.3
6 Release:    1
7 Group:      Network & Connectivity/Bluetooth
8 License:    Apache-2.0
9 Source0:    %{name}-%{version}.tar.gz
10 Source1001:     bluetooth-agent.manifest
11
12 BuildRequires:  pkgconfig(aul)
13 BuildRequires:  pkgconfig(bluetooth-api)
14
15 # The profile macro usage with the following comments may be removed after
16 # Tizen OBS build projects are merged. However, each vendor may keep using
17 # such if/endif statement to skip building profiles not interested
18
19 # This usage of profile macro does NOT conflict 4.0 configurability.
20 %if "%{?profile}" != "mobile" && "%{?profile}" != "tv"
21 # Original: wearable, ivi. Added: common, "undefined"
22 BuildRequires:  pkgconfig(alarm-service)
23 BuildRequires:  pkgconfig(capi-appfw-app-manager)
24 BuildRequires:  pkgconfig(capi-system-device)
25 %endif
26 # This usage of profile macro does NOT conflict 4.0 configurability.
27 %if "%{?profile}" != "wearable" && "%{?profile}" != "ivi"
28 # Original: common, mobile, tv. Added: "undefined"
29 BuildRequires:  pkgconfig(contacts-service2)
30 BuildRequires:  pkgconfig(msg-service)
31 BuildRequires:  pkgconfig(email-service)
32 %endif
33 BuildRequires:  pkgconfig(capi-system-info)
34 BuildRequires:  pkgconfig(dbus-1)
35 BuildRequires:  pkgconfig(tapi)
36 BuildRequires:  pkgconfig(dlog)
37 BuildRequires:  pkgconfig(vconf)
38 BuildRequires:  pkgconfig(appsvc)
39 BuildRequires:  pkgconfig(capi-appfw-application)
40 BuildRequires:  pkgconfig(capi-network-connection)
41 BuildRequires:  pkgconfig(capi-network-bluetooth)
42 BuildRequires:  pkgconfig(capi-media-image-util)
43 BuildRequires:  pkgconfig(contacts-service2)
44 BuildRequires:  pkgconfig(libexif)
45 BuildRequires:  pkgconfig(gio-2.0)
46 BuildRequires:  cmake
47 Requires: security-config
48 %if 0%{?gcov:1}
49 BuildRequires:  pkgconfig(gmock)
50 %endif
51
52 #Requires:      %{name}-compat = %{version}-%{release}
53 #Recommends:    %{name}-profile_common = %{version}-%{release}
54
55 %description
56 Bluetooth agent packages that support various external profiles
57
58 %package hfp_ag
59 Summary:        Bluetooth agent for HFP(Hands-Free Profile)'s AG(Audio Gate) role
60 Requires:   %{name} = %{version}-%{release}
61 Group:      Network & Connectivity/Bluetooth
62 %description hfp_ag
63 Bluetooth agent binary compiled for HFP(Hands-Free Profile)'s AG(Audio Gate) role
64
65 %package hfp_hf
66 Summary:        Bluetooth agent for HFP(Hands-Free Profile)'s HF(Hands-Free) role
67 Requires:   %{name} = %{version}-%{release}
68 Group:      Network & Connectivity/Bluetooth
69 %description hfp_hf
70 Bluetooth agent binary compiled for HFP(Hands-Free Profile)'s HF(Hands-Free) role
71
72 %package map
73 Summary:        Bluetooth agent for MAP(Message Access Profile) server
74 Requires:   %{name} = %{version}-%{release}
75 Group:      Network & Connectivity/Bluetooth
76 %description map
77 Bluetooth agent binary compiled for MAP(Message Access Profile) server
78
79 %package pbap
80 Summary:        Bluetooth agent for PBAP(PhoneBook Access Profile) server
81 Requires:   %{name} = %{version}-%{release}
82 Group:      Network & Connectivity/Bluetooth
83 %description pbap
84 Bluetooth agent binary compiled for PBAP(PhoneBook Access Profile) server
85
86 %package hid
87 Summary:        Bluetooth agent for HID(Human Interface Device)'s device role
88 Requires:   %{name} = %{version}-%{release}
89 Group:      Network & Connectivity/Bluetooth
90 %description hid
91 Bluetooth agent binary compiled for HID(Human Interface Device)'s device role
92
93 %package ipsp
94 Summary:        Bluetooth agent for IPSP(Internet Protocol Support Profile)
95 Requires:   %{name} = %{version}-%{release}
96 Group:      Network & Connectivity/Bluetooth
97 %description ipsp
98 Bluetooth agent binary compiled for IPSP(Internet Protocol Support Profile)
99
100 %if 0%{?gcov:1}
101 %package test
102 Summary: Test package for bluetooth-agent
103 Group:   TO_BE/FILLED
104 Requires: %{name} = %{version}-%{release}
105
106 %description test
107 This package is C-API test application.
108 %endif
109
110 %prep
111 %setup -q
112 cp %{SOURCE1001} .
113
114 %build
115 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
116 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
117 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
118 #export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_MEDIA_ENHANCE"
119 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_HFP_AG"
120 export CFLAGS="$CFLAGS -DTIZEN_SUPPORT_DUAL_HF"
121
122 %ifarch aarch64
123 echo arch64
124 export CFLAGS+=" -DARCH64"
125 export CXXFLAGS+=" -DARCH64"
126 export FFLAGS+=" -DARCH64"
127 %endif
128
129 %ifarch x86_64
130 echo x86_64
131 export CFLAGS+=" -DARCH64"
132 export CXXFLAGS+=" -DARCH64"
133 export FFLAGS+=" -DARCH64"
134 %endif
135
136 export CFLAGS+=" -fpie -DTIZEN_FEATURE_BP_PBAP_SIM -fvisibility=hidden "
137 export CXXFLAGS+=" -fpie -DTIZEN_FEATURE_BP_PBAP_SIM -fvisibility=hidden "
138
139 export LDFLAGS+=" -Wl,--rpath=/usr/lib -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie"
140
141 export CFLAGS_DEFAULT="$CFLAGS"
142
143 # Build All (wearalbe/ivi/common/tv/mobile)
144 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
145         -DTIZEN_FEATURE_BT_HFP_AG=1 \
146         -DBUILD_GTESTS=%{?gcov:1}%{!?gcov:0} \
147         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
148
149 make VERBOSE=1
150
151 %install
152 rm -rf %{buildroot}
153 %make_install
154
155 install -D -m 0644 packaging/bluetooth-map-agent.service %{buildroot}%{_libdir}/systemd/system/bluetooth-map-agent.service
156 # This usage of profile macro does NOT conflict 4.0 configurability.
157 #%if "%{?profile}" != "mobile" && "%{?profile}" != "tv"
158 # Original: wearable, ivi. Added: common, "undefined"
159 #mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services
160 #mkdir -p %{buildroot}%{_bindir}/
161 #install -D -m 0644 %{buildroot}/usr/share/dbus-1/system-services/org.bluez.hf_agent.service %{buildroot}%{_datadir}/dbus-1/system-services/
162 #install -D -m 0644 %{buildroot}/usr/share/dbus-1/system-services/org.bluez.ipsp_agent.service %{buildroot}%{_datadir}/dbus-1/system-services/
163 #install -D -m 0644 %{buildroot}/usr/bin/bluetooth-hf-agent %{buildroot}%{_bindir}/
164 #install -D -m 0644 %{buildroot}/usr/bin/bluetooth-ipsp-agent %{buildroot}%{_bindir}/
165 #%endif
166 install -D -m 0644 packaging/bluetooth-pbap-agent.service %{buildroot}%{_libdir}/systemd/system/bluetooth-pbap-agent.service
167
168 %post
169 %if 0%{?sec_product_feature_bt_map_server_enable}
170 ln -sf %{_libdir}/systemd/user/bluetooth-map-agent.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
171 %endif
172 ln -sf %{_libdir}/systemd/system/bluetooth-pbap-agent.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
173
174 %files
175 %manifest %{name}.manifest
176 %license LICENSE
177 %defattr(-, root, root)
178
179 %files hfp_ag
180 %manifest %{name}.manifest
181 %license LICENSE
182 %{_bindir}/bluetooth-ag-agent
183 %attr(0666,-,-) /var/lib/bluetooth/voice-recognition-blacklist
184 %{_datadir}/dbus-1/system-services/org.bluez.ag_agent.service
185 %{_sysconfdir}/dbus-1/system.d/bluetooth-ag-agent.conf
186 #%exclude %{_libdir}/systemd/system/bluetooth-map-agent.service
187 #%exclude %{_libdir}/systemd/system/bluetooth-pbap-agent.service
188
189 %files hfp_hf
190 %manifest %{name}.manifest
191 %license LICENSE
192 %{_bindir}/bluetooth-hf-agent
193 %{_datadir}/dbus-1/system-services/org.bluez.hf_agent.service
194 %{_sysconfdir}/dbus-1/system.d/bluetooth-hf-agent.conf
195 #%exclude %{_libdir}/systemd/system/bluetooth-map-agent.service
196 #%exclude %{_libdir}/systemd/system/bluetooth-pbap-agent.service
197
198 %files map
199 %manifest %{name}.manifest
200 %license LICENSE
201 %{_bindir}/bluetooth-map-agent
202 %{_datadir}/dbus-1/system-services/org.bluez.map_agent.service
203 %{_libdir}/systemd/system/bluetooth-map-agent.service
204
205 %files pbap
206 %manifest %{name}.manifest
207 %license LICENSE
208 %{_bindir}/bluetooth-pb-agent
209 %{_datadir}/dbus-1/system-services/org.bluez.pb_agent.service
210 %{_libdir}/systemd/system/bluetooth-pbap-agent.service
211
212 %files hid
213 %manifest %{name}.manifest
214 %license LICENSE
215 %{_bindir}/bluetooth-hid-agent
216 %{_datadir}/dbus-1/system-services/org.bluez.hid_agent.service
217
218 %files ipsp
219 %manifest %{name}.manifest
220 %license LICENSE
221 %{_bindir}/bluetooth-ipsp-agent
222 %{_datadir}/dbus-1/system-services/org.bluez.ipsp_agent.service
223 %{_sysconfdir}/dbus-1/system.d/bluetooth-ipsp-agent.conf
224
225 %if 0%{?gcov:1}
226 %files test
227 %manifest %{name}.manifest
228 %{_bindir}/gtest-bluetooth-agent
229 %{_libdir}/lib*
230 %exclude %{_libdir}/debug/*
231 %exclude %{_libdir}/debug/.build-id/*
232 %endif