1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(dali-demo C CXX)
4 SET(dali-demo_VERSION_MAJOR 1)
5 SET(dali-demo_VERSION_MINOR 0)
7 SET(ROOT_SRC_DIR ${CMAKE_SOURCE_DIR}/../..)
9 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
11 IF(DEFINED DALI_APP_DIR)
12 SET(APP_DATA_DIR ${DALI_APP_DIR})
13 SET(BINDIR ${APP_DATA_DIR}/bin)
15 SET(APP_DATA_DIR ${PREFIX}/share/com.samsung.dali-demo)
16 SET(BINDIR ${PREFIX}/bin)
19 MESSAGE( STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} )
20 if(CMAKE_BUILD_TYPE MATCHES Debug)
21 MESSAGE("Setting variable: DEBUG_ENABLED")
22 SET(DEBUG_ENABLED "1")
25 SET(RESOURCE_DIR ${ROOT_SRC_DIR}/resources)
26 SET(LOCAL_IMAGES_DIR ${RESOURCE_DIR}/images)
27 SET(LOCAL_VIDEOS_DIR ${RESOURCE_DIR}/videos)
28 SET(LOCAL_MODELS_DIR ${RESOURCE_DIR}/models)
29 SET(LOCAL_SCRIPTS_DIR ${RESOURCE_DIR}/scripts)
30 IF(NOT DEFINED LOCAL_STYLE_DIR)
31 SET(LOCAL_STYLE_DIR ${RESOURCE_DIR}/style)
34 SET(IMAGES_DIR ${APP_DATA_DIR}/images/)
35 SET(VIDEOS_DIR ${APP_DATA_DIR}/videos/)
36 SET(MODELS_DIR ${APP_DATA_DIR}/models/)
37 SET(SCRIPTS_DIR ${APP_DATA_DIR}/scripts/)
38 SET(STYLE_DIR ${APP_DATA_DIR}style/)
40 IF(NOT DEFINED LOCALE_DIR)
41 SET(LOCALE_DIR ${PREFIX}/share/locale)
44 SET(DEMO_IMAGE_DIR \\"${IMAGES_DIR}\\")
45 SET(DEMO_VIDEO_DIR \\"${VIDEOS_DIR}\\")
46 SET(DEMO_MODEL_DIR \\"${MODELS_DIR}\\")
47 SET(DEMO_SCRIPT_DIR \\"${SCRIPTS_DIR}\\")
48 SET(DEMO_STYLE_DIR \\"${STYLE_DIR}\\")
49 SET(DEMO_THEME_PATH \\"${STYLE_DIR}demo-theme.json\\")
50 SET(DEMO_EXAMPLE_BIN \\"${BINDIR}/\\")
51 SET(DEMO_LOCALE_DIR \\"${LOCALE_DIR}\\")
52 SET(DEMO_LANG \\"${LANG}\\")
54 SET(DEMO_STYLE_IMAGE_DIR ${STYLE_DIR}images)
56 FILE(GLOB LOCAL_IMAGES_PNG RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.png")
57 FILE(GLOB LOCAL_IMAGES_JPG RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.jpg")
58 FILE(GLOB LOCAL_IMAGES_GIF RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.gif")
59 FILE(GLOB LOCAL_IMAGES_BMP RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.bmp")
60 FILE(GLOB LOCAL_IMAGES_ICO RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ico")
61 FILE(GLOB LOCAL_IMAGES_WBMP RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.wbmp")
62 FILE(GLOB LOCAL_IMAGES_KTX RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ktx")
63 FILE(GLOB LOCAL_IMAGES_ASTC RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.astc")
64 FILE(GLOB LOCAL_IMAGES_SVG RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.svg")
66 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})
67 FOREACH(flag ${LOCAL_IMAGES_LIST})
68 INSTALL(FILES ${LOCAL_IMAGES_DIR}/${flag} DESTINATION ${IMAGES_DIR})
71 FILE(GLOB LOCAL_VIDEOS_LIST RELATIVE "${LOCAL_VIDEOS_DIR}" "${LOCAL_VIDEOS_DIR}/*")
72 FOREACH(flag ${LOCAL_VIDEOS_LIST})
73 INSTALL(FILES ${LOCAL_VIDEOS_DIR}/${flag} DESTINATION ${VIDEOS_DIR})
76 FILE(GLOB LOCAL_MODELS_LIST RELATIVE "${LOCAL_MODELS_DIR}" "${LOCAL_MODELS_DIR}/*")
77 FOREACH(flag ${LOCAL_MODELS_LIST})
78 INSTALL(FILES ${LOCAL_MODELS_DIR}/${flag} DESTINATION ${MODELS_DIR})
81 FILE(GLOB LOCAL_SCRIPTS_LIST RELATIVE "${LOCAL_SCRIPTS_DIR}" "${LOCAL_SCRIPTS_DIR}/*.json")
82 FOREACH(flag ${LOCAL_SCRIPTS_LIST})
83 INSTALL(FILES ${LOCAL_SCRIPTS_DIR}/${flag} DESTINATION ${SCRIPTS_DIR})
86 #Replace @DEMO_STYLE_IMAGE_DIR@ in following files
87 CONFIGURE_FILE( ${LOCAL_STYLE_DIR}/demo-theme.json.in ${LOCAL_STYLE_DIR}/demo-theme.json )
88 CONFIGURE_FILE( ${LOCAL_STYLE_DIR}/style-example-theme-one.json.in ${LOCAL_STYLE_DIR}/style-example-theme-one.json )
89 CONFIGURE_FILE( ${LOCAL_STYLE_DIR}/style-example-theme-two.json.in ${LOCAL_STYLE_DIR}/style-example-theme-two.json )
90 CONFIGURE_FILE( ${LOCAL_STYLE_DIR}/style-example-theme-three.json.in ${LOCAL_STYLE_DIR}/style-example-theme-three.json )
91 MESSAGE("Configured ${LOCAL_STYLE_DIR}/style-example-theme<>.json files")
93 FILE(GLOB LOCAL_STYLES_LIST "${LOCAL_STYLE_DIR}/*.json")
94 FOREACH(flag ${LOCAL_STYLES_LIST})
95 INSTALL(FILES ${flag} DESTINATION ${STYLE_DIR})
97 MESSAGE("Installed ${LOCAL_STYLES_LIST} to ${STYLE_DIR}")
99 FILE(GLOB LOCAL_STYLE_IMAGES_LIST "${LOCAL_STYLE_DIR}/images/*.png")
100 FOREACH(flag ${LOCAL_STYLE_IMAGES_LIST})
101 INSTALL(FILES ${flag} DESTINATION ${STYLE_DIR}/images)
103 MESSAGE("Installed style resources ${LOCAL_STYLE_IMAGES_LIST} to ${STYLE_DIR}/images")
105 SET(PKG_LIST dali-core
109 INCLUDE(FindPkgConfig)
110 pkg_check_modules(REQUIRED_PKGS REQUIRED ${PKG_LIST})
112 FOREACH(flag ${REQUIRED_PKGS_CFLAGS})
113 SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
116 SET(DALI_DEMO_CFLAGS "-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_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}")
118 ###########################################################################
119 # Internationalization
121 SET(PO_DIR ${RESOURCE_DIR}/po)
123 FILE(GLOB PO_FILES RELATIVE "${PO_DIR}" "${PO_DIR}/*.po")
125 SET(MSGFMT "/usr/bin/msgfmt")
126 SET(MO_FILES_DIR ${CMAKE_BINARY_DIR}/mo)
127 FILE(MAKE_DIRECTORY ${MO_FILES_DIR})
129 FOREACH(PO_FILE ${PO_FILES})
130 SET(PO_FILE ${PO_DIR}/${PO_FILE})
131 MESSAGE("PO: ${PO_FILE}")
132 GET_FILENAME_COMPONENT(ABS_PO_FILE ${PO_FILE} ABSOLUTE)
133 GET_FILENAME_COMPONENT(lang ${ABS_PO_FILE} NAME_WE)
134 SET(MO_FILE ${MO_FILES_DIR}/${lang}.mo)
135 ADD_CUSTOM_COMMAND(OUTPUT ${MO_FILE}
136 COMMAND ${MSGFMT} -o ${MO_FILE} ${ABS_PO_FILE}
137 DEPENDS ${ABS_PO_FILE})
138 INSTALL(FILES ${MO_FILE} DESTINATION ${LOCALE_DIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
139 SET(MO_FILES ${MO_FILES} ${MO_FILE})
142 MESSAGE(".mo files: ${MO_FILES}")
143 ADD_CUSTOM_TARGET(po ALL DEPENDS ${MO_FILES})
145 OPTION(INTERNATIONALIZATION "Internationalization demo string names" ON)
146 IF (INTERNATIONALIZATION)
147 SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DINTERNATIONALIZATION_ENABLED")
148 ENDIF(INTERNATIONALIZATION)
150 ###########################################################################
152 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${REQUIRED_CFLAGS} ${DALI_DEMO_CFLAGS} -Werror -Wall -fPIE")
153 SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
155 INCLUDE_DIRECTORIES(${ROOT_SRC_DIR})
156 #INCLUDE_DIRECTORIES(${DEMO_SRC_DIR})
158 ADD_SUBDIRECTORY(demo)
159 ADD_SUBDIRECTORY(examples)
160 ADD_SUBDIRECTORY(builder)