Check the desktop variable for supporting desktop browsing.
[platform/framework/web/webkit-efl.git] / packaging / webkit2-efl.spec
1 %bcond_with mesa
2 %bcond_with wayland
3 %bcond_with desktop
4 Name: webkit2-efl
5 Summary: Webkit2 EFL
6 Version: 123997_0.11.47
7 Release: 1
8 Group: Applications/Internet
9 License: LGPLv2.1 or BSD
10 Source0: %{name}-%{version}.tar.gz
11 Source1001:     webkit2-efl.manifest
12
13 Requires(post): /sbin/ldconfig
14 Requires(post): xkeyboard-config
15 Requires(postun): /sbin/ldconfig
16
17 BuildRequires: cmake, edje-bin, embryo-bin, python, bison, flex, gperf, libjpeg-turbo-devel, perl, gettext, ruby
18 BuildRequires: gtest-devel
19 BuildRequires: pkgconfig(cairo)
20 BuildRequires: pkgconfig(capi-network-connection)
21 BuildRequires: pkgconfig(capi-telephony-network-info)
22 BuildRequires: pkgconfig(dlog)
23 BuildRequires: pkgconfig(ecore)
24 BuildRequires: pkgconfig(ecore-evas)
25 BuildRequires: pkgconfig(ecore-file)
26 BuildRequires: pkgconfig(edbus)
27 BuildRequires: pkgconfig(edje)
28 BuildRequires: pkgconfig(eeze)
29 BuildRequires: pkgconfig(eina)
30 BuildRequires: pkgconfig(elementary)
31 BuildRequires: pkgconfig(enchant)
32 BuildRequires: pkgconfig(ethumb)
33 BuildRequires: pkgconfig(evas)
34 BuildRequires: pkgconfig(feedback)
35 BuildRequires: pkgconfig(fontconfig)
36 BuildRequires: pkgconfig(freetype2)
37 BuildRequires: pkgconfig(glib-2.0)
38 %if %{defined with_Gstreamer0.10}
39 BuildRequires: pkgconfig(gstreamer-0.10)
40 BuildRequires: pkgconfig(gstreamer-plugins-base-0.10)
41 %else
42 BuildRequires: pkgconfig(gstreamer-1.0)
43 BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
44 %endif
45 BuildRequires: pkgconfig(harfbuzz)
46 BuildRequires: pkgconfig(icu-i18n)
47 BuildRequires: pkgconfig(libmedia-utils)
48 BuildRequires: pkgconfig(libsoup-2.4)
49 BuildRequires: pkgconfig(openssl)
50 BuildRequires: pkgconfig(libxml-2.0)
51 BuildRequires: pkgconfig(libxslt)
52 BuildRequires: pkgconfig(location)
53 BuildRequires: pkgconfig(mmutil-imgp)
54 BuildRequires: pkgconfig(mmutil-jpeg)
55 %if %{with audio_session_manager}
56 BuildRequires: pkgconfig(mm-session)
57 BuildRequires: pkgconfig(mm-sound)
58 %endif
59 BuildRequires: pkgconfig(sqlite3)
60 BuildRequires: pkgconfig(utilX)
61 BuildRequires: pkgconfig(vconf)
62 BuildRequires: pkgconfig(xt)
63 BuildRequires: pkgconfig(capi-appfw-application)
64 BuildRequires: pkgconfig(leveldb)
65 BuildRequires: pkgconfig(capi-location-manager)
66 BuildRequires: pkgconfig(capi-system-sensor)
67 BuildRequires: pkgconfig(capi-system-device)
68 BuildRequires: pkgconfig(ui-gadget-1)
69 BuildRequires: pkgconfig(xext)
70 BuildRequires: pkgconfig(libavcodec)
71 BuildRequires: pkgconfig(tts)
72 BuildRequires: pkgconfig(capi-system-power)
73 %if %{with mesa}
74 BuildRequires: pkgconfig(gl)
75 BuildRequires: pkgconfig(glesv2)
76 %else
77 BuildRequires: pkgconfig(gles20)
78 %endif
79 BuildRequires: pkgconfig(egl)
80
81 %if %{with wayland}
82 BuildRequires: pkgconfig(wayland-client)
83 BuildRequires: pkgconfig(wayland-egl)
84 %endif
85
86 %description
87 Browser Engine based on Webkit2 EFL (Shared Library)
88
89 %package devel
90 Summary: Webkit2 EFL
91 Group: Development/Libraries
92 Requires: %{name} = %{version}-%{release}
93 %description devel
94 Browser Engine dev library based on Webkit EFL (developement files)
95
96 %package test
97 Summary:        Webkit2 EFL test binaries
98 Group:          Development/Tools
99 Requires:       %{name} = %{version}
100 %description test
101 Currently test tools means MiniBrowser, more tools can be added as needed.
102
103 %prep
104 %setup -q
105 cp %{SOURCE1001} .
106
107 %build
108
109 # Temporary workaround
110 %ifarch %{arm}
111 export CFLAGS="$(echo $CFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
112 export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
113 export FFLAGS="$(echo $FFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
114 %else
115 export CFLAGS="$(echo $CFLAGS | sed 's/-Wl,--as-needed//g')"
116 export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-Wl,--as-needed//g')"
117 %endif
118
119 %ifarch %{arm}
120 %define EFL_TARGET arm
121 %else
122 %if 0%{?simulator}
123 %define EFL_TARGET emulator
124 %else
125 %define EFL_TARGET i386
126 %endif
127 %endif
128
129 export SOURCE_DIR="$PWD"
130 export WEBKIT_BUILD_DIR=%{WEBKIT_BUILD_DIR}
131 if [ -z "$WEBKIT_BUILD_DIR" -o "{WEBKIT_BUILD_DIR}" == "${WEBKIT_BUILD_DIR#%}" ]
132 then
133     export WEBKIT_BUILD_DIR="BuildWK2-%{EFL_TARGET}"
134 fi
135 export TIZEN_WEBKIT_EXTRA_OPTIONS=%{TIZEN_WEBKIT_EXTRA_OPTIONS}
136 if [ "{TIZEN_WEBKIT_EXTRA_OPTIONS}" == "${TIZEN_WEBKIT_EXTRA_OPTIONS#%}" ]
137 then
138     export TIZEN_WEBKIT_EXTRA_OPTIONS=
139 fi
140
141 %if %{defined with_Gstreamer0.10}
142 export GSTREAMER_API="-DGST_API_VERSION_1=Off"
143 %else
144 export GSTREAMER_API="-DGST_API_VERSION_1=On"
145 export TIZEN_WEBKIT_EXTRA_OPTIONS="$TIZEN_WEBKIT_EXTRA_OPTIONS -DENABLE_TIZEN_GSTREAMER_VIDEO_SET_SINK=On"
146 %endif
147
148 %if %{with wayland}
149 export ECORE_X="-DENABLE_ECORE_X=Off"
150 %else
151 export ECORE_X="-DENABLE_ECORE_X=On"
152 %endif
153
154 mkdir -p $WEBKIT_BUILD_DIR
155 cd $WEBKIT_BUILD_DIR
156
157 export MAKE_OPTION=%{MAKE_OPTION}
158 if [ "{MAKE_OPTION}" == "${MAKE_OPTION#%}" ]
159 then
160     %cmake $SOURCE_DIR \
161         -DPORT=Efl \
162         -DCMAKE_INSTALL_PREFIX=/usr \
163         -DCMAKE_BUILD_TYPE=Release \
164         -DENABLE_WEBKIT=Off \
165         -DENABLE_WEBKIT2=On \
166         -DENABLE_ALLINONE=On \
167 %if %{with audio_session_manager}
168         -DENABLE_TIZEN_AUDIO_SESSION_MANAGER=On \
169 %endif
170         -DENABLE_TIZEN_SCREEN_READER=Off \
171         -DEFL_TARGET=%{EFL_TARGET} \
172         -DDefaultTheme_RESOURCE_NAME=webkit.edj \
173         $TIZEN_WEBKIT_EXTRA_OPTIONS \
174         $GSTREAMER_API \
175         $ECORE_X \
176 %if %{with mesa}
177         -DUSE_MESA=On \
178 %endif
179 %if %{with desktop}
180         -DENABLE_TIZEN_DESKTOP_BROWSING=On \
181 %endif
182         -DCMAKE_CXX_ARCHIVE_APPEND="<CMAKE_AR> ruT <TARGET> <LINK_FLAGS> <OBJECTS>" \
183         -DCMAKE_CXX_ARCHIVE_CREATE="<CMAKE_AR> cruT <TARGET> <LINK_FLAGS> <OBJECTS>"
184     make %{?_smp_mflags}
185 else
186     make %{MAKE_OPTION} %{?_smp_mflags}
187 fi
188
189 %install
190 rm -rf %{buildroot}
191
192 export WEBKIT_BUILD_DIR=%{WEBKIT_BUILD_DIR}
193 if [ -z "$WEBKIT_BUILD_DIR" -o "{WEBKIT_BUILD_DIR}" == "${WEBKIT_BUILD_DIR#%}" ]
194 then
195     export WEBKIT_BUILD_DIR="BuildWK2-%{EFL_TARGET}"
196 fi
197
198 cd $WEBKIT_BUILD_DIR
199 %make_install
200 mkdir -p %{buildroot}/usr/share/edje
201 cp ./bin/MiniBrowser %{buildroot}%{_bindir}/MiniBrowser
202
203 %post
204 #!/bin/sh
205 #change file permissions
206 # 1. libraries
207 chmod 644 %{_libdir}/libewebkit2.so
208 # 2. Resources
209 chmod 644 /usr/share/edje/webkit.edj
210
211 %postun
212
213 %files
214 %manifest %{name}.manifest
215 %defattr(-,root,root,-)
216 %{_libdir}/*.so*
217 %{_bindir}/*
218 /usr/share/*
219
220 %files devel
221 %manifest %{name}.manifest
222 %defattr(-,root,root,-)
223 %{_includedir}/*
224 %{_libdir}/pkgconfig/*
225
226 %files test
227 %manifest %{name}.manifest
228 %defattr(-,root,root,-)
229 %{_bindir}/MiniBrowser