1 INCLUDE( common.cmake )
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" )
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" )
15 # Tizen Profile option
16 ARG_ENABLE( ENABLE_PROFILE enable_profile "${ENABLE_VAL};UBUNTU" "Select the variant of tizen" )
19 ARG_ENABLE( ENABLE_TIZEN_MAJOR_VERSION enable_tizen_major_version "${ENABLE_VAL};0" "Specify the Tizen Major version for backwards compatibility" )
21 ARG_ENABLE( ENABLE_FEEDBACK enable_feedback 1 "Enable feedback plugin" )
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" )
29 ARG_ENABLE( PRINT_HELP print_help "${ENABLE_VAL}" "Prints help" )
32 MESSAGE( STATUS ${HELP_ENABLES} )
36 SET( FREETYPE_REQUIRED 9.16.3 )
37 SET( FREETYPE_BITMAP_SUPPORT_VERSION 17.1.11 )
39 IF( NOT enable_profile )
40 SET( enable_profile UBUNTU )
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 )
47 MESSAGE( FATAL_ERROR "Invalid profile!" )
50 # Defines profile specific variable
51 SET( ${enable_profile}_PROFILE 1 )
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 [] )
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 [] )
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 [] )
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 [] )
95 CHECK_MODULE_AND_SET( DALICORE dali-core [] )
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 )
101 PKG_CHECK_MODULES(WAYLAND ecore-wayland egl wayland-egl wayland-client>=1.2.0 xkbcommon libtbm)
105 CHECK_MODULE_AND_SET( ECORE_X ecore-x DALI_USE_ECORE_X11 [] )
106 CHECK_MODULE_AND_SET( X11 x11 DALI_USE_X11 [] )
109 CHECK_MODULE_AND_SET( WAYLAND_EXTENSION xdg-shell-client text-client input-method-client [] )
112 IF( watch_available AND WEARABLE_PROFILE )
113 ADD_DEFINITIONS( -DAPPCORE_WATCH_AVAILABLE )
116 IF( eldbus_available )
117 SET(DALI_ELDBUS_AVAILABLE 1)
118 ADD_DEFINITIONS( -DDALI_ELDBUS_AVAILABLE )
121 IF( tpkp_curl_available )
122 ADD_DEFINITIONS( -DTPK_CURL_ENABLED )
125 ADD_DEFINITIONS( -DPLATFORM_TIZEN )
128 ADD_DEFINITIONS( -DDEBUG_ENABLED )
129 SET( ENABLE_EXPORTALL ON )
132 IF( NOT ${ENABLE_EXPORTALL} )
133 ADD_DEFINITIONS( "-fvisibility=hidden -DHIDE_DALI_INTERNALS" )
137 ADD_DEFINITIONS( -DTRACE_ENABLED )
140 IF( enable_shaderbincache )
141 ADD_DEFINITIONS( -DSHADERBIN_CACHE_ENABLED )
144 IF( enable_networklogging )
145 ADD_DEFINITIONS( -DNETWORK_LOGGING_ENABLED )
149 ADD_DEFINITIONS( -DECORE_IMF_1_13 )
152 IF( watch_available AND WEARABLE_PROFILE )
153 ADD_DEFINITIONS( -DAPPCORE_WATCH_AVAILABLE )
156 IF( capi_system_sensor_support AND (NOT UBUNTU_PROFILE) )
157 ADD_DEFINITIONS( -DCAPI_SYSTEM_SENSOR_SUPPORT )
160 IF( enable_appfw AND (enable_tizen_major_version EQUAL 3) )
161 ADD_DEFINITIONS( -DWIDGET_AVAILABLE )
164 IF( enable_wayland AND (NOT COMMON_PROFILE) )
165 PKG_CHECK_MODULES( WAYLAND_EXTENSION [xdg-shell-client text-client input-method-client] )
168 IF( freetype_bitmap_support )
169 ADD_DEFINITIONS( -DFREETYPE_BITMAP_SUPPORT )
172 IF( ENABLE_COVERAGE OR "$ENV{CXXFLAGS}" MATCHES --coverage )
173 ADD_COMPILE_OPTIONS( --coverage )
174 SET(ENABLE_COVERAGE ON)
175 SET(COVERAGE --coverage)
178 IF( $ENV{DALI_DATA_RW_DIR} )
179 SET( dataReadWriteDir $ENV{DALI_DATA_RW_DIR} )
181 SET( dataReadWriteDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
184 IF( $ENV{DALI_DATA_RO_DIR} )
185 SET( dataReadOnlyDir $ENV{DALI_DATA_RO_DIR} )
187 SET( dataReadOnlyDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
190 IF( $ENV{TIZEN_PLATFORM_CONFIG_SUPPORTED} )
191 SET( tizenPlatformConfigSupported $ENV{TIZEN_PLATFORM_CONFIG_SUPPORTED} )
193 SET( tizenPlatformConfigSupported 0 )
196 IF( $ENV{FONT_CONFIGURATION_FILE} )
197 SET( fontConfigurationFile $ENV{FONT_CONFIGURATION_FILE} )
201 SET( cachePath $ENV{HOME} )
203 SET( cachePath /home/owner )
206 #######################################################
208 ADD_DEFINITIONS( -DDALI_PROFILE_${enable_profile})
209 SET( DALI_PROFILE_CFLAGS -DDALI_PROFILE_${enable_profile} )
211 # Platforms with highp shader support can use vector based text
212 CONDITIONAL( ENABLE_VECTOR_BASED_TEXT_RENDERING UBUNTU_PROFILE )
213 CONDITIONAL( WAYLAND enable_wayland )
215 # set lowercase profile name
216 STRING( TOLOWER ${ENABLE_PROFILE} PROFILE_LCASE )
218 ##########################################################3
219 # Default CFLAGS of packages
222 ${DALI_ADAPTOR_CFLAGS}
234 ${CAPI_SYSTEM_SENSOR_CFLAGS}
242 -DDALI_ADAPTOR_COMPILATION
245 # Default set of linked librarires
248 ${OPENGLES20_LDFLAGS}
250 ${FONTCONFIG_LDFLAGS}
257 ${CAPI_SYSTEM_SENSOR_LDFLAGS}
271 # EVAS used indicator
272 SET( DALI_CFLAGS ${DALI_CFLAGS}
279 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
286 SET( DALI_CFLAGS ${DALI_CFLAGS}
287 ${CAPI_APPFW_APPLICATION_CFLAGS}
288 ${CAPI_SYSTEM_SYSTEM_SETTINGS_CFLAGS}
289 ${CAPI_SYSTEM_INFO_CFLAGS}
293 ${CAPI_APPFW_COMMON_CFLAGS}
294 ${CAPI_APPFW_CONTROL_CFLAGS}
295 ${CAPI_APPFW_WIDGET_BASE_CFLAGS}
300 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
301 ${CAPI_APPFW_APPLICATION_LDFLAGS}
302 ${CAPI_SYSTEM_SYSTEM_SETTINGS_LDFLAGS}
303 ${CAPI_SYSTEM_INFO_LDFLAGS}
307 ${CAPI_APPFW_COMMON_LDFLAGS}
308 ${CAPI_APPFW_CONTROL_LDFLAGS}
309 ${CAPI_APPFW_WIDGET_BASE_LDFLAGS}
314 SET( DALI_CFLAGS ${DALI_CFLAGS}
318 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
319 ${ELEMENTARY_LDFLAGS}
325 SET( DALI_CFLAGS ${DALI_CFLAGS}
329 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
333 SET( DALI_CFLAGS ${DALI_CFLAGS}
336 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
344 SET( DALI_CFLAGS ${DALI_CFLAGS} ${HAPTIC_CFLAGS} )
349 SET( DALI_CFLAGS ${DALI_CFLAGS}
352 ${NATIVE_BUFFER_CFLAGS}
353 ${NATIVE_BUFFER_POOL_CFLAGS}
356 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
357 ${EFL_ASSIST_LDFLAGS}
358 ${NATIVE_BUFFER_LDFLAGS}
359 ${NATIVE_BUFFER_POOL_LDFLAGS}
364 IF( WEARABLE_PROFILE )
365 SET( DALI_CFLAGS ${DALI_CFLAGS}
368 ${SCREENCONNECTORPROVIDER_CFLAGS}
369 ${APPCORE_WATCH_CFLAGS}
371 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
372 ${SCREENCONNECTORPROVIDER_LDFLAGS}
373 ${APPCORE_WATCH_LDFLAGS}
379 SET( DALI_CFLAGS ${DALI_CFLAGS} ${HAPTIC_CFLAGS} )
384 SET( DALI_CFLAGS ${DALI_CFLAGS}
387 ${NATIVE_BUFFER_CFLAGS}
388 ${NATIVE_BUFFER_POOL_CFLAGS}
390 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
391 ${EFL_ASSIST_LDFLAGS}
392 ${NATIVE_BUFFER_LDFLAGS}
393 ${NATIVE_BUFFER_POOL_LDFLAGS}
399 SET( DALI_CFLAGS ${DALI_CFLAGS} -fPIC )
400 SET( DALI_LDFLAGS ${DALI_LDFLAGS} -ljpeg )
403 IF( NOT COMMON_PROFILE )
404 ADD_DEFINITIONS( -DWAYLAND_EXTENSIONS_SUPPORTED )
407 SET( daliDefaultThemeDir ${dataReadWriteDir}/theme/ )
409 SET( fontPreloadedPath $ENV{FONT_PRELOADED_PATH} )
410 SET( fontDownloadedPath $ENV{FONT_DOWNLOADED_PATH} )
411 SET( fontApplicationPath $ENV{FONT_APPLICATION_PATH} )
414 ADD_DEFINITIONS( -DDALI_DATA_RW_DIR="\"${daliReadWriteDir}\""
415 -DDALI_DATA_RO_DIR="\"${daliReadOnlyDir}\""
416 -DDALI_DEFAULT_FONT_CACHE_DIR="\"${daliDefaultFontCacheDir}\""
417 -DDALI_USER_FONT_CACHE_DIR="\"${daliUserFontCacheDir}\""
418 -DDALI_SHADERBIN_DIR="\"${daliShaderbinCacheDir}\""
419 -DDALI_DEFAULT_THEME_DIR="\"${daliDefaultThemeDir}\""
420 -DFONT_PRELOADED_PATH="\"${fontPreloadedPath}\""
421 -DFONT_DOWNLOADED_PATH="\"${fontDownloadedPath}\""
422 -DFONT_APPLICATION_PATH="\"${fontApplicationPath}\""
423 -DFONT_CONFIGURATION_FILE="\"${fontConfigurationFile}\""
424 -DTIZEN_PLATFORM_CONFIG_SUPPORTED=${tizenPlatformConfigSupported}