228278e8147c4f70c8e9e7beeda6d74a05cf3731
[platform/core/uifw/dali-adaptor.git] / build / tizen / deps-check.cmake
1 INCLUDE( common.cmake )
2
3 # Options
4 #           OPTION, VARIABLE, LIST_OF_VALUES, DESCRIPTION
5 ARG_ENABLE( ENABLE_EXPORTALL enable_exportall 1 "Enables the exporting of all the symbols in the library" )
6 ARG_ENABLE( ENABLE_DEBUG enable_debug ${ENABLE_VAL} "Turns on debugging" )
7 ARG_ENABLE( ENABLE_SHADERBINCACHE enable_shaderbincache ${ENABLE_VAL} "Enables shader binary cache" )
8 ARG_ENABLE( ENABLE_NETWORKLOGGING enable_networklogging ${ENABLE_VAL} "Enables network for debug tool" )
9
10 # Currently, dali-adaptor requires appfw on Tizen
11 # and does not require it on Ubuntu.
12 # So we should be able to enable/disable this option for dali-adaptor.
13 ARG_ENABLE( ENABLE_APPFW enable_appfw ${ENABLE_VAL} "Builds with Tizen App framework libraries, off by default" )
14
15 # Tizen Profile option
16 ARG_ENABLE( ENABLE_PROFILE enable_profile "${ENABLE_VAL};UBUNTU" "Select the variant of tizen" )
17
18 # Tizen Major version
19 ARG_ENABLE( ENABLE_TIZEN_MAJOR_VERSION enable_tizen_major_version "${ENABLE_VAL};0" "Specify the Tizen Major version for backwards compatibility" )
20
21 ARG_ENABLE( ENABLE_FEEDBACK enable_feedback 1 "Enable feedback plugin" )
22
23 ARG_ENABLE( ENABLE_WAYLAND enable_wayland "${ENABLE_VAL}" "Build on Wayland" )
24 ARG_ENABLE( ENABLE_ECORE_WAYLAND2 enable_ecore_wayland2 "${ENABLE_VAL}" "Build on Ecore Wayland2" )
25 ARG_ENABLE( ENABLE_RENAME_SO enable_rename_so "${ENABLE_VAL};1" "Specify whether so file is renamed or not" )
26 ARG_ENABLE( ENABLE_COVERAGE enable_coverage "${ENABLE_VAL}" "Enables coverage" )
27
28 # help option
29 ARG_ENABLE( PRINT_HELP print_help "${ENABLE_VAL}" "Prints help" )
30
31 IF( print_help )
32   MESSAGE( STATUS ${HELP_ENABLES} )
33   EXIT()
34 ENDIF()
35
36 SET( FREETYPE_REQUIRED 9.16.3 )
37 SET( FREETYPE_BITMAP_SUPPORT_VERSION 17.1.11 )
38
39 IF( NOT enable_profile )
40   SET( enable_profile UBUNTU )
41 ENDIF()
42
43 # Test for profile and exit if something wrong
44 SET( VALID_PROFILES COMMON MOBILE WEARABLE TV IVI UBUNTU)
45 LIST( FIND VALID_PROFILES ${enable_profile} RESULT )
46 IF( RESULT EQUAL -1 )
47   MESSAGE( FATAL_ERROR "Invalid profile!" )
48 ENDIF()
49
50 # Defines profile specific variable
51 SET( ${enable_profile}_PROFILE 1 )
52
53 # checking all possibly used modules (required and optionals)
54 CHECK_MODULE_AND_SET( EXIF exif exif_available )
55 CHECK_MODULE_AND_SET( FREETYPE freetype2>=${FREETYPE_REQUIRED} freetype_available )
56 CHECK_MODULE_AND_SET( FREETYPE_BITMAP_SUPPORT freetype2>=${FREETYPE_BITMAP_SUPPORT_VERSION} freetype_bitmap_support)
57 CHECK_MODULE_AND_SET( FONT_CONFIG fontconfig fontconfig_available )
58 CHECK_MODULE_AND_SET( PNG libpng [] )
59 CHECK_MODULE_AND_SET( LIBEXIF libexif [] )
60 CHECK_MODULE_AND_SET( LIBDRM libdrm [] )
61 CHECK_MODULE_AND_SET( LIBCURL libcurl [] )
62 CHECK_MODULE_AND_SET( HARFBUZZ harfbuzz [] )
63 CHECK_MODULE_AND_SET( FRIBIDI fribidi [] )
64 CHECK_MODULE_AND_SET( CAIRO cairo [] )
65 CHECK_MODULE_AND_SET( EVAS evas [] )
66 CHECK_MODULE_AND_SET( TTRACE ttrace ENABLE_TTRACE )
67 CHECK_MODULE_AND_SET( ECORE ecore [] )
68 CHECK_MODULE_AND_SET( ECORE_IPC ecore-ipc [] )
69 CHECK_MODULE_AND_SET( ECORE_IMF ecore-imf>=1.13 ecore_imf_1_13 )
70 CHECK_MODULE_AND_SET( ELDBUS eldbus eldbus_available )
71 CHECK_MODULE_AND_SET( TPKP_CURL tpkp-curl tpkp_curl_available )
72 CHECK_MODULE_AND_SET( UTILX utilX utilx_available )
73 CHECK_MODULE_AND_SET( OPENGLES20 glesv2 [] )
74 CHECK_MODULE_AND_SET( EGL egl [] )
75 CHECK_MODULE_AND_SET( DLOG dlog [] )
76 CHECK_MODULE_AND_SET( TTS tts [] )
77 CHECK_MODULE_AND_SET( VCONF vconf [] )
78
79 CHECK_MODULE_AND_SET( CAPI_SYSTEM_INFO capi-system-info [] )
80 CHECK_MODULE_AND_SET( CAPI_SYSTEM_SENSOR capi-system-sensor capi_system_sensor_support )
81 CHECK_MODULE_AND_SET( CAPI_SYSTEM_SYSTEM_SETTINGS capi-system-system-settings [] )
82 CHECK_MODULE_AND_SET( CAPI_APPFW_APPLICATION capi-appfw-application [] )
83
84 CHECK_MODULE_AND_SET( ELEMENTARY elementary [] )
85 CHECK_MODULE_AND_SET( BUNDLE bundle [] )
86 CHECK_MODULE_AND_SET( SCREENCONNECTORPROVIDER screen_connector_provider [] )
87 CHECK_MODULE_AND_SET( APPFW_WATCH capi-appfw-watch-application watch_available )
88 CHECK_MODULE_AND_SET( APPCORE_WATCH appcore-watch [] )
89
90 CHECK_MODULE_AND_SET( CAPI_APPFW_APPLICATION appcore-ui [] )
91 CHECK_MODULE_AND_SET( CAPI_APPFW_WIDGET_BASE appcore-widget-base [] )
92 CHECK_MODULE_AND_SET( CAPI_APPFW_COMMON capi-appfw-app-common [] )
93 CHECK_MODULE_AND_SET( CAPI_APPFW_CONTROL capi-appfw-app-control [] )
94
95 CHECK_MODULE_AND_SET( DALICORE dali-core [] )
96
97 IF( enable_wayland )
98   IF( enable_ecore_wayland2 )
99     PKG_CHECK_MODULES(WAYLAND ecore-wl2 egl wayland-egl wayland-egl-tizen wayland-client>=1.2.0 xkbcommon libtbm )
100   ELSE()
101     PKG_CHECK_MODULES(WAYLAND ecore-wayland egl wayland-egl wayland-client>=1.2.0 xkbcommon libtbm)
102   ENDIF()
103   SET(WAYLAND 1)
104 ELSE()
105   CHECK_MODULE_AND_SET( ECORE_X ecore-x DALI_USE_ECORE_X11 [] )
106   CHECK_MODULE_AND_SET( X11 x11 DALI_USE_X11 [] )
107 ENDIF()
108
109 CHECK_MODULE_AND_SET( WAYLAND_EXTENSION xdg-shell-client text-client input-method-client [] )
110
111 # BUILD CONDITIONS
112 IF( watch_available AND WEARABLE_PROFILE )
113   ADD_DEFINITIONS( -DAPPCORE_WATCH_AVAILABLE )
114 ENDIF()
115
116 IF( eldbus_available )
117   SET(DALI_ELDBUS_AVAILABLE 1)
118   ADD_DEFINITIONS( -DDALI_ELDBUS_AVAILABLE )
119 ENDIF()
120
121 IF( tpkp_curl_available )
122   ADD_DEFINITIONS( -DTPK_CURL_ENABLED )
123 ENDIF()
124
125 ADD_DEFINITIONS( -DPLATFORM_TIZEN )
126
127 IF( enable_debug )
128   ADD_DEFINITIONS( -DDEBUG_ENABLED )
129   SET( ENABLE_EXPORTALL ON )
130 ENDIF()
131
132 IF( NOT ${ENABLE_EXPORTALL} )
133   ADD_DEFINITIONS( "-fvisibility=hidden -DHIDE_DALI_INTERNALS" )
134 ENDIF()
135
136 IF( enable_shaderbincache )
137   ADD_DEFINITIONS( -DSHADERBIN_CACHE_ENABLED )
138 ENDIF()
139
140 IF( enable_networklogging )
141   ADD_DEFINITIONS( -DNETWORK_LOGGING_ENABLED )
142 ENDIF()
143
144 IF( watch_available AND WEARABLE_PROFILE )
145   ADD_DEFINITIONS( -DAPPCORE_WATCH_AVAILABLE )
146 ENDIF()
147
148 IF( capi_system_sensor_support AND (NOT UBUNTU_PROFILE) )
149   ADD_DEFINITIONS( -DCAPI_SYSTEM_SENSOR_SUPPORT )
150 ENDIF()
151
152 IF( enable_appfw AND (enable_tizen_major_version EQUAL 3) )
153   ADD_DEFINITIONS( -DWIDGET_AVAILABLE )
154 ENDIF()
155
156 IF( enable_wayland AND (NOT COMMON_PROFILE) )
157   PKG_CHECK_MODULES( WAYLAND_EXTENSION [xdg-shell-client text-client input-method-client] )
158 ENDIF()
159
160 IF( freetype_bitmap_support )
161   ADD_DEFINITIONS( -DFREETYPE_BITMAP_SUPPORT )
162 ENDIF()
163
164 IF( ENABLE_COVERAGE OR "$ENV{CXXFLAGS}" MATCHES --coverage )
165   ADD_COMPILE_OPTIONS( --coverage )
166   SET(ENABLE_COVERAGE ON)
167   SET(COVERAGE --coverage)
168 ENDIF()
169
170 IF( DEFINED ENV{DALI_DATA_RW_DIR} )
171   SET( dataReadWriteDir $ENV{DALI_DATA_RW_DIR} )
172 ELSE()
173   SET( dataReadWriteDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
174 ENDIF()
175
176 IF( DEFINED ENV{DALI_DATA_RO_DIR )
177   SET( dataReadOnlyDir $ENV{DALI_DATA_RO_DIR} )
178 ELSE()
179   SET( dataReadOnlyDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
180 ENDIF()
181
182 IF( DEFINED ENV{TIZEN_PLATFORM_CONFIG_SUPPORTED} )
183   SET( tizenPlatformConfigSupported $ENV{TIZEN_PLATFORM_CONFIG_SUPPORTED} )
184   SET( TIZEN_PLATFORM_CONFIG_SUPPORTED_LOGMSG "YES" )
185 ELSE()
186   SET( tizenPlatformConfigSupported 0 )
187   SET( TIZEN_PLATFORM_CONFIG_SUPPORTED_LOGMSG "NO" )
188 ENDIF()
189
190 IF( DEFINED ENV{FONT_CONFIGURATION_FILE} )
191   SET( fontConfigurationFile $ENV{FONT_CONFIGURATION_FILE} )
192 ENDIF()
193
194 IF( UBUNTU_PROFILE )
195   SET( cachePath $ENV{HOME} )
196 ELSE()
197   SET( cachePath /home/owner )
198 ENDIF()
199
200 #######################################################
201
202 ADD_DEFINITIONS( -DDALI_PROFILE_${enable_profile})
203 SET( DALI_PROFILE_CFLAGS -DDALI_PROFILE_${enable_profile} )
204
205 # Platforms with highp shader support can use vector based text
206 CONDITIONAL( ENABLE_VECTOR_BASED_TEXT_RENDERING UBUNTU_PROFILE )
207 CONDITIONAL( WAYLAND enable_wayland )
208
209 # set lowercase profile name
210 STRING( TOLOWER ${ENABLE_PROFILE} PROFILE_LCASE )
211
212 ##########################################################3
213 # Default CFLAGS of packages
214 #
215 SET( DALI_CFLAGS
216   ${DALI_ADAPTOR_CFLAGS}
217   ${DALICORE_CFLAGS}
218   ${OPENGLES20_CFLAGS}
219   ${FREETYPE_CFLAGS}
220   ${FONTCONFIG_CFLAGS}
221   ${CAIRO_CFLAGS}
222   ${PNG_CFLAGS}
223   ${DLOG_CFLAGS}
224   ${VCONF_CFLAGS}
225   ${EXIF_CFLAGS}
226   ${MMFSOUND_CFLAGS}
227   ${TTS_CFLAGS}
228   ${CAPI_SYSTEM_SENSOR_CFLAGS}
229   ${LIBDRM_CFLAGS}
230   ${LIBEXIF_CFLAGS}
231   ${LIBCURL_CFLAGS}
232   ${TPKP_CURL_CFLAGS}
233   ${UTILX_CFLAGS}
234   -Wall
235   -DDALI_COMPILATION
236   -DDALI_ADAPTOR_COMPILATION
237 )
238
239 # Default set of linked librarires
240 SET( DALI_LDFLAGS
241   ${DALICORE_LDFLAGS}
242   ${OPENGLES20_LDFLAGS}
243   ${FREETYPE_LDFLAGS}
244   ${FONTCONFIG_LDFLAGS}
245   ${CAIRO_LDFLAGS}
246   ${PNG_LDFLAGS}
247   ${DLOG_LDFLAGS}
248   ${VCONF_LDFLAGS}
249   ${EXIF_LDFLAGS}
250   ${TTS_LDFLAGS}
251   ${CAPI_SYSTEM_SENSOR_LDFLAGS}
252   ${LIBDRM_LDFLAGS}
253   ${LIBEXIF_LDFLAGS}
254   ${LIBCURL_LDFLAGS}
255   ${LIBCRYPTO_LDFLAGS}
256   ${HARFBUZZ_LDFLAGS}
257   ${TPKP_CURL_LDFLAGS}
258   ${UTILX_LDFLAGS}
259   -lgif
260   -lpthread
261   -lturbojpeg
262   -ljpeg
263 )
264
265 # EVAS used indicator
266 SET( DALI_CFLAGS ${DALI_CFLAGS}
267   ${EVAS_CFLAGS}
268   ${ECORE_CFLAGS}
269   ${ECORE_IPC_CFLAGS}
270   ${ELDBUS_CFLAGS}
271 )
272
273 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
274   ${ECORE_IPC_LDFLAGS}
275   ${ELDBUS_LDFLAGS}
276 )
277
278 # APPFW
279 IF( enable_appfw )
280   SET( DALI_CFLAGS ${DALI_CFLAGS}
281     ${CAPI_APPFW_APPLICATION_CFLAGS}
282     ${CAPI_SYSTEM_SYSTEM_SETTINGS_CFLAGS}
283     ${CAPI_SYSTEM_INFO_CFLAGS}
284     ${TTS_CFLAGS}
285     ${SENSOR_CFLAGS}
286     ${BUNDLE_CFLAGS}
287     ${CAPI_APPFW_COMMON_CFLAGS}
288     ${CAPI_APPFW_CONTROL_CFLAGS}
289     ${CAPI_APPFW_WIDGET_BASE_CFLAGS}
290     ${ECORE_IMF_CFLAGS}
291     ${FRIBIDI_CFLAGS}
292   )
293
294   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
295     ${CAPI_APPFW_APPLICATION_LDFLAGS}
296     ${CAPI_SYSTEM_SYSTEM_SETTINGS_LDFLAGS}
297     ${CAPI_SYSTEM_INFO_LDFLAGS}
298     ${TTS_LDFLAGS}
299     ${SENSOR_LDFLAGS}
300     ${BUNDLE_LDFLAGS}
301     ${CAPI_APPFW_COMMON_LDFLAGS}
302     ${CAPI_APPFW_CONTROL_LDFLAGS}
303     ${CAPI_APPFW_WIDGET_BASE_LDFLAGS}
304     ${ECORE_IMF_LDFLAGS}
305     ${FRIBIDI_LDFLAGS}
306   )
307 ELSE()
308   SET( DALI_CFLAGS ${DALI_CFLAGS}
309     ${ELEMENTARY_CFLAGS}
310   )
311
312   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
313     ${ELEMENTARY_LDFLAGS}
314   )
315 ENDIF()
316
317 # WAYLAND
318 IF( WAYLAND )
319   SET( DALI_CFLAGS ${DALI_CFLAGS}
320     -DWL_EGL_PLATFORM
321     ${WAYLAND_CFLAGS}
322   )
323   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
324     ${WAYLAND_LDFLAGS}
325   )
326 ELSE()
327   SET( DALI_CFLAGS ${DALI_CFLAGS}
328        ${X11_CFLAGS}
329        )
330   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
331        ${X11_LDFLAGS}
332        ${ECORE_X_LDFLAGS}
333        )
334 ENDIF()
335
336 # COMMON PROFILE
337 IF( COMMON_PROFILE )
338   SET( DALI_CFLAGS ${DALI_CFLAGS} ${HAPTIC_CFLAGS} )
339 ENDIF()
340
341 # MOBILE PROFILE
342 IF( MOBILE_PROFILE )
343   SET( DALI_CFLAGS ${DALI_CFLAGS}
344       ${DEVICED_CFLAGS}
345       ${EFL_ASSIST_CFLAGS}
346       ${NATIVE_BUFFER_CFLAGS}
347       ${NATIVE_BUFFER_POOL_CFLAGS}
348       )
349
350   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
351       ${EFL_ASSIST_LDFLAGS}
352       ${NATIVE_BUFFER_LDFLAGS}
353       ${NATIVE_BUFFER_POOL_LDFLAGS}
354   )
355 ENDIF()
356
357 # WEARABLE PROFILE
358 IF( WEARABLE_PROFILE )
359   SET( DALI_CFLAGS ${DALI_CFLAGS}
360     ${HAPTIC_CFLAGS}
361     ${EFL_ASSIST_CFLAGS}
362     ${SCREENCONNECTORPROVIDER_CFLAGS}
363     ${APPCORE_WATCH_CFLAGS}
364   )
365   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
366     ${SCREENCONNECTORPROVIDER_LDFLAGS}
367     ${APPCORE_WATCH_LDFLAGS}
368   )
369 ENDIF()
370
371 # TV PROFILE
372 IF( TV_PROFILE )
373   SET( DALI_CFLAGS ${DALI_CFLAGS} ${HAPTIC_CFLAGS} )
374 ENDIF()
375
376 # IVI PROFILE
377 IF( IVI_PROFILE )
378   SET( DALI_CFLAGS ${DALI_CFLAGS}
379       ${DEVICED_CFLAGS}
380       ${EFL_ASSIST_CFLAGS}
381       ${NATIVE_BUFFER_CFLAGS}
382       ${NATIVE_BUFFER_POOL_CFLAGS}
383   )
384   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
385       ${EFL_ASSIST_LDFLAGS}
386       ${NATIVE_BUFFER_LDFLAGS}
387       ${NATIVE_BUFFER_POOL_LDFLAGS}
388   )
389 ENDIF()
390
391 # UBUNTU PROFILE
392 IF( UBUNTU_PROFILE )
393   SET( DALI_CFLAGS ${DALI_CFLAGS} -fPIC )
394   SET( DALI_LDFLAGS ${DALI_LDFLAGS} -ljpeg )
395 ENDIF()
396
397 IF( NOT COMMON_PROFILE )
398   ADD_DEFINITIONS( -DWAYLAND_EXTENSIONS_SUPPORTED )
399 ENDIF()
400
401 SET( daliDefaultThemeDir ${dataReadWriteDir}/theme/ )
402
403 SET( fontPreloadedPath $ENV{FONT_PRELOADED_PATH} )
404 SET( fontDownloadedPath $ENV{FONT_DOWNLOADED_PATH} )
405 SET( fontApplicationPath $ENV{FONT_APPLICATION_PATH} )
406
407 # Configure paths
408 ADD_DEFINITIONS(  -DDALI_DATA_RW_DIR="\"${daliReadWriteDir}\""
409                   -DDALI_DATA_RO_DIR="\"${daliReadOnlyDir}\""
410                   -DDALI_DEFAULT_FONT_CACHE_DIR="\"${daliDefaultFontCacheDir}\""
411                   -DDALI_USER_FONT_CACHE_DIR="\"${daliUserFontCacheDir}\""
412                   -DDALI_SHADERBIN_DIR="\"${daliShaderbinCacheDir}\""
413                   -DDALI_DEFAULT_THEME_DIR="\"${daliDefaultThemeDir}\""
414                   -DFONT_PRELOADED_PATH="\"${fontPreloadedPath}\""
415                   -DFONT_DOWNLOADED_PATH="\"${fontDownloadedPath}\""
416                   -DFONT_APPLICATION_PATH="\"${fontApplicationPath}\""
417                   -DFONT_CONFIGURATION_FILE="\"${fontConfigurationFile}\""
418                   -DTIZEN_PLATFORM_CONFIG_SUPPORTED=${tizenPlatformConfigSupported}
419 )