Tizen 2.1 base
[platform/framework/web/wrt-plugins-common.git] / CMakeLists.txt
index ffa4731..e9241f4 100644 (file)
 #
 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)
 
 ##############################################################################
+# 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")
 
-#disable default singleton implementation
-ADD_DEFINITIONS("-DSEPARATED_SINGLETON_IMPLEMENTATION")
+##############################################################################
+# CMake flags
+IF (DEVPKG)
+    SET(DEVPKG "ON")
+ENDIF(DEVPKG)
 
 ################################################################################
 # Miscellaneous variables
@@ -86,6 +91,8 @@ set(DESTINATION_HEADER_PREFIX include/${PROJECT_NAME})
 
 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
@@ -95,6 +102,13 @@ if (NOT DEFINED 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.
 
 
@@ -107,7 +121,10 @@ endfunction()
 # Subdirectories
 
 add_subdirectory(src)
-add_subdirectory(tests)
+
+IF(WITH_TESTS)
+  add_subdirectory(tests)
+ENDIF(WITH_TESTS)
 
 ################################################################################
 # PKGCONFIG
@@ -123,26 +140,15 @@ endmacro(configure_and_install_pkg)
 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-dao.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)
 
 ################################################################################
 # Cache