389265143f39de2e81f9c188ed22b7a35e7c6d67
[platform/core/uifw/inputmethod-setting.git] / packaging / org.tizen.inputmethod-setting.spec
1 Name:       org.tizen.inputmethod-setting
2 Summary:    Input Method Setting Application
3 Version:    0.5.44
4 Release:    1
5 Group:      Graphics & UI Framework/Input
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8
9 BuildRequires:  gettext-tools
10 BuildRequires:  cmake
11 BuildRequires:  pkgconfig(capi-appfw-application)
12 BuildRequires:  pkgconfig(isf)
13 BuildRequires:  pkgconfig(elementary)
14 BuildRequires:  pkgconfig(dlog)
15 BuildRequires:  pkgconfig(efl-extension)
16 BuildRequires:  pkgconfig(libtzplatform-config)
17 BuildRequires:  pkgconfig(capi-ui-inputmethod-manager)
18 BuildRequires:  pkgconfig(capi-appfw-package-manager)
19 BuildRequires:  pkgconfig(vconf)
20 Requires:       %{name}-compat = %{version}-%{release}
21 # This if/endif is for GBM build optimization. This usage does not affect
22 # The unified build (profile is undefined) as it will return TRUE always.
23 %if "%{?profile}"!="mobile" && "%{?profile}"!="wearable"
24 Recommends:     %{name}-profile_common = %{version}-%{release}
25 %endif
26
27 %description
28 Setting Application for ISF.
29 This requires profile specific extensions. (e.g., %{name}-profile_common)
30
31 # This if/endif is for GBM build optimization. This usage does not affect
32 # The unified build (profile is undefined) as it will return TRUE always.
33 %if "%{?profile}"!="mobile" && "%{?profile}"!="wearable"
34 %package profile_common
35 Summary:    Input Method Setting Application Vannila Binaries (common/ivi/tv)
36 Provides:   %{name}-compat = %{version}-%{release}
37 Conflicts:  %{name}-profile_wearable
38 Conflicts:  %{name}-profile_mobile
39 %description profile_common
40 Setting Application for ISF, Vanilla Edition for common/ivi/tv profiles.
41 %endif
42
43 # This if/endif is for GBM build optimization. This usage does not affect
44 # The unified build (profile is undefined) as it will return TRUE always.
45 %if "%{?profile}"!="tv" && "%{?profile}"!="wearable"
46 %package profile_mobile
47 Summary:    Input Method Setting Application Binaries for Mobile Profile
48 Provides:   %{name}-compat = %{version}-%{release}
49 Conflicts:  %{name}-profile_wearable
50 Conflicts:  %{name}-profile_common
51 %description profile_mobile
52 Setting Application for ISF, Mobile Profile Edition.
53 Binaries in this package is compiled with "mobile" options.
54 %endif
55
56 # This if/endif is for GBM build optimization. This usage does not affect
57 # The unified build (profile is undefined) as it will return TRUE always.
58 %if "%{?profile}"!="tv" && "%{?profile}"!="mobile"
59 %package profile_wearable
60 Summary:    Input Method Setting Application Metapackage for Wearable
61 Provides:   %{name}-compat = %{version}-%{release}
62 Requires:   %{name}-profile_wearable-extension = %{version}-%{release}
63 Recommends: %{name}-profile_wearable-extension-circle = %{version}-%{release}
64 Conflicts:  %{name}-profile_common
65 Conflicts:  %{name}-profile_mobile
66 %description profile_wearable
67 Meta package to anchor circle display version and rectangle display version of
68 Setting APplication for ISF, Wearable Profile Edition.
69
70 # Because circle breaks CAPI compatibility, it should be built for
71 # wearable and "unified (undefined)"
72 %if "%{?profile}"!="tv" && "%{?profile}"!="mobile" && "%{?profile}"!="ivi" && "%{?profile}"!="common"
73 %package profile_wearable-extension-circle
74 Summary:    Input Method Setting Application for Wearable (Circle)
75 Provides:   %{name}-profile_wearable-extension = %{version}-%{release}
76 Conflicts:  %{name}-profile_wearable-extension-rectangle
77 %description profile_wearable-extension-circle
78 Setting Application for ISF, Wearable Profile Edition with Circle Display
79 Binaries in this package is compiled with "wearable" and "circle" options.
80 %endif
81
82 %package profile_wearable-extension-rectangle
83 Summary:    Input Method Setting Application for Wearable (Rectangle)
84 Provides:   %{name}-profile_wearable-extension = %{version}-%{release}
85 Conflicts:  %{name}-profile_wearable-extension-circle
86 %description profile_wearable-extension-rectangle
87 Setting Application for ISF, Wearable Profile Edition with Rectangle Display
88 Binaries in this package is compiled with "wearable" and "rectangle" options.
89 %endif
90
91 %prep
92 %setup -q -n %{name}-%{version}
93
94 %build
95 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE -DTIZEN_DEBUG_ENABLE -fvisibility=hidden -Werror"
96 export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE -DTIZEN_DEBUG_ENABLE -fvisibility=hidden -fvisibility-inlines-hidden -Werror"
97 export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE -DTIZEN_DEBUG_ENABLE"
98
99 export CFLAGSBASE="$CFLAGS"
100 export CXXFLAGSBASE="$CXXFLAGS"
101
102 rm -rf CMakeFiles
103 rm -rf CMakeCache.txt
104
105 # This if/endif is for GBM build optimization. This usage does not affect
106 # The unified build (profile is undefined) as it will return TRUE always.
107 %if "%{?profile}"!="tv" && "%{?profile}"!="wearable"
108 mkdir -p build_mobile
109 CFLAGS="$CFLAGSBASE -D_MOBILE"
110 CXXFLAGS="$CXXFLAGSBASE -D_MOBILE"
111
112 pushd build_mobile
113 %cmake .. -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
114          -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES \
115          -DTZ_SYS_RO_ICONS=%TZ_SYS_RO_ICONS
116 make %{?jobs:-j%jobs}
117 popd
118 %endif
119
120 # This if/endif is for GBM build optimization. This usage does not affect
121 # The unified build (profile is undefined) as it will return TRUE always.
122 %if "%{?profile}"!="tv" && "%{?profile}"!="mobile"
123 mkdir -p build_wearable_rectangle
124
125 CFLAGS="$CFLAGSBASE -D_WEARABLE"
126 CXXFLAGS="$CXXFLAGSBASE -D_WEARABLE"
127 pushd build_wearable_rectangle
128 %cmake .. -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
129          -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES \
130          -DTZ_SYS_RO_ICONS=%TZ_SYS_RO_ICONS
131 make %{?jobs:-j%jobs}
132 popd
133
134 # Because circle breaks CAPI compatibility, it should be built for
135 # wearable and "unified (undefined)"
136 %if "%{?profile}"!="tv" && "%{?profile}"!="mobile" && "%{?profile}"!="ivi" && "%{?profile}"!="common"
137 mkdir -p build_wearable_circle
138 CFLAGS="$CFLAGSBASE -D_WEARABLE -D_CIRCLE"
139 CXXFLAGS="$CXXFLAGSBASE -D_WEARABLE -D_CIRCLE"
140 pushd build_wearable_circle
141 %cmake .. -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
142          -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES \
143          -DTZ_SYS_RO_ICONS=%TZ_SYS_RO_ICONS
144 make %{?jobs:-j%jobs}
145 popd
146 %endif
147 %endif
148
149 # This if/endif is for GBM build optimization. This usage does not affect
150 # The unified build (profile is undefined) as it will return TRUE always.
151 %if "%{?profile}"!="mobile" && "%{?profile}"!="wearable"
152 CFLAGS="$CFLAGSBASE"
153 CXXFLAGS="$CXXFLAGSBASE"
154 %cmake . -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
155         -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES \
156         -DTZ_SYS_RO_ICONS=%TZ_SYS_RO_ICONS
157 make %{?jobs:-j%jobs}
158 %endif
159
160 %install
161 rm -rf %{buildroot}
162
163 # This if/endif is for GBM build optimization. This usage does not affect
164 # The unified build (profile is undefined) as it will return TRUE always.
165 %if "%{?profile}"!="tv" && "%{?profile}"!="wearable"
166 pushd build_mobile
167 %make_install
168 popd
169 mv %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-list \
170    %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-list.mobile
171 mv %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-selector \
172    %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-selector.mobile
173 %endif
174
175 # This if/endif is for GBM build optimization. This usage does not affect
176 # The unified build (profile is undefined) as it will return TRUE always.
177 %if "%{?profile}"!="tv" && "%{?profile}"!="mobile"
178 pushd build_wearable_rectangle
179 %make_install
180 popd
181 mv %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-list \
182    %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-list.wearable.rectangle
183 mv %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-selector \
184    %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-selector.wearable.rectangle
185 # Because circle breaks CAPI compatibility, it should be built for
186 # wearable and "unified (undefined)"
187 %if "%{?profile}"!="tv" && "%{?profile}"!="mobile" && "%{?profile}"!="ivi" && "%{?profile}"!="common"
188 pushd build_wearable_circle
189 %make_install
190 popd
191 mv %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-list \
192    %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-list.wearable.circle
193 mv %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-selector \
194    %{buildroot}%{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-selector.wearable.circle
195 %endif
196 %endif
197
198 # This if/endif is for GBM build optimization. This usage does not affect
199 # The unified build (profile is undefined) as it will return TRUE always.
200 %if "%{?profile}"!="mobile" && "%{?profile}"!="wearable"
201 %make_install
202 %endif
203 %find_lang inputmethod-setting
204
205 %files -f inputmethod-setting.lang
206 %manifest %{name}.manifest
207 %defattr(-,root,root,-)
208 %{TZ_SYS_RO_ICONS}/default/small/*
209 %{TZ_SYS_RO_PACKAGES}/%{name}.xml
210 %license LICENSE
211
212 # This if/endif is for GBM build optimization. This usage does not affect
213 # The unified build (profile is undefined) as it will return TRUE always.
214 %if "%{?profile}"!="mobile" && "%{?profile}"!="wearable"
215 %files profile_common
216 %manifest %{name}.manifest
217 %exclude %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-*.mobile
218 %exclude %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-*.wearable.*
219 %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-*
220 %endif
221
222 # This if/endif is for GBM build optimization. This usage does not affect
223 # The unified build (profile is undefined) as it will return TRUE always.
224 %if "%{?profile}"!="tv" && "%{?profile}"!="wearable"
225 %post profile_mobile
226 pushd %{TZ_SYS_RO_APP}/%{name}/bin/
227 for file in inputmethod-setting-*.mobile; do ln -sf "${file}" "${file%.mobile}"; done
228 popd
229 %preun profile_mobile
230 rm %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-settings-list
231 rm %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-selector
232 %files profile_mobile
233 %manifest %{name}.manifest
234 %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-*.mobile
235 %endif
236
237 # This if/endif is for GBM build optimization. This usage does not affect
238 # The unified build (profile is undefined) as it will return TRUE always.
239 %if "%{?profile}"!="tv" && "%{?profile}"!="mobile"
240 %files profile_wearable
241
242 # Because circle breaks CAPI compatibility, it should be built for
243 # wearable and "unified (undefined)"
244 %if "%{?profile}"!="tv" && "%{?profile}"!="mobile" && "%{?profile}"!="ivi" && "%{?profile}"!="common"
245 %post profile_wearable-extension-circle
246 pushd %{TZ_SYS_RO_APP}/%{name}/bin/
247 for file in inputmethod-setting-*.wearable.circle; do ln -sf "${file}" "${file%.wearable.circle}"; done
248 popd
249 %preun profile_wearable-extension-circle
250 rm %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-settings-list
251 rm %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-selector
252 %files profile_wearable-extension-circle
253 %manifest %{name}.manifest
254 %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-*.wearable.circle
255 %endif
256
257 %post profile_wearable-extension-rectangle
258 pushd %{TZ_SYS_RO_APP}/%{name}/bin/
259 for file in inputmethod-setting-*.wearable.rectangle; do ln -sf "${file}" "${file%.wearable.rectangle}"; done
260 popd
261 %preun profile_wearable-extension-rectangle
262 rm %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-settings-list
263 rm %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-selector
264 %files profile_wearable-extension-rectangle
265 %manifest %{name}.manifest
266 %{TZ_SYS_RO_APP}/%{name}/bin/inputmethod-setting-*.wearable.rectangle
267 %endif