1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
6 PROJECT(universal-switch CXX)
8 FIND_PACKAGE(PkgConfig REQUIRED)
11 option(TESTS "enable/disable universal switch tests" ON)
12 option(DOCS "Build documentation" OFF)
14 pkg_check_modules(pkgs REQUIRED
16 capi-appfw-service-application
17 capi-appfw-application
19 capi-media-sound-manager
34 tzsh-screensaver-service
36 # TODO remove cairo dependency, when there will be available screenshot service.
38 SET(COMMON_FLAGS "-fdiagnostics-color=always -fPIC")
39 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}")
40 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS} -std=c++14")
42 # install desktop file & icon
43 SET(RES_DIR "${CMAKE_INSTALL_PREFIX}/res")
44 SET(ICONS_DIR "${RES_DIR}/icons")
45 SET(LOCALE_DIR "${RES_DIR}/locale")
46 SET(SOUNDS_DIR "${RES_DIR}/sounds/")
48 ADD_DEFINITIONS("-DICONS_DIR=\"${ICONS_DIR}\"")
49 ADD_DEFINITIONS("-DLOCALE_DIR=\"${LOCALE_DIR}\"")
50 ADD_DEFINITIONS("-DSOUNDS_DIR=\"${SOUNDS_DIR}\"")
51 ADD_DEFINITIONS("-DPROJECT_NAME=\"${PROJECT_NAME}\"")
52 ADD_DEFINITIONS("-DUNIVERSAL_SWITCH_EDJ=\"${RES_DIR}/${PROJECT_NAME}.edj\"")
53 ADD_DEFINITIONS("-DEFL_BETA_API_SUPPORT=1")
55 ADD_DEFINITIONS("-DDEBUG_PRINTING_LEVEL=DEBUG_PRINTING_LEVEL_DEBUG")
58 ADD_SUBDIRECTORY(res/po)
59 ADD_SUBDIRECTORY(res/sounds)
61 ADD_SUBDIRECTORY(tests)
64 ADD_CUSTOM_TARGET(${PROJECT_NAME}.edj
65 COMMAND edje_cc -no-save res/${PROJECT_NAME}.edc ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj
66 DEPENDS res/${PROJECT_NAME}.edc
68 ADD_DEPENDENCIES(${PROJECT_NAME} ${PROJECT_NAME}.edj)
70 # Install Manifest File
71 INSTALL(DIRECTORY res/icons/ DESTINATION ${ICONS_DIR} FILES_MATCHING PATTERN "*.png")
72 INSTALL(FILES org.tizen.universal-switch.xml DESTINATION ${TZ_SYS_RO_PACKAGES})
73 INSTALL(FILES ${PROJECT_NAME}.edj DESTINATION ${RES_DIR})
74 INSTALL(PROGRAMS utils/setVconfKeys.sh DESTINATION scripts/)
80 # check if Doxygen is installed
82 # set input and output files
83 set(DOXYGEN_IN docs/Doxyfile.in)
84 set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
85 set(DOXYGEN_DIR ${CMAKE_BINARY_DIR}/doc_doxygen/)
86 set(DOXYGEN_SRC ${CMAKE_SOURCE_DIR}/src/)
88 configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
89 message("Doxygen build started")
90 add_custom_target(doc_doxygen ALL
91 COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
92 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
93 COMMENT "Generating API documentation with Doxygen"
95 INSTALL(DIRECTORY ${DOXYGEN_DIR} DESTINATION docs)
97 message("Doxygen need to be installed to generate the doxygen documentation")