Added an example to demonstrate the usage of the Dali Scene Loader library.
[platform/core/uifw/dali-demo.git] / build / tizen / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 3.8.2)
2
3 SET(CMAKE_C_STANDARD 99)
4 SET(CMAKE_CXX_STANDARD 17)
5 PROJECT(dali-demo C CXX)
6
7 SET(dali-demo_VERSION_MAJOR 1)
8 SET(dali-demo_VERSION_MINOR 0)
9
10 SET(GCC_COMPILER_VERSION_REQUIRED "6")
11 if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
12   if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS GCC_COMPILER_VERSION_REQUIRED)
13     message(FATAL_ERROR "The GCC required compiler version is " ${GCC_COMPILER_VERSION_REQUIRED})
14   endif()
15 endif()
16
17 # Define options to CMake
18 OPTION(ENABLE_EXPORTALL          "Enable Export all symbols" OFF)
19 OPTION(ENABLE_DEBUG              "Enable Debug" OFF)
20 OPTION(ENABLE_PKG_CONFIGURE      "Use pkgconfig" ON)
21 OPTION(INTERNATIONALIZATION      "Internationalization demo string names" ON)
22
23 SET(ROOT_SRC_DIR ${CMAKE_SOURCE_DIR}/../..)
24 SET(DEMO_SHARED ${CMAKE_SOURCE_DIR}/../../shared)
25
26 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
27
28 IF(DEFINED DALI_APP_DIR)
29   SET(BINDIR ${DALI_APP_DIR})
30 ELSE()
31   SET(BINDIR ${PREFIX}/bin)
32 ENDIF()
33
34 IF(DEFINED DALI_APP_RES_DIR)
35   SET(APP_DATA_RES_DIR ${DALI_APP_RES_DIR})
36 ELSE()
37   SET(APP_DATA_RES_DIR ${PREFIX}/share/com.samsung.dali-demo/res)
38 ENDIF()
39
40 MESSAGE( STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} )
41
42 IF(CMAKE_BUILD_TYPE MATCHES Debug)
43   SET( ENABLE_DEBUG ON )
44 ENDIF()
45
46 IF( ENABLE_DEBUG )
47   MESSAGE( STATUS "CMAKE_BUILD_TYPE: " Debug )
48   SET( ENABLE_EXPORTALL ON )
49 ELSE()
50   MESSAGE( STATUS "CMAKE_BUILD_TYPE: " Release )
51 ENDIF()
52
53 SET(RESOURCE_DIR ${ROOT_SRC_DIR}/resources)
54 SET(LOCAL_IMAGES_DIR ${RESOURCE_DIR}/images)
55 SET(LOCAL_GAME_DIR ${RESOURCE_DIR}/game)
56 SET(LOCAL_VIDEOS_DIR ${RESOURCE_DIR}/videos)
57 SET(LOCAL_MODELS_DIR ${RESOURCE_DIR}/models)
58 SET(LOCAL_SCRIPTS_DIR ${RESOURCE_DIR}/scripts)
59 SET(LOCAL_SHADERS_DIR ${RESOURCE_DIR}/shaders)
60 IF(NOT DEFINED LOCAL_STYLE_DIR)
61   SET(LOCAL_STYLE_DIR ${RESOURCE_DIR}/style)
62 ENDIF()
63
64 IF(ANDROID)
65   SET(LOCAL_STYLE_ANDROID_DIR ${RESOURCE_DIR}/style/android)
66 ENDIF()
67
68 SET(IMAGES_DIR ${APP_DATA_RES_DIR}/images/)
69 SET(GAME_DIR ${APP_DATA_RES_DIR}/game/)
70 SET(VIDEOS_DIR ${APP_DATA_RES_DIR}/videos/)
71 SET(MODELS_DIR ${APP_DATA_RES_DIR}/models/)
72 SET(SCRIPTS_DIR ${APP_DATA_RES_DIR}/scripts/)
73 SET(SHADERS_DIR ${APP_DATA_RES_DIR}/shaders/)
74 SET(STYLE_DIR ${APP_DATA_RES_DIR}/style/)
75
76 IF(NOT DEFINED LOCALE_DIR)
77    SET(LOCALE_DIR ${PREFIX}/share/locale)
78 ENDIF()
79
80 IF(DEFINED DALI_DEMO_RES_DIR)
81   SET(DEMO_IMAGE_DIR \\"${DALI_DEMO_RES_DIR}/images/\\")
82   SET(DEMO_GAME_DIR \\"${DALI_DEMO_RES_DIR}/game/\\")
83   SET(DEMO_VIDEO_DIR \\"${DALI_DEMO_RES_DIR}/videos/\\")
84   SET(DEMO_MODEL_DIR \\"${DALI_DEMO_RES_DIR}/models/\\")
85   SET(DEMO_SCRIPT_DIR \\"${DALI_DEMO_RES_DIR}/scripts/\\")
86   SET(DEMO_SHADER_DIR \\"${DALI_DEMO_RES_DIR}/shaders/\\")
87   SET(DEMO_STYLE_DIR \\"${DALI_DEMO_RES_DIR}/style/\\")
88   SET(DEMO_THEME_PATH \\"${DALI_DEMO_RES_DIR}/style/demo-theme.json\\")
89   SET(DEMO_LOCALE_DIR \\"${DALI_DEMO_RES_DIR}/locale/\\")
90   SET(DEMO_STYLE_IMAGE_DIR \\"${DALI_DEMO_RES_DIR}/style/images\\")
91 ELSE()
92   SET(DEMO_GAME_DIR \\"${GAME_DIR}\\")
93   SET(DEMO_IMAGE_DIR \\"${IMAGES_DIR}\\")
94   SET(DEMO_VIDEO_DIR \\"${VIDEOS_DIR}\\")
95   SET(DEMO_MODEL_DIR \\"${MODELS_DIR}\\")
96   SET(DEMO_SCRIPT_DIR \\"${SCRIPTS_DIR}\\")
97   SET(DEMO_SHADER_DIR \\"${SHADERS_DIR}\\")
98   SET(DEMO_STYLE_DIR \\"${STYLE_DIR}\\")
99   SET(DEMO_THEME_PATH \\"${STYLE_DIR}demo-theme.json\\")
100   SET(DEMO_LOCALE_DIR \\"${LOCALE_DIR}\\")
101   SET(DEMO_STYLE_IMAGE_DIR ${STYLE_DIR}/images)
102 ENDIF()
103
104 SET(DEMO_EXAMPLE_BIN \\"${BINDIR}/\\")
105 SET(DEMO_LANG \\"${LANG}\\")
106
107 #For run-time read/write directory
108 IF(ANDROID)
109   SET(DEMO_DATA_RW_DIR \\"/data/data/${DALI_DEMO_APP_ID}/\\")
110   SET(DEMO_DATA_PUBLIC_RW_DIR \\"/sdcard/\\")
111 ELSE()
112   SET(DEMO_DATA_RW_DIR \\"/tmp/\\")
113   SET(DEMO_DATA_PUBLIC_RW_DIR \\"/tmp/\\")
114 ENDIF()
115
116 # Gets all sub-directories of SRC_DIR into the list RESULT, which will first be reset to empty.
117 MACRO(GET_TREE RESULT SRC_DIR)
118         FILE(GLOB_RECURSE LOCAL_LIST RELATIVE ${SRC_DIR} "${SRC_DIR}/*")
119         SET(${RESULT} "/") # N.B. we need the contents of the root directory as well, and we can't have an empty string in a list in CMake.
120         FOREACH(LOCAL_ENTRY ${LOCAL_LIST})
121                 GET_FILENAME_COMPONENT(DIR ${LOCAL_ENTRY} DIRECTORY)
122                 LIST(APPEND ${RESULT} ${DIR})
123         ENDFOREACH()
124         LIST(REMOVE_DUPLICATES ${RESULT})
125 ENDMACRO()
126
127 # Installs files from each subdirectory of ROOT specified in TREE, matching FILTER, to DESTINATION,
128 # while keeping the structure, up to (excluding) ROOT.
129 MACRO(INSTALL_TREE_FILES ROOT TREE FILTER DESTINATION)
130         FOREACH(LOCAL_DIR ${TREE})
131                 SET(SRC_DIR "${ROOT}/${LOCAL_DIR}")
132                 FILE(GLOB FILES
133                         LIST_DIRECTORIES false
134                         RELATIVE ${SRC_DIR} "${SRC_DIR}/${FILTER}")
135                 FOREACH(LOCAL_FILE ${FILES})
136                         INSTALL(FILES "${SRC_DIR}/${LOCAL_FILE}" DESTINATION "${DESTINATION}/${LOCAL_DIR}")
137                 ENDFOREACH()
138         ENDFOREACH()
139 ENDMACRO()
140
141 GET_TREE(LOCAL_IMAGES_TREE "${LOCAL_IMAGES_DIR}")
142 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.png" ${IMAGES_DIR})
143 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.jpg" ${IMAGES_DIR})
144 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.gif" ${IMAGES_DIR})
145 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.webp" ${IMAGES_DIR})
146 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.bmp" ${IMAGES_DIR})
147 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.ico" ${IMAGES_DIR})
148 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.wbmp" ${IMAGES_DIR})
149 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.ktx" ${IMAGES_DIR})
150 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.astc" ${IMAGES_DIR})
151 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.svg" ${IMAGES_DIR})
152 INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.json" ${IMAGES_DIR})
153
154 FILE(GLOB LOCAL_VIDEOS_LIST RELATIVE "${LOCAL_VIDEOS_DIR}" "${LOCAL_VIDEOS_DIR}/*")
155 FOREACH(flag ${LOCAL_VIDEOS_LIST})
156         INSTALL(FILES ${LOCAL_VIDEOS_DIR}/${flag} DESTINATION ${VIDEOS_DIR})
157 ENDFOREACH(flag)
158
159 GET_TREE(LOCAL_MODELS_TREE "${LOCAL_MODELS_DIR}")
160 INSTALL_TREE_FILES(${LOCAL_MODELS_DIR} "${LOCAL_MODELS_TREE}" "*" ${MODELS_DIR})
161
162 FILE(GLOB LOCAL_SCRIPTS_LIST RELATIVE "${LOCAL_SCRIPTS_DIR}" "${LOCAL_SCRIPTS_DIR}/*.json")
163 FOREACH(flag ${LOCAL_SCRIPTS_LIST})
164         INSTALL(FILES ${LOCAL_SCRIPTS_DIR}/${flag} DESTINATION ${SCRIPTS_DIR})
165 ENDFOREACH(flag)
166
167 FILE(GLOB LOCAL_SHADERS_LIST RELATIVE "${LOCAL_SHADERS_DIR}" "${LOCAL_SHADERS_DIR}/*")
168 FOREACH(flag ${LOCAL_SHADERS_LIST})
169         INSTALL(FILES ${LOCAL_SHADERS_DIR}/${flag} DESTINATION ${SHADERS_DIR})
170 ENDFOREACH(flag)
171
172 FILE(GLOB LOCAL_GAME_LIST RELATIVE "${LOCAL_GAME_DIR}" "${LOCAL_GAME_DIR}/*.*")
173 FOREACH(flag ${LOCAL_GAME_LIST})
174         INSTALL(FILES ${LOCAL_GAME_DIR}/${flag} DESTINATION ${GAME_DIR})
175 ENDFOREACH(flag)
176
177 #Create resources location file
178 CONFIGURE_FILE( resources-location.in ${DEMO_SHARED}/resources-location.cpp )
179
180 FILE(GLOB LOCAL_STYLES_LIST "${LOCAL_STYLE_DIR}/*.json")
181 FOREACH(flag ${LOCAL_STYLES_LIST})
182   INSTALL(FILES ${flag} DESTINATION ${STYLE_DIR})
183 ENDFOREACH(flag)
184 MESSAGE("Installed ${LOCAL_STYLES_LIST} to ${STYLE_DIR}")
185
186 IF(ANDROID)
187 FILE(GLOB LOCAL_STYLES_ANDROID_LIST "${LOCAL_STYLE_ANDROID_DIR}/*.json")
188 FOREACH(flag ${LOCAL_STYLES_ANDROID_LIST})
189   INSTALL(FILES ${flag} DESTINATION ${STYLE_DIR})
190 ENDFOREACH(flag)
191 MESSAGE("Installed ${LOCAL_STYLES_ANDROID_LIST} to ${STYLE_DIR}")
192 ENDIF()
193
194 FILE(GLOB LOCAL_STYLE_IMAGES_LIST "${LOCAL_STYLE_DIR}/images/*.png")
195 FOREACH(flag ${LOCAL_STYLE_IMAGES_LIST})
196   INSTALL(FILES ${flag} DESTINATION ${STYLE_DIR}/images)
197 ENDFOREACH(flag)
198 MESSAGE("Installed style resources ${LOCAL_STYLE_IMAGES_LIST} to ${STYLE_DIR}/images")
199
200 IF( ENABLE_PKG_CONFIGURE )
201   SET(PKG_LIST dali2-core
202                dali2-adaptor
203                dali2-toolkit)
204
205   INCLUDE(FindPkgConfig)
206   pkg_check_modules(REQUIRED_PKGS REQUIRED ${PKG_LIST})
207
208   FOREACH(flag ${REQUIRED_PKGS_CFLAGS})
209         SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
210   ENDFOREACH(flag)
211
212   pkg_check_modules(DALI_SCENE_LOADER dali2-scene-loader)
213   IF( DALI_SCENE_LOADER_FOUND )
214     FOREACH(flag ${DALI_SCENE_LOADER_CFLAGS})
215       SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
216     ENDFOREACH(flag)
217
218     SET( REQUIRED_CFLAGS "${REQUIRED_CFLAGS} -DDALI_SCENE_LOADER_AVAILABLE" )
219
220     FOREACH(flag ${DALI_SCENE_LOADER_LDFLAGS})
221       SET(REQUIRED_PKGS_LDFLAGS "${REQUIRED_PKGS_LDFLAGS} ${flag}")
222     ENDFOREACH(flag)
223
224     SET( ENABLE_SCENE_LOADER "ON" )
225   ENDIF()
226 ENDIF()
227
228 SET( VCPKG_INCLUDE_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
229
230 IF( WIN32 ) # WIN32 includes x64 as well according to the cmake doc.
231   FIND_PACKAGE( pthreads REQUIRED )
232   FIND_PACKAGE( curl REQUIRED )
233   FIND_LIBRARY( GETOPT_LIBRARY NAMES getopt )
234   FIND_LIBRARY( EXIF_LIBRARY NAMES libexif )
235
236   FIND_PACKAGE( png REQUIRED )
237   FIND_PACKAGE( gif REQUIRED )
238   FIND_PACKAGE( jpeg REQUIRED )
239   FIND_LIBRARY( TURBO_JPEG_LIBRARY NAMES turbojpeg )
240
241   FIND_PACKAGE( unofficial-fontconfig REQUIRED )
242   FIND_PACKAGE( freetype REQUIRED )
243   FIND_PACKAGE( harfbuzz REQUIRED )
244   FIND_LIBRARY( FRIBIDI_LIBRARY NAMES fribidi )
245
246   FIND_PACKAGE( unofficial-angle REQUIRED )
247   FIND_PACKAGE( unofficial-cairo REQUIRED )
248
249   FIND_PACKAGE( WebP REQUIRED )
250
251   FIND_PACKAGE( dali-windows-dependencies REQUIRED )
252   FIND_PACKAGE( dali2-core REQUIRED )
253   FIND_PACKAGE( dali2-adaptor REQUIRED )
254   FIND_PACKAGE( dali2-toolkit REQUIRED )
255
256   FIND_PACKAGE( dali2-scene-loader )
257
258   # Set up the include dir
259   SET( INCLUDE_DIR $ENV{includedir} )
260   IF( NOT INCLUDE_DIR )
261     SET( INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR} )
262   ENDIF()
263   IF( NOT INCLUDE_DIR )
264     SET( INCLUDE_DIR ${PREFIX}/include )
265   ENDIF()
266
267   SET( LIB_DIR $ENV{libdir} )
268   IF( NOT LIB_DIR )
269     SET( LIB_DIR ${CMAKE_INSTALL_LIBDIR} )
270   ENDIF()
271   IF( NOT LIB_DIR )
272     SET( LIB_DIR ${PREFIX}/lib )
273   ENDIF()
274
275   SET( REQUIRED_LIBS
276     PThreads4W::PThreads4W
277     CURL::libcurl
278     ${GETOPT_LIBRARY}
279     ${EXIF_LIBRARY}
280     ${PNG_LIBRARIES}
281     ${GIF_LIBRARIES}
282     JPEG::JPEG
283     ${TURBO_JPEG_LIBRARY}
284     unofficial::fontconfig::fontconfig
285     Freetype::Freetype
286     harfbuzz::harfbuzz
287     ${FRIBIDI_LIBRARY}
288     unofficial::angle::libEGL
289     unofficial::angle::libGLESv2
290     unofficial::cairo::cairo
291     WebP::webp
292     WebP::webpdemux
293     dali-windows-dependencies::dali-windows-dependencies
294     dali2-core::dali2-core
295     dali2-adaptor::dali2-adaptor
296     dali2-toolkit::dali2-toolkit
297   )
298
299   IF (dali2_scene_loader_FOUND)
300     SET( REQUIRED_LIBS "${REQUIRED_LIBS} dali2-scene-loader::dali2-scene-loader" )
301     SET( ENABLE_SCENE_LOADER "ON" )
302   ENDIF()
303 ELSEIF( UNIX )
304   SET( REQUIRED_LIBS
305     ${REQUIRED_PKGS_LDFLAGS}
306     -pie
307   )
308 ENDIF()
309
310 SET(DALI_DEMO_CFLAGS "-DDEMO_GAME_DIR=${DEMO_GAME_DIR} -DDEMO_IMAGE_DIR=${DEMO_IMAGE_DIR} -DDEMO_VIDEO_DIR=${DEMO_VIDEO_DIR} -DDEMO_MODEL_DIR=${DEMO_MODEL_DIR} -DDEMO_SCRIPT_DIR=${DEMO_SCRIPT_DIR} -DDEMO_SHADER_DIR=${DEMO_SHADER_DIR}  -DDEMO_STYLE_DIR=${DEMO_STYLE_DIR} -DDEMO_THEME_PATH=${DEMO_THEME_PATH} -DDEMO_EXAMPLE_BIN=${DEMO_EXAMPLE_BIN} -DDEMO_LOCALE_DIR=${DEMO_LOCALE_DIR} -DDEMO_LANG=${DEMO_LANG} -DDEMO_DATA_RW_DIR=${DEMO_DATA_RW_DIR} -DDEMO_DATA_PUBLIC_RW_DIR=${DEMO_DATA_PUBLIC_RW_DIR} ")
311
312 IF( ENABLE_DEBUG )
313   SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DDEBUG_ENABLED")
314 ENDIF()
315
316 IF( ENABLE_SCENE_LOADER )
317   SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DDALI_SCENE_LOADER_AVAILABLE")
318 ENDIF()
319
320 IF( UNIX )
321   IF( NOT ${ENABLE_EXPORTALL} )
322     ADD_DEFINITIONS( "-DHIDE_DALI_INTERNALS" )
323   ENDIF()
324 ENDIF()
325
326 ###########################################################################
327 # Internationalization
328
329 IF (UNIX)
330   SET(PO_DIR ${RESOURCE_DIR}/po)
331
332   FILE(GLOB PO_FILES RELATIVE "${PO_DIR}" "${PO_DIR}/*.po")
333
334   SET(MSGFMT "/usr/bin/msgfmt")
335   SET(MO_FILES_DIR ${CMAKE_BINARY_DIR}/mo)
336   FILE(MAKE_DIRECTORY ${MO_FILES_DIR})
337
338   FOREACH(PO_FILE ${PO_FILES})
339         SET(PO_FILE ${PO_DIR}/${PO_FILE})
340         MESSAGE("PO: ${PO_FILE}")
341         GET_FILENAME_COMPONENT(ABS_PO_FILE ${PO_FILE} ABSOLUTE)
342         GET_FILENAME_COMPONENT(lang ${ABS_PO_FILE} NAME_WE)
343         SET(MO_FILE ${MO_FILES_DIR}/${lang}.mo)
344         ADD_CUSTOM_COMMAND(OUTPUT ${MO_FILE}
345                            COMMAND ${MSGFMT} -o ${MO_FILE} ${ABS_PO_FILE}
346                            DEPENDS ${ABS_PO_FILE})
347         INSTALL(FILES ${MO_FILE} DESTINATION ${LOCALE_DIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
348         SET(MO_FILES ${MO_FILES} ${MO_FILE})
349   ENDFOREACH(PO_FILE)
350
351   MESSAGE(".mo files: ${MO_FILES}")
352   ADD_CUSTOM_TARGET(po ALL DEPENDS ${MO_FILES})
353 ENDIF()
354
355 IF (INTERNATIONALIZATION)
356   SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DINTERNATIONALIZATION_ENABLED")
357 ENDIF(INTERNATIONALIZATION)
358
359 ###########################################################################
360
361 IF( WIN32 )
362   ADD_COMPILE_OPTIONS( /FIdali-windows-dependencies.h ) # Adds missing definitions.
363   ADD_COMPILE_OPTIONS( /vmg )                           # Avoids a 'reinterpret_cast' compile error while compiling signals and callbacks.
364   ADD_COMPILE_OPTIONS( /wd4251 )                        # Ignores warning C4251: "'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'"
365 ELSE()
366   SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -Werror -Wall -fPIE")
367
368   IF( NOT ${ENABLE_EXPORTALL} )
369     SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -fvisibility=hidden")
370   ENDIF()
371 ENDIF()
372
373 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${REQUIRED_CFLAGS} ${DALI_DEMO_CFLAGS}")
374 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_FLAGS}")
375
376 INCLUDE_DIRECTORIES(
377   ${SYSTEM_INCLUDE_DIR}
378   ${ROOT_SRC_DIR}
379   ${VCPKG_INCLUDE_DIR}
380   ${INCLUDE_DIR}
381 )
382
383 IF(ANDROID)
384   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sources/android/native_app_glue )
385   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sysroot/usr )
386   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sysroot/usr/include/android )
387   INCLUDE_DIRECTORIES( ${ROOT_SRC_DIR}/build/android/app/src/main/cpp )
388 ENDIF()
389
390 LINK_DIRECTORIES(${LIB_DIR})
391
392 ADD_SUBDIRECTORY(demo)
393 ADD_SUBDIRECTORY(examples)
394 ADD_SUBDIRECTORY(examples-reel)
395 ADD_SUBDIRECTORY(tests-reel)
396 ADD_SUBDIRECTORY(builder)
397
398
399 MESSAGE( " Folder   DEMO_IMAGE_DIR : [" ${DEMO_IMAGE_DIR} "]" )
400 MESSAGE( " Folder   DEMO_STYLE_DIR : [" ${DEMO_STYLE_DIR} "]" )
401 MESSAGE( " Folder  DEMO_SHADER_DIR : [" ${DEMO_SHADER_DIR} "]" )
402 MESSAGE( " Folder  DEMO_THEME_PATH : [" ${DEMO_THEME_PATH} "]" )
403 MESSAGE( " Folder    DEMO_GAME_DIR : [" ${DEMO_GAME_DIR} "]" )
404 MESSAGE( " Folder   DEMO_VIDEO_DIR : [" ${DEMO_VIDEO_DIR} "]" )
405 MESSAGE( " Folder   DEMO_MODEL_DIR : [" ${DEMO_MODEL_DIR} "]" )
406 MESSAGE( " Folder  DEMO_SCRIPT_DIR : [" ${DEMO_SCRIPT_DIR} "]" )
407 MESSAGE( " Folder  DEMO_LOCALE_DIR : [" ${DEMO_LOCALE_DIR} "]" )
408 MESSAGE( " Folder DEMO_EXAMPLE_BIN : [" ${DEMO_EXAMPLE_BIN} "]" )
409 MESSAGE( " Folder        DEMO_LANG : [" ${DEMO_LANG} "]" )