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
18 capi-appfw-app-manager
20 capi-media-sound-manager
35 tzsh-screensaver-service
38 # TODO remove cairo dependency, when there will be available screenshot service.
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")
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/")
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")
57 ADD_DEFINITIONS("-DDEBUG_PRINTING_LEVEL=DEBUG_PRINTING_LEVEL_DEBUG")
60 ADD_SUBDIRECTORY(res/po)
61 ADD_SUBDIRECTORY(res/sounds)
63 ADD_SUBDIRECTORY(tests)
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
70 ADD_DEPENDENCIES(${PROJECT_NAME} ${PROJECT_NAME}.edj)
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/)
82 # check if Doxygen is installed
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/)
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"
97 INSTALL(DIRECTORY ${DOXYGEN_DIR} DESTINATION docs)
99 message("Doxygen need to be installed to generate the doxygen documentation")
100 endif (DOXYGEN_FOUND)