fix for invalid context change notification, when new context has the same name
[platform/core/accessibility/universal-switch.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
2
3 ENABLE_TESTING()
4
5 ## PROJECT NAME
6 PROJECT(universal-switch CXX)
7
8 FIND_PACKAGE(PkgConfig REQUIRED)
9 FIND_PACKAGE(Doxygen)
10
11 option(TESTS "enable/disable universal switch tests" ON)
12 option(DOCS "Build documentation" OFF)
13
14 pkg_check_modules(pkgs REQUIRED
15     atspi-2
16     capi-appfw-service-application
17     capi-appfw-application
18     capi-appfw-app-manager
19     capi-media-player
20     capi-media-sound-manager
21     capi-telephony
22     capi-ui-efl-util
23     capi-system-device
24     ecore
25     eldbus
26     elementary
27     efl-extension
28     gobject-2.0
29     sqlite3
30     tts
31     tzsh-quickpanel
32     cairo
33     storage
34     syspopup-caller
35     tzsh-screensaver-service
36         rua
37 )
38 # TODO remove cairo dependency, when there will be available screenshot service.
39
40 SET(COMMON_FLAGS "-fdiagnostics-color=always -fPIC")
41 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}")
42 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS} -std=c++14 -g")
43
44 # install desktop file & icon
45 SET(RES_DIR "${CMAKE_INSTALL_PREFIX}/res")
46 SET(ICONS_DIR "${RES_DIR}/icons")
47 SET(LOCALE_DIR "${RES_DIR}/locale")
48 SET(SOUNDS_DIR "${RES_DIR}/sounds/")
49
50 ADD_DEFINITIONS("-DICONS_DIR=\"${ICONS_DIR}\"")
51 ADD_DEFINITIONS("-DLOCALE_DIR=\"${LOCALE_DIR}\"")
52 ADD_DEFINITIONS("-DSOUNDS_DIR=\"${SOUNDS_DIR}\"")
53 ADD_DEFINITIONS("-DPROJECT_NAME=\"${PROJECT_NAME}\"")
54 ADD_DEFINITIONS("-DUNIVERSAL_SWITCH_EDJ=\"${RES_DIR}/${PROJECT_NAME}.edj\"")
55 ADD_DEFINITIONS("-DEFL_BETA_API_SUPPORT=1")
56
57 ADD_DEFINITIONS("-DDEBUG_PRINTING_LEVEL=DEBUG_PRINTING_LEVEL_DEBUG")
58
59 ADD_SUBDIRECTORY(src)
60 ADD_SUBDIRECTORY(res/po)
61 ADD_SUBDIRECTORY(res/sounds)
62 if(TESTS)
63  ADD_SUBDIRECTORY(tests)
64 endif()
65
66 ADD_CUSTOM_TARGET(${PROJECT_NAME}.edj
67         COMMAND edje_cc -no-save res/${PROJECT_NAME}.edc ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj
68         DEPENDS res/${PROJECT_NAME}.edc
69 )
70 ADD_DEPENDENCIES(${PROJECT_NAME} ${PROJECT_NAME}.edj)
71
72 # Install Manifest File
73 INSTALL(DIRECTORY res/icons/ DESTINATION ${ICONS_DIR} FILES_MATCHING PATTERN "*.png")
74 INSTALL(FILES org.tizen.universal-switch.xml DESTINATION ${TZ_SYS_RO_PACKAGES})
75 INSTALL(FILES ${PROJECT_NAME}.edj DESTINATION ${RES_DIR})
76 INSTALL(PROGRAMS utils/setVconfKeys.sh DESTINATION scripts/)
77
78
79 #documentation
80
81 if (DOCS)
82     # check if Doxygen is installed
83     if (DOXYGEN_FOUND)
84         # set input and output files
85         set(DOXYGEN_IN docs/Doxyfile.in)
86         set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
87         set(DOXYGEN_DIR ${CMAKE_BINARY_DIR}/doc_doxygen/)
88         set(DOXYGEN_SRC ${CMAKE_SOURCE_DIR}/src/)
89
90         configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
91         message("Doxygen build started")
92         add_custom_target(doc_doxygen ALL
93             COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
94             WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
95             COMMENT "Generating API documentation with Doxygen"
96             VERBATIM )
97         INSTALL(DIRECTORY ${DOXYGEN_DIR} DESTINATION docs)
98     else (DOXYGEN_FOUND)
99         message("Doxygen need to be installed to generate the doxygen documentation")
100     endif (DOXYGEN_FOUND)
101 endif (DOCS)