CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12) ENABLE_TESTING() ## PROJECT NAME PROJECT(universal-switch CXX) FIND_PACKAGE(PkgConfig REQUIRED) FIND_PACKAGE(Doxygen) option(TESTS "enable/disable universal switch tests" ON) option(DOCS "Build documentation" OFF) pkg_check_modules(pkgs REQUIRED atspi-2 capi-appfw-service-application capi-appfw-application capi-appfw-app-manager capi-media-player capi-media-sound-manager capi-telephony capi-ui-efl-util capi-system-device ecore eldbus elementary efl-extension gobject-2.0 sqlite3 tts tzsh-quickpanel cairo storage syspopup-caller tzsh-screensaver-service rua ) # TODO remove cairo dependency, when there will be available screenshot service. SET(COMMON_FLAGS "-fdiagnostics-color=always -fPIC") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS} -std=c++14 -g") # install desktop file & icon SET(RES_DIR "${CMAKE_INSTALL_PREFIX}/res") SET(ICONS_DIR "${RES_DIR}/icons") SET(LOCALE_DIR "${RES_DIR}/locale") SET(SOUNDS_DIR "${RES_DIR}/sounds/") ADD_DEFINITIONS("-DICONS_DIR=\"${ICONS_DIR}\"") ADD_DEFINITIONS("-DLOCALE_DIR=\"${LOCALE_DIR}\"") ADD_DEFINITIONS("-DSOUNDS_DIR=\"${SOUNDS_DIR}\"") ADD_DEFINITIONS("-DPROJECT_NAME=\"${PROJECT_NAME}\"") ADD_DEFINITIONS("-DUNIVERSAL_SWITCH_EDJ=\"${RES_DIR}/${PROJECT_NAME}.edj\"") ADD_DEFINITIONS("-DEFL_BETA_API_SUPPORT=1") ADD_DEFINITIONS("-DDEBUG_PRINTING_LEVEL=DEBUG_PRINTING_LEVEL_DEBUG") ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(res/po) ADD_SUBDIRECTORY(res/sounds) if(TESTS) ADD_SUBDIRECTORY(tests) endif() ADD_CUSTOM_TARGET(${PROJECT_NAME}.edj COMMAND edje_cc -no-save res/${PROJECT_NAME}.edc ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj DEPENDS res/${PROJECT_NAME}.edc ) ADD_DEPENDENCIES(${PROJECT_NAME} ${PROJECT_NAME}.edj) # Install Manifest File INSTALL(DIRECTORY res/icons/ DESTINATION ${ICONS_DIR} FILES_MATCHING PATTERN "*.png") INSTALL(FILES org.tizen.universal-switch.xml DESTINATION ${TZ_SYS_RO_PACKAGES}) INSTALL(FILES ${PROJECT_NAME}.edj DESTINATION ${RES_DIR}) INSTALL(PROGRAMS utils/setVconfKeys.sh DESTINATION scripts/) #documentation if (DOCS) # check if Doxygen is installed if (DOXYGEN_FOUND) # set input and output files set(DOXYGEN_IN docs/Doxyfile.in) set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) set(DOXYGEN_DIR ${CMAKE_BINARY_DIR}/doc_doxygen/) set(DOXYGEN_SRC ${CMAKE_SOURCE_DIR}/src/) configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY) message("Doxygen build started") add_custom_target(doc_doxygen ALL COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generating API documentation with Doxygen" VERBATIM ) INSTALL(DIRECTORY ${DOXYGEN_DIR} DESTINATION docs) else (DOXYGEN_FOUND) message("Doxygen need to be installed to generate the doxygen documentation") endif (DOXYGEN_FOUND) endif (DOCS)