Change dali demo launching using DaliDemoNativeActivity JNI.
[platform/core/uifw/dali-demo.git] / build / tizen / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(dali-demo C CXX)
3
4 SET(dali-demo_VERSION_MAJOR 1)
5 SET(dali-demo_VERSION_MINOR 0)
6
7 SET(GCC_COMPILER_VERSION_REQUIRED "6")
8 if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
9   if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS GCC_COMPILER_VERSION_REQUIRED)
10     message(FATAL_ERROR "The GCC required compiler version is " ${GCC_COMPILER_VERSION_REQUIRED})
11   endif()
12 endif()
13
14 SET(ROOT_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../..)
15 SET(DEMO_SHARED ${CMAKE_CURRENT_SOURCE_DIR}/../../shared)
16
17 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
18
19 IF(DEFINED DALI_APP_DIR)
20   SET(BINDIR ${DALI_APP_DIR})
21 ELSE()
22   SET(BINDIR ${PREFIX}/bin)
23 ENDIF()
24
25 IF(DEFINED DALI_APP_RES_DIR)
26   SET(APP_DATA_RES_DIR ${DALI_APP_RES_DIR})
27 ELSE()
28   SET(APP_DATA_RES_DIR ${PREFIX}/share/com.samsung.dali-demo/res)
29 ENDIF()
30
31 MESSAGE( STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} )
32 if(CMAKE_BUILD_TYPE MATCHES Debug)
33     MESSAGE("Setting variable: DEBUG_ENABLED")
34     SET(DEBUG_ENABLED "1")
35 ENDIF()
36
37 SET(RESOURCE_DIR ${ROOT_SRC_DIR}/resources)
38 SET(LOCAL_IMAGES_DIR ${RESOURCE_DIR}/images)
39 SET(LOCAL_GAME_DIR ${RESOURCE_DIR}/game)
40 SET(LOCAL_VIDEOS_DIR ${RESOURCE_DIR}/videos)
41 SET(LOCAL_MODELS_DIR ${RESOURCE_DIR}/models)
42 SET(LOCAL_SCRIPTS_DIR ${RESOURCE_DIR}/scripts)
43 SET(LOCAL_SHADERS_DIR ${RESOURCE_DIR}/shaders)
44 IF(NOT DEFINED LOCAL_STYLE_DIR)
45   SET(LOCAL_STYLE_DIR ${RESOURCE_DIR}/style)
46 ENDIF()
47
48 IF(ANDROID)
49   SET(LOCAL_STYLE_ANDROID_DIR ${RESOURCE_DIR}/style/android)
50 ENDIF()
51
52 SET(IMAGES_DIR ${APP_DATA_RES_DIR}/images/)
53 SET(GAME_DIR ${APP_DATA_RES_DIR}/game/)
54 SET(VIDEOS_DIR ${APP_DATA_RES_DIR}/videos/)
55 SET(MODELS_DIR ${APP_DATA_RES_DIR}/models/)
56 SET(SCRIPTS_DIR ${APP_DATA_RES_DIR}/scripts/)
57 SET(SHADERS_DIR ${APP_DATA_RES_DIR}/shaders/)
58 SET(STYLE_DIR ${APP_DATA_RES_DIR}/style/)
59
60 IF(NOT DEFINED LOCALE_DIR)
61    SET(LOCALE_DIR ${PREFIX}/share/locale)
62 ENDIF()
63
64 IF(DEFINED DALI_DEMO_RES_DIR)
65   SET(DEMO_IMAGE_DIR \\"${DALI_DEMO_RES_DIR}/images/\\")
66   SET(DEMO_GAME_DIR \\"${DALI_DEMO_RES_DIR}/game/\\")
67   SET(DEMO_VIDEO_DIR \\"${DALI_DEMO_RES_DIR}/videos/\\")
68   SET(DEMO_MODEL_DIR \\"${DALI_DEMO_RES_DIR}/models/\\")
69   SET(DEMO_SCRIPT_DIR \\"${DALI_DEMO_RES_DIR}/scripts/\\")
70   SET(DEMO_SHADER_DIR \\"${DALI_DEMO_RES_DIR}/shaders/\\")
71   SET(DEMO_STYLE_DIR \\"${DALI_DEMO_RES_DIR}/style/\\")
72   SET(DEMO_THEME_PATH \\"${DALI_DEMO_RES_DIR}/style/demo-theme.json\\")
73   SET(DEMO_LOCALE_DIR \\"${DALI_DEMO_RES_DIR}/locale\\")
74   SET(DEMO_STYLE_IMAGE_DIR \\"${DALI_DEMO_RES_DIR}/style/images\\")
75 ELSE()
76   SET(DEMO_GAME_DIR \\"${GAME_DIR}\\")
77   SET(DEMO_IMAGE_DIR \\"${IMAGES_DIR}\\")
78   SET(DEMO_VIDEO_DIR \\"${VIDEOS_DIR}\\")
79   SET(DEMO_MODEL_DIR \\"${MODELS_DIR}\\")
80   SET(DEMO_SCRIPT_DIR \\"${SCRIPTS_DIR}\\")
81   SET(DEMO_SHADER_DIR \\"${SHADERS_DIR}\\")
82   SET(DEMO_STYLE_DIR \\"${STYLE_DIR}\\")
83   SET(DEMO_THEME_PATH \\"${STYLE_DIR}demo-theme.json\\")
84   SET(DEMO_LOCALE_DIR \\"${LOCALE_DIR}\\")
85   SET(DEMO_STYLE_IMAGE_DIR ${STYLE_DIR}/images)
86 ENDIF()
87
88 SET(DEMO_EXAMPLE_BIN \\"${BINDIR}/\\")
89 SET(DEMO_LANG \\"${LANG}\\")
90
91 FILE(GLOB LOCAL_IMAGES_PNG RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.png")
92 FILE(GLOB LOCAL_IMAGES_JPG RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.jpg")
93 FILE(GLOB LOCAL_IMAGES_GIF RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.gif")
94 FILE(GLOB LOCAL_IMAGES_BMP RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.bmp")
95 FILE(GLOB LOCAL_IMAGES_ICO RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ico")
96 FILE(GLOB LOCAL_IMAGES_WBMP RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.wbmp")
97 FILE(GLOB LOCAL_IMAGES_KTX RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ktx")
98 FILE(GLOB LOCAL_IMAGES_ASTC RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.astc")
99 FILE(GLOB LOCAL_IMAGES_SVG RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.svg")
100 FILE(GLOB LOCAL_IMAGES_JSON RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.json")
101
102 SET(LOCAL_IMAGES_LIST ${LOCAL_IMAGES_PNG};${LOCAL_IMAGES_JPG};${LOCAL_IMAGES_GIF};${LOCAL_IMAGES_BMP};${LOCAL_IMAGES_ICO};${LOCAL_IMAGES_WBMP};${LOCAL_IMAGES_KTX};${LOCAL_IMAGES_ASTC};${LOCAL_IMAGES_SVG};${LOCAL_IMAGES_JSON})
103 FOREACH(flag ${LOCAL_IMAGES_LIST})
104         INSTALL(FILES ${LOCAL_IMAGES_DIR}/${flag} DESTINATION ${IMAGES_DIR})
105 ENDFOREACH(flag)
106
107 FILE(GLOB LOCAL_VIDEOS_LIST RELATIVE "${LOCAL_VIDEOS_DIR}" "${LOCAL_VIDEOS_DIR}/*")
108 FOREACH(flag ${LOCAL_VIDEOS_LIST})
109         INSTALL(FILES ${LOCAL_VIDEOS_DIR}/${flag} DESTINATION ${VIDEOS_DIR})
110 ENDFOREACH(flag)
111
112 FILE(GLOB LOCAL_MODELS_LIST RELATIVE "${LOCAL_MODELS_DIR}" "${LOCAL_MODELS_DIR}/*")
113 FOREACH(flag ${LOCAL_MODELS_LIST})
114         INSTALL(FILES ${LOCAL_MODELS_DIR}/${flag} DESTINATION ${MODELS_DIR})
115 ENDFOREACH(flag)
116
117 FILE(GLOB LOCAL_SCRIPTS_LIST RELATIVE "${LOCAL_SCRIPTS_DIR}" "${LOCAL_SCRIPTS_DIR}/*.json")
118 FOREACH(flag ${LOCAL_SCRIPTS_LIST})
119         INSTALL(FILES ${LOCAL_SCRIPTS_DIR}/${flag} DESTINATION ${SCRIPTS_DIR})
120 ENDFOREACH(flag)
121
122 FILE(GLOB LOCAL_SHADERS_LIST RELATIVE "${LOCAL_SHADERS_DIR}" "${LOCAL_SHADERS_DIR}/*")
123 FOREACH(flag ${LOCAL_SHADERS_LIST})
124         INSTALL(FILES ${LOCAL_SHADERS_DIR}/${flag} DESTINATION ${SHADERS_DIR})
125 ENDFOREACH(flag)
126
127 FILE(GLOB LOCAL_GAME_LIST RELATIVE "${LOCAL_GAME_DIR}" "${LOCAL_GAME_DIR}/*.*")
128 FOREACH(flag ${LOCAL_GAME_LIST})
129         INSTALL(FILES ${LOCAL_GAME_DIR}/${flag} DESTINATION ${GAME_DIR})
130 ENDFOREACH(flag)
131
132 #Create resources location file
133 CONFIGURE_FILE( resources-location.in ${DEMO_SHARED}/resources-location.cpp )
134
135 FILE(GLOB LOCAL_STYLES_LIST "${LOCAL_STYLE_DIR}/*.json")
136 FOREACH(flag ${LOCAL_STYLES_LIST})
137   INSTALL(FILES ${flag} DESTINATION ${STYLE_DIR})
138 ENDFOREACH(flag)
139 MESSAGE("Installed ${LOCAL_STYLES_LIST} to ${STYLE_DIR}")
140
141 IF(ANDROID)
142 FILE(GLOB LOCAL_STYLES_ANDROID_LIST "${LOCAL_STYLE_ANDROID_DIR}/*.json")
143 FOREACH(flag ${LOCAL_STYLES_ANDROID_LIST})
144   INSTALL(FILES ${flag} DESTINATION ${STYLE_DIR})
145 ENDFOREACH(flag)
146 MESSAGE("Installed ${LOCAL_STYLES_ANDROID_LIST} to ${STYLE_DIR}")
147 ENDIF()
148
149 FILE(GLOB LOCAL_STYLE_IMAGES_LIST "${LOCAL_STYLE_DIR}/images/*.png")
150 FOREACH(flag ${LOCAL_STYLE_IMAGES_LIST})
151   INSTALL(FILES ${flag} DESTINATION ${STYLE_DIR}/images)
152 ENDFOREACH(flag)
153 MESSAGE("Installed style resources ${LOCAL_STYLE_IMAGES_LIST} to ${STYLE_DIR}/images")
154
155 SET(PKG_LIST dali-core
156              dali-adaptor
157              dali-toolkit)
158
159 INCLUDE(FindPkgConfig)
160 pkg_check_modules(REQUIRED_PKGS REQUIRED ${PKG_LIST})
161
162 FOREACH(flag ${REQUIRED_PKGS_CFLAGS})
163         SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
164 ENDFOREACH(flag)
165
166 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} -fvisibility=hidden -DHIDE_DALI_INTERNALS -DDEMO_LANG=${DEMO_LANG}")
167
168 IF(DEFINED DEBUG_ENABLED)
169   SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DDEBUG_ENABLED")
170 ENDIF()
171
172 ###########################################################################
173 # Internationalization
174
175 SET(PO_DIR ${RESOURCE_DIR}/po)
176
177 FILE(GLOB PO_FILES RELATIVE "${PO_DIR}" "${PO_DIR}/*.po")
178
179 SET(MSGFMT "/usr/bin/msgfmt")
180 SET(MO_FILES_DIR ${CMAKE_CURRENT_BINARY_DIR}/mo)
181 FILE(MAKE_DIRECTORY ${MO_FILES_DIR})
182
183 FOREACH(PO_FILE ${PO_FILES})
184         SET(PO_FILE ${PO_DIR}/${PO_FILE})
185         MESSAGE("PO: ${PO_FILE}")
186         GET_FILENAME_COMPONENT(ABS_PO_FILE ${PO_FILE} ABSOLUTE)
187         GET_FILENAME_COMPONENT(lang ${ABS_PO_FILE} NAME_WE)
188         SET(MO_FILE ${MO_FILES_DIR}/${lang}.mo)
189         ADD_CUSTOM_COMMAND(OUTPUT ${MO_FILE}
190                            COMMAND ${MSGFMT} -o ${MO_FILE} ${ABS_PO_FILE}
191                            DEPENDS ${ABS_PO_FILE})
192         INSTALL(FILES ${MO_FILE} DESTINATION ${LOCALE_DIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
193         SET(MO_FILES ${MO_FILES} ${MO_FILE})
194 ENDFOREACH(PO_FILE)
195
196 MESSAGE(".mo files: ${MO_FILES}")
197 ADD_CUSTOM_TARGET(po ALL DEPENDS ${MO_FILES})
198
199 OPTION(INTERNATIONALIZATION "Internationalization demo string names" ON)
200 IF (INTERNATIONALIZATION)
201         SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DINTERNATIONALIZATION_ENABLED")
202 ENDIF(INTERNATIONALIZATION)
203
204 ###########################################################################
205
206 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${REQUIRED_CFLAGS} ${DALI_DEMO_CFLAGS} -Werror -Wall -fPIE")
207 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_FLAGS}")
208
209 INCLUDE_DIRECTORIES(${ROOT_SRC_DIR})
210 IF(ANDROID)
211   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sources/android/native_app_glue )
212   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sysroot/usr )
213   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sysroot/usr/include/android )
214   INCLUDE_DIRECTORIES( ${ROOT_SRC_DIR}/build/android/app/src/main/cpp )
215 ENDIF()
216
217 ADD_SUBDIRECTORY(demo)
218 ADD_SUBDIRECTORY(examples)
219 ADD_SUBDIRECTORY(examples-reel)
220 ADD_SUBDIRECTORY(tests-reel)
221 ADD_SUBDIRECTORY(builder)