2 # Copyright 2012 Samsung Electronics Co., Ltd
4 # Licensed under the Flora License, Version 1.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.tizenopensource.org/license
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
16 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
21 src/browser-window.cpp
22 src/browser-utility.cpp
24 src/browser-common-view.cpp
25 src/browser-data-manager.cpp
26 src/browser-policy-client/browser-policy-decision-maker.cpp
27 src/browser-extension/browser-geolocation.cpp
28 src/browser-extension/browser-find-word.cpp
29 src/browser-extension/browser-scissorbox-view.cpp
30 src/browser-view/browser-view.cpp
31 src/browser-view/browser-context-menu.cpp
32 src/browser-multi-window/browser-multi-window-view.cpp
33 src/data-network/browser-network-manager.cpp
34 src/browser-bookmark/browser-bookmark-view.cpp
35 src/browser-bookmark/browser-add-to-bookmark-view.cpp
36 src/browser-bookmark/browser-new-folder-view.cpp
37 src/browser-bookmark/browser-select-folder-view.cpp
38 src/browser-history/browser-history-layout.cpp
39 src/database/browser-bookmark-db.cpp
40 src/database/browser-user-agent-db.cpp
41 src/database/browser-history-db.cpp
42 src/database/browser-geolocation-db.cpp
43 src/browser-settings/browser-settings-class.cpp
44 src/browser-settings/browser-settings-main-view.cpp
45 src/browser-settings/browser-settings-edit-homepage-view.cpp
46 src/browser-settings/browser-settings-clear-data-view.cpp
47 src/browser-settings/browser-settings-website-setting.cpp
48 src/scissorbox/scissorbox.cpp
51 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
52 SET(CMAKE_BUILD_TYPE "Release")
53 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
54 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
56 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/include)
57 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
58 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/database)
59 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/data-network)
60 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/browser-bookmark)
61 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/browser-view)
62 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/most-visited-sites)
63 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/browser-multi-window)
64 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/browser-history)
65 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/browser-settings)
66 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/browser-policy-client)
67 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/browser-extension)
68 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/scissorbox)
70 # set pkg-config modules
71 INCLUDE(FindPkgConfig)
72 pkg_check_modules(pkgs REQUIRED
73 eina ecore evas ecore-evas edbus elementary
74 dlog db-util utilX ui-gadget-1 tapi
75 secure-storage libsoup-2.4 libxml-2.0 libssl capi-location-manager capi-system-haptic devman
76 accounts-svc ecore-input ecore-imf edje cairo ecore-x ewebkit2 appsvc capi-appfw-application
77 capi-appfw-app-manager capi-web-url-download shortcut syspopup-caller capi-network-connection pkgmgr
83 FIND_LIBRARY(LIB_GNUTLS gnutls)
84 FOREACH(flag ${pkgs_CFLAGS})
85 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
89 ADD_DEFINITIONS("-DUSE_META_TAG")
91 src/browser-extension/browser-meta-tag.cpp
96 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
97 SET(BINDIR "${PREFIX}/bin")
98 SET(RESDIR "${PREFIX}/res")
99 SET(DATADIR "${PREFIX}/data")
101 SET(EDJE_DIR "${RESDIR}/edje/")
102 SET(LOCALE_DIR "${RESDIR}/locale/")
103 SET(IMAGES_DIR "${RESDIR}/images/")
104 SET(HTML_DIR "${RESDIR}/html/")
105 SET(ICON_DIR "/opt/share/icons/default/small/")
107 SET(XML_DIR "${DATADIR}/xml/")
108 SET(OPML_DIR "${DATADIR}/opml/")
109 SET(DATABASE_DIR "${DATADIR}/db/")
110 SET(SCREENSHOTS_DIR "${DATADIR}/screenshots/")
111 SET(CERTIFICATES_TMP_FILE "${DATADIR}/certificates.crt")
112 SET(WEBKIT_SOUP_CACHE_DIR "${DATADIR}/cache/")
114 SET(CERTIFICATES_DIR "/opt/etc/ssl/certs/")
115 SET(DATABASENAME ".browser.db")
116 SET(HISTORY_DATABASENAME ".browser-history.db")
117 SET(CREDENTIAL_DATABASENAME ".browser-credential.db")
118 SET(MOST_VISITED_DATABASENAME ".browser-mostvisited.db")
119 SET(COOKIES_DATABASENAME ".browser-cookies.db")
120 SET(DESKTOP_DIR "/opt/share/applications")
122 -DPROJECT_NAME=\"${PROJECT_NAME}\"
123 -DDATABASENAME=\"${DATABASENAME}\"
124 -DHISTORY_DATABASENAME=\"${HISTORY_DATABASENAME}\"
125 -DCREDENTIAL_DATABASENAME=\"${CREDENTIAL_DATABASENAME}\"
126 -DSPEEDDIAL_DATABASENAME=\"${SPEEDDIAL_DATABASENAME}\"
127 -DCOOKIES_DATABASENAME=\"${COOKIES_DATABASENAME}\"
128 -DEDJE_DIR=\"${EDJE_DIR}\"
129 -DLOCALEDIR=\"${LOCALE_DIR}\"
130 -DIMAGES_DIR=\"${IMAGES_DIR}\"
131 -DSCREENSHOTS_DIR=\"${SCREENSHOTS_DIR}\"
132 -DHTML_DIR=\"${HTML_DIR}\"
133 -DXML_DIR=\"${XML_DIR}\"
134 -DOPML_DIR=\"${OPML_DIR}\"
135 -DCERTIFICATES_DIR=\"${CERTIFICATES_DIR}\"
136 -DCERTIFICATES_TMP_FILE=\"${CERTIFICATES_TMP_FILE}\"
137 -DDATABASE_DIR=\"${DATABASE_DIR}\"
138 -DWEBKIT_SOUP_CACHE_DIR=\"${WEBKIT_SOUP_CACHE_DIR}\"
139 -DLOG_TAG=\"org.tizen.browser\"
143 # Feature definitions
144 ADD_DEFINITIONS("-DBROWSER_SCROLLER_BOUNCING")
145 ADD_DEFINITIONS("-DSUPPORT_HLS")
147 # Feature definitions - Must be activated on the Tizen public
148 ADD_DEFINITIONS("-DTIZEN_PUBLIC")
149 ADD_DEFINITIONS("-DZOOM_BUTTON")
150 ADD_DEFINITIONS("-DHORIZONTAL_UI")
151 ADD_DEFINITIONS("-DGENLIST_SWEEP")
152 SET (USER_AGENT_VIEW ON)
154 ADD_DEFINITIONS("-DUSER_AGENT_VIEW")
156 src/browser-settings/browser-settings-user-agent-view.cpp
159 SET (FEATURE_MOST_VISITED_LIST ON)
160 IF (FEATURE_MOST_VISITED_LIST)
161 ADD_DEFINITIONS("-DFEATURE_MOST_VISITED_SITES")
163 src/most-visited-sites/most-visited-sites.cpp
164 src/most-visited-sites/add-to-most-visited-sites-view.cpp
165 src/database/most-visited-sites-db.cpp
169 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIC")
170 SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -fpie")
171 SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -fpie")
173 FIND_PROGRAM(UNAME NAMES uname)
174 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
175 IF("${ARCH}" STREQUAL "arm")
176 ADD_DEFINITIONS("-D_TARGET")
177 MESSAGE("add -D_TARGET")
178 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpie")
179 #SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mabi=aapcs-linux -march=armv7-a -msoft-float")
180 SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mabi=aapcs-linux -mfpu=vfp -mfloat-abi=softfp")
181 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
182 ENDIF("${ARCH}" STREQUAL "arm")
184 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -Wl -pie,--hash-style=both")
187 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
188 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${LIB_GNUTLS})
189 #TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ewebkit2)
192 ADD_CUSTOM_TARGET(browser-define.edj
193 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
194 ${CMAKE_SOURCE_DIR}/edc/browser-define.edc
195 ${CMAKE_BINARY_DIR}/edc/browser-define.edj
196 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-define.edc
198 ADD_DEPENDENCIES(${PROJECT_NAME} browser-define.edj)
200 # browser-view-progressbar.edj
201 ADD_CUSTOM_TARGET(browser-view-progressbar.edj
202 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
203 ${CMAKE_SOURCE_DIR}/edc/browser-view-progressbar.edc
204 ${CMAKE_BINARY_DIR}/edc/browser-view-progressbar.edj
205 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-view-progressbar.edc
207 ADD_DEPENDENCIES(${PROJECT_NAME} browser-view-progressbar.edj)
209 # browser-naviframe.edj
210 ADD_CUSTOM_TARGET(browser-naviframe.edj
211 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
212 ${CMAKE_SOURCE_DIR}/edc/browser-naviframe.edc
213 ${CMAKE_BINARY_DIR}/edc/browser-naviframe.edj
214 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-naviframe.edc
216 ADD_DEPENDENCIES(${PROJECT_NAME} browser-naviframe.edj)
219 ADD_CUSTOM_TARGET(browser-reader.edj
220 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
221 ${CMAKE_SOURCE_DIR}/edc/browser-reader.edc
222 ${CMAKE_BINARY_DIR}/edc/browser-reader.edj
223 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-reader.edc
225 ADD_DEPENDENCIES(${PROJECT_NAME} browser-reader.edj)
227 # browser-view-main.edj
228 ADD_CUSTOM_TARGET(browser-view-main.edj
229 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
230 ${CMAKE_SOURCE_DIR}/edc/browser-view-main.edc
231 ${CMAKE_BINARY_DIR}/edc/browser-view-main.edj
232 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-view-main.edc
234 ADD_DEPENDENCIES(${PROJECT_NAME} browser-view-main.edj)
236 # browser-view-url-layout.edj
237 ADD_CUSTOM_TARGET(browser-view-url-layout.edj
238 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
239 ${CMAKE_SOURCE_DIR}/edc/browser-view-url-layout.edc
240 ${CMAKE_BINARY_DIR}/edc/browser-view-url-layout.edj
241 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-view-url-layout.edc
243 ADD_DEPENDENCIES(${PROJECT_NAME} browser-view-url-layout.edj)
245 # browser-view-find-word-layout.edj
246 ADD_CUSTOM_TARGET(browser-view-find-word-layout.edj
247 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
248 ${CMAKE_SOURCE_DIR}/edc/browser-view-find-word-layout.edc
249 ${CMAKE_BINARY_DIR}/edc/browser-view-find-word-layout.edj
250 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-view-find-word-layout.edc
252 ADD_DEPENDENCIES(${PROJECT_NAME} browser-view-find-word-layout.edj)
254 # browser-view-control-bar.edj
255 ADD_CUSTOM_TARGET(browser-view-control-bar.edj
256 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
257 ${CMAKE_SOURCE_DIR}/edc/browser-view-control-bar.edc
258 ${CMAKE_BINARY_DIR}/edc/browser-view-control-bar.edj
259 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-view-control-bar.edc
261 ADD_DEPENDENCIES(${PROJECT_NAME} browser-view-control-bar.edj)
263 # browser-bookmark-view.edj
264 ADD_CUSTOM_TARGET(browser-bookmark-view.edj
265 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
266 ${CMAKE_SOURCE_DIR}/edc/browser-bookmark-view.edc
267 ${CMAKE_BINARY_DIR}/edc/browser-bookmark-view.edj
268 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-bookmark-view.edc
270 ADD_DEPENDENCIES(${PROJECT_NAME} browser-bookmark-view.edj)
272 # browser-most-visited.edj
273 ADD_CUSTOM_TARGET(browser-most-visited.edj
274 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
275 ${CMAKE_SOURCE_DIR}/edc/browser-most-visited.edc
276 ${CMAKE_BINARY_DIR}/edc/browser-most-visited.edj
277 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-most-visited.edc
279 ADD_DEPENDENCIES(${PROJECT_NAME} browser-most-visited.edj)
281 # browser-multi-window.edj
282 ADD_CUSTOM_TARGET(browser-multi-window.edj
283 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
284 ${CMAKE_SOURCE_DIR}/edc/browser-multi-window.edc
285 ${CMAKE_BINARY_DIR}/edc/browser-multi-window.edj
286 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-multi-window.edc
288 ADD_DEPENDENCIES(${PROJECT_NAME} browser-multi-window.edj)
290 # browser-predictive-history.edj
291 ADD_CUSTOM_TARGET(browser-predictive-history.edj
292 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
293 ${CMAKE_SOURCE_DIR}/edc/browser-predictive-history.edc
294 ${CMAKE_BINARY_DIR}/edc/browser-predictive-history.edj
295 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-predictive-history.edc
297 ADD_DEPENDENCIES(${PROJECT_NAME} browser-predictive-history.edj)
299 # most-visited-sites.edj
300 ADD_CUSTOM_TARGET(most-visited-sites.edj
301 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
302 ${CMAKE_SOURCE_DIR}/edc/most-visited-sites.edc
303 ${CMAKE_BINARY_DIR}/edc/most-visited-sites.edj
304 DEPENDS ${CMAKE_SOURCE_DIR}/edc/most-visited-sites.edc
306 ADD_DEPENDENCIES(${PROJECT_NAME} most-visited-sites.edj)
308 # browser-settings.edj
309 ADD_CUSTOM_TARGET(browser-settings.edj
310 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
311 ${CMAKE_SOURCE_DIR}/edc/browser-settings.edc
312 ${CMAKE_BINARY_DIR}/edc/browser-settings.edj
313 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-settings.edc
315 ADD_DEPENDENCIES(${PROJECT_NAME} browser-settings.edj)
318 ADD_CUSTOM_TARGET(browser-popup.edj
319 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
320 ${CMAKE_SOURCE_DIR}/edc/browser-popup.edc
321 ${CMAKE_BINARY_DIR}/edc/browser-popup.edj
322 DEPENDS ${CMAKE_SOURCE_DIR}/edc/browser-popup.edc
324 ADD_DEPENDENCIES(${PROJECT_NAME} browser-popup.edj)
327 INSTALL(PROGRAMS ${PROJECT_NAME} DESTINATION bin)
329 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-define.edj DESTINATION ${EDJE_DIR})
330 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-naviframe.edj DESTINATION ${EDJE_DIR})
331 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-view-main.edj DESTINATION ${EDJE_DIR})
332 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-view-progressbar.edj DESTINATION ${EDJE_DIR})
333 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-view-url-layout.edj DESTINATION ${EDJE_DIR})
334 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-view-find-word-layout.edj DESTINATION ${EDJE_DIR})
335 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-view-control-bar.edj DESTINATION ${EDJE_DIR})
336 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-bookmark-view.edj DESTINATION ${EDJE_DIR})
337 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-most-visited.edj DESTINATION ${EDJE_DIR})
338 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-multi-window.edj DESTINATION ${EDJE_DIR})
339 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-predictive-history.edj DESTINATION ${EDJE_DIR})
340 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/most-visited-sites.edj DESTINATION ${EDJE_DIR})
341 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-settings.edj DESTINATION ${EDJE_DIR})
342 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-reader.edj DESTINATION ${EDJE_DIR})
343 INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/browser-popup.edj DESTINATION ${EDJE_DIR})
346 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/images/install/ DESTINATION ${IMAGES_DIR}
351 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/html/ DESTINATION ${HTML_DIR}
352 FILES_MATCHING PATTERN "*.html"
355 # install empty directories
356 INSTALL(DIRECTORY DESTINATION ${DATABASE_DIR})
357 INSTALL(DIRECTORY DESTINATION ${XML_DIR})
358 INSTALL(DIRECTORY DESTINATION ${OPML_DIR})
359 INSTALL(DIRECTORY DESTINATION ${SCREENSHOTS_DIR})
360 INSTALL(DIRECTORY DESTINATION ${WEBKIT_SOUP_CACHE_DIR})
362 # install desktop file & icon
363 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/resource/org.tizen.${PROJECT_NAME}.desktop.in org.tizen.${PROJECT_NAME}.desktop)
364 INSTALL(FILES ${CMAKE_BINARY_DIR}/org.tizen.${PROJECT_NAME}.desktop DESTINATION ${DESKTOP_DIR})
365 INSTALL(FILES ${CMAKE_SOURCE_DIR}/resource/org.tizen.${PROJECT_NAME}.png DESTINATION ${ICON_DIR})
366 INSTALL(FILES ${CMAKE_SOURCE_DIR}/resource/default_0 DESTINATION ${SCREENSHOTS_DIR})
367 INSTALL(FILES ${CMAKE_SOURCE_DIR}/resource/default_1 DESTINATION ${SCREENSHOTS_DIR})
368 INSTALL(FILES ${CMAKE_SOURCE_DIR}/resource/default_2 DESTINATION ${SCREENSHOTS_DIR})
369 INSTALL(FILES ${CMAKE_SOURCE_DIR}/resource/default_3 DESTINATION ${SCREENSHOTS_DIR})
370 INSTALL(FILES ${CMAKE_SOURCE_DIR}/resource/default_application_icon.png DESTINATION "${DATADIR}/")
371 INSTALL(FILES ${CMAKE_SOURCE_DIR}/resource/config_sample.xml DESTINATION "${DATADIR}/")