CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(homescreen CXX) SET(SRCS cluster/scalable.cpp cluster/cluster-home-accessibility.cpp cluster/cluster-initdb.cpp cluster/cluster-data-coordinate.cpp cluster/widget-data.cpp cluster/widget-data-provider.cpp cluster/cluster-data-list.cpp cluster/cluster-view-controller.cpp cluster/cluster-view.cpp cluster/cluster-view-impl.cpp cluster/cluster.cpp cluster/cluster-impl.cpp cluster/custom-cluster.cpp cluster/custom-cluster-impl.cpp cluster/custom-cluster-edit-manager.cpp cluster/custom-cluster-rearranger.cpp cluster/custom-cluster-page.cpp cluster/custom-cluster-page-impl.cpp cluster/box.cpp cluster/box-impl.cpp cluster/empty-box.cpp cluster/empty-box-impl.cpp cluster/custom-box.cpp cluster/custom-box-impl.cpp cluster/shader/unpremultiply-nine-patch-mask-effect.cpp cluster/shader/unpremultiply-effect.cpp cluster/shader/image-region-effect.cpp main/homescreen-main.cpp main/homescreen.cpp mainmenu/mainmenu-apps-view.cpp mainmenu/mainmenu-apps-view-impl.cpp mainmenu/mainmenu-box.cpp mainmenu/mainmenu-box-impl.cpp mainmenu/mainmenu-custom-box.cpp mainmenu/mainmenu-custom-box-impl.cpp mainmenu/mainmenu-data-manager.cpp mainmenu/mainmenu-folder-box.cpp mainmenu/mainmenu-folder-box-impl.cpp mainmenu/mainmenu-folder-page.cpp mainmenu/mainmenu-folder-page-impl.cpp mainmenu/mainmenu-folder-view.cpp mainmenu/mainmenu-folder-view-impl.cpp mainmenu/mainmenu-page.cpp mainmenu/mainmenu-page-impl.cpp mainmenu/mainmenu-package-manager.cpp mainmenu/mainmenu-presenter.cpp mainmenu/mainmenu-recent-apps-view.cpp mainmenu/mainmenu-view.cpp mainmenu/mainmenu-view-manager.cpp mainmenu/mainmenu-view-manager-impl.cpp mainmenu/mainmenu-data.cpp mainmenu/mainmenu-page-data.cpp mainmenu/mainmenu-box-data.cpp util/util-text-image.cpp util/util-text-image-impl.cpp util/util-text-image-provider.cpp util/util-booster.cpp util/util-color-image.cpp common/homescreen-view.cpp common/homescreen-view-manager.cpp common/homescreen-page-indicator.cpp common/homescreen-badge.cpp common/homescreen-center-popup.cpp common/homescreen-wallpaper.cpp common/menu-popup.cpp common/menu-popup-impl.cpp common/homescreen-const.cpp ) SET(VENDOR "tizen") SET(PACKAGE ${PROJECT_NAME}) SET(PKGNAME "org.${VENDOR}.${PACKAGE}") SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(BINDIR "${PREFIX}/bin") SET(RESDIR "${PREFIX}/res") SET(EDJEDIR "${RESDIR}/edje") SET(ICONDIR "${RESDIR}/icons") SET(DATADIR "/opt${PREFIX}/data") SET(LOCALEDIR "${RESDIR}/locale") SET(IMAGEDIR "${RESDIR}/images") IF("${CMAKE_BUILD_TYPE}" STREQUAL "") SET(CMAKE_BUILD_TYPE "Release") ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") MESSAGE("Build type: ${CMAKE_BUILD_TYPE}") INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/cluster ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/mainmenu ${CMAKE_SOURCE_DIR}/common ${CMAKE_SOURCE_DIR}/util ) INCLUDE(FindPkgConfig) pkg_check_modules(pkgs REQUIRED capi-appfw-application capi-appfw-package-manager capi-appfw-preference capi-system-system-settings pkgmgr ecore-input ecore dali dali-core dali-toolkit libtbm dlog widget_viewer widget_service db-util sqlite3 shortcut vconf pkgmgr-info libxml-2.0 widget_service feedback notification badge libpng appsvc syspopup-caller elementary libtzplatform-config ) FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}") ENDFOREACH(flag) SET(GC_SECTIONS_FLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections") SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${GC_SECTIONS_FLAGS}") SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${GC_SECTIONS_FLAGS}") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall -std=c++0x") SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -Wall") SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall") FIND_PROGRAM(UNAME NAMES uname) EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") IF("${ARCH}" STREQUAL "arm") ADD_DEFINITIONS("-DTARGET") MESSAGE("add -DTARGET") ENDIF("${ARCH}" STREQUAL "arm") ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"") ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"") ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"") ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"") ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"") ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"") ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"") ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"") SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") IF(ENABLE_HOMESCREEN_LAYOUT_JAPAN) ADD_DEFINITIONS(-DFEATURE_HOMESCREEN_LAYOUT_JAPAN) ELSE(ENABLE_HOMESCREEN_LAYOUT_JAPAN) #ADD_DEFINITIONS(-DFEATURE_HOMESCREEN_ZEROPAGE_ENABLE) ENDIF(ENABLE_HOMESCREEN_LAYOUT_JAPAN) ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} "-lm -ldl") INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) # install desktop file #CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/debian/desktop ${CMAKE_BINARY_DIR}/${PKGNAME}.desktop) #INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.desktop DESTINATION /opt/share/applications) # install manifest file CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${PKGNAME}.xml ${CMAKE_BINARY_DIR}/${PKGNAME}.xml) INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.xml DESTINATION /usr/share/packages) INSTALL(FILES ${CMAKE_SOURCE_DIR}/icons/Homescreen.png DESTINATION /usr/share/icons/default/small) #install application HOME directory INSTALL(DIRECTORY DESTINATION ${DATADIR}) INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/xmls DESTINATION ${DATADIR}) INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/images DESTINATION "${RESDIR}") # edje_cc ADD_CUSTOM_TARGET(cluster-home-icon.edj COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/res/images/ ${CMAKE_CURRENT_SOURCE_DIR}/res/edje/cluster-home-icon.edc ${CMAKE_CURRENT_BINARY_DIR}/cluster-home-icon.edj DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/edje/cluster-home-icon.edc ) ADD_DEPENDENCIES(${PROJECT_NAME} cluster-home-icon.edj) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/cluster-home-icon.edj DESTINATION ${EDJEDIR}) #install help resource #INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/help/ DESTINATION ${PREFIX}/shared/res) #install theme resource INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/tables DESTINATION ${PREFIX}/shared/res) #install icon #INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/icons/${PKGNAME}.png DESTINATION /opt/share/icons/default/small) #install etc #ADD_SUBDIRECTORY(res) #i18n ADD_SUBDIRECTORY(po) #init cluster db #ADD_SUBDIRECTORY(initdb)