#
cmake_minimum_required(VERSION 2.6)
-IF("${CMAKE_PROJECT_NAME}" STREQUAL "")
- SET(CMAKE_PROJECT_NAME wrt-plugins-common)
-ENDIF("${CMAKE_PROJECT_NAME}" STREQUAL "")
-
+SET(CMAKE_PROJECT_NAME wrt-plugins-common)
set(PACKAGE_NAME ${CMAKE_PROJECT_NAME})
-
project(${CMAKE_PROJECT_NAME})
+STRING(REGEX MATCH "([^.]*)" CMAKE_PROJECT_API_VERSION "${CMAKE_PROJECT_VERSION}")
################################################################################
# Required platform modules
include(FindPkgConfig)
-pkg_search_module(dpl REQUIRED dpl-efl>=1.0.0)
+pkg_search_module(dpl REQUIRED dpl-efl>=0.2.21)
include_directories(
${dpl_INCLUDE_DIRS}
-)
-
-
-#
-# Logs
-#
-OPTION(DPL_LOG "DPL logs status" ON)
-
-IF(DPL_LOG)
- MESSAGE(STATUS "Logging enabled for DPL")
- ADD_DEFINITIONS("-DDPL_LOGS_ENABLED")
-ELSE(DPL_LOG)
- MESSAGE(STATUS "Logging disabled for DPL")
-ENDIF(DPL_LOG)
-
-
-###############################################################################
-# Set build type (Release by default)
-IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
- SET(CMAKE_BUILD_TYPE Release)
-ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
-
-MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/modules/API
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/Commons
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/CommonsJavaScript
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/plugin-loading
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/js-overlay
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/wrt-popup/ace/popup-runner
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/plugins_ipc_message
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/dispatch-event)
##############################################################################
+# Build type
+IF(NOT CMAKE_BUILD_TYPE)
+ SET(CMAKE_BUILD_TYPE "Release")
+ENDIF(NOT CMAKE_BUILD_TYPE)
+
# Compiler flags
-SET(CMAKE_C_FLAGS_PROFILING "-O0 -g -pg")
-SET(CMAKE_CXX_FLAGS_PROFILING "-O0 -std=c++0x -g -pg")
+SET(CMAKE_C_FLAGS_PROFILING "-O2")
+SET(CMAKE_CXX_FLAGS_PROFILING "-O2 -std=c++0x")
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -std=c++0x -g")
SET(CMAKE_C_FLAGS_RELEASE "-O2 -g")
SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -std=c++0x -g")
+SET(CMAKE_CXX_FLAGS_CCOV "-O0 -std=c++0x -g --coverage")
####
+OPTION(DPL_LOG "DPL logs status" ON)
+OPTION(WITH_TESTS "Build tests" OFF)
+
+IF(DPL_LOG AND NOT CMAKE_BUILD_TYPE MATCHES "profiling")
+ MESSAGE(STATUS "Logging enabled for DPL")
+ ADD_DEFINITIONS("-DDPL_LOGS_ENABLED")
+ELSE(DPL_LOG AND NOT CMAKE_BUILD_TYPE MATCHES "profiling")
+ MESSAGE(STATUS "Logging disabled for DPL")
+ENDIF(DPL_LOG AND NOT CMAKE_BUILD_TYPE MATCHES "profiling")
+
+MESSAGE(STATUS "WITH_TESTS: " ${WITH_TESTS})
+
+ADD_DEFINITIONS("-fPIC")
ADD_DEFINITIONS("-fvisibility=default") # mark all exported symbols as visible
+ADD_DEFINITIONS("-fPIC") # If supported for the target machine, emit position-independent code, suitable for dynamic linking and avoiding
ADD_DEFINITIONS("-DEXPORT_API=")
ADD_DEFINITIONS("-Wall")
-ADD_DEFINITIONS("-Werror")
+#ADD_DEFINITIONS("-Werror")
ADD_DEFINITIONS("-Wextra")
ADD_DEFINITIONS("-Wno-deprecated")
+#ADD_DEFINITIONS("-DDEVPKG")
+# GCC 4.7 changes the scheme of name lookup. Guide: http://gcc.gnu.org/gcc-4.7/porting_to.html
+ADD_DEFINITIONS("-fpermissive")
-#disable default singleton implementation
-ADD_DEFINITIONS("-DSEPARATED_SINGLETON_IMPLEMENTATION")
+##############################################################################
+# CMake flags
+IF (DEVPKG)
+ SET(DEVPKG "ON")
+ENDIF(DEVPKG)
################################################################################
# Miscellaneous variables
set(DESTINATION_HEADERS_NON_JS ${DESTINATION_HEADER_PREFIX}/Commons)
set(DESTINATION_HEADERS_JS ${DESTINATION_HEADER_PREFIX}/CommonsJavaScript)
+set(DESTINATION_HEADERS_JS_OVERLAY ${DESTINATION_HEADER_PREFIX}/js-overlay)
+set(DESTINATION_HEADERS_WRT_POPUP_RUNNER ${DESTINATION_HEADER_PREFIX}/popup-runner)
################################################################################
# Target platform
endif ()
################################################################################
+# Schema of plugin's configuration file
+
+set(COMMON_CONFIG_DTD ${CMAKE_CURRENT_SOURCE_DIR}/config.dtd)
+set(COMMON_CONFIG_DTD_DST /usr/etc/wrt-plugins)
+INSTALL(FILES ${COMMON_CONFIG_DTD} DESTINATION ${COMMON_CONFIG_DTD_DST})
+
+################################################################################
# Macros used for including plugins from AL.
# Subdirectories
add_subdirectory(src)
-add_subdirectory(tests)
+
+IF(WITH_TESTS)
+ add_subdirectory(tests)
+ENDIF(WITH_TESTS)
################################################################################
# PKGCONFIG
configure_and_install_pkg(wrt-plugins-commons-javascript.pc)
configure_and_install_pkg(wrt-plugins-commons.pc)
configure_and_install_pkg(wrt-plugins-filesystem.pc)
-configure_and_install_pkg(wrt-plugins-camera.pc)
-configure_and_install_pkg(wrt-plugins-messaging.pc)
-configure_and_install_pkg(wrt-plugins-calendar.pc)
-configure_and_install_pkg(wrt-plugins-haptics.pc)
-configure_and_install_pkg(wrt-plugins-contact.pc)
-configure_and_install_pkg(wrt-plugins-mmplayer.pc)
-configure_and_install_pkg(wrt-plugins-widget.pc)
-configure_and_install_pkg(wrt-plugins-cpu.pc)
-configure_and_install_pkg(wrt-plugins-accelerometer.pc)
-configure_and_install_pkg(wrt-plugins-task.pc)
-configure_and_install_pkg(wrt-plugins-orientation.pc)
-configure_and_install_pkg(wrt-plugins-radio.pc)
-configure_and_install_pkg(wrt-plugins-power.pc)
-configure_and_install_pkg(wrt-plugins-profile.pc)
-configure_and_install_pkg(wrt-plugins-localstorage.pc)
-configure_and_install_pkg(wrt-plugins-systeminfo.pc)
-configure_and_install_pkg(wrt-plugins-widget_interface_dao.pc)
-configure_and_install_pkg(wrt-plugins-storageevent.pc)
+configure_and_install_pkg(wrt-plugins-widget-interface.pc)
configure_and_install_pkg(wrt-plugins-widgetdb.pc)
configure_and_install_pkg(wrt-plugins-plugin-manager.pc)
+configure_and_install_pkg(wrt-plugin-loading.pc)
+configure_and_install_pkg(wrt-plugin-js-overlay.pc)
+configure_and_install_pkg(wrt-popup-runner.pc)
+configure_and_install_pkg(wrt-popup-ace-runner.pc)
+configure_and_install_pkg(wrt-popup-wrt-runner.pc)
+configure_and_install_pkg(wrt-plugins-api-support.pc)
+configure_and_install_pkg(wrt-plugins-ipc-message.pc)
+configure_and_install_pkg(wrt-dispatch-event.pc)
################################################################################
# Cache
set(CMAKE_CONFIG_FILE_NAME "${CMAKE_CONFIG_FILE_NAME}" CACHE
STRING "CMake configuration file name." FORCE)
+################################################################################
+# SMACK rule
+
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/wrt-popup-ace-runtime.rule DESTINATION /etc/smack/accesses2.d)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/wrt-popup-wrt-runtime.rule DESTINATION /etc/smack/accesses2.d)
+# temp for smack branch
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/accesses.d/wrt-popup-ace-runtime.rule DESTINATION /opt/etc/smack/accesses.d)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/accesses.d/wrt-popup-wrt-runtime.rule DESTINATION /opt/etc/smack/accesses.d)
################################################################################
# Summary