# See the License for the specific language governing permissions and
# limitations under the License.
#
+#
# @file CMakeLists.txt
# @author Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com)
# @author Pawel Sikorski (p.sikorski@samsung.com)
# Check minimum CMake version
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(CMAKE_EDIT_COMMAND vim)
-
# Project name
PROJECT(wrt)
-SET(PROJECT_VERSION ${CMAKE_PACKAGE_API_VERSION})
+INCLUDE(FindPkgConfig)
-# Figure out version from changelog
-EXECUTE_PROCESS(COMMAND bash -c "head ${PROJECT_SOURCE_DIR}/debian/changelog --lines 1 |grep -o '(.*)' |sed 's/(\\|)//g'"
- OUTPUT_VARIABLE ${PROJECT_NAME}_version)
-STRING(STRIP ${${PROJECT_NAME}_version} ${PROJECT_NAME}_version)
-MESSAGE(STATUS "Version from changelog: ${${PROJECT_NAME}_version}")
-ADD_DEFINITIONS("-DWRT_ENGINE_VERSION=\"${${PROJECT_NAME}_version}\"")
+STRING(REGEX MATCH "([^.]*)" PROJECT_API_VERSION "${PROJECT_VERSION}")
+ADD_DEFINITIONS("-DPROJECT_API_VERSION=\"$(PROJECT_API_VERSION)\"")
+MESSAGE(STATUS "Version from changelog: ${PROJECT_VERSION}")
+ADD_DEFINITIONS("-DWRT_ENGINE_VERSION=\"${PROJECT_VERSION}\"") # WRT_ENGINE_VERSION is used by UA
+#ADD_DEFINITIONS("-DWRT_SMACK_ENABLED")
#############################
-# Options
-OPTION(OCSP "OCSP validation support" OFF)
-IF(OCSP)
- MESSAGE(STATUS "OCSP validation support: ENABLED")
- ADD_DEFINITIONS("-DOCSP_VALIDATION")
-ELSE(OCSP)
- MESSAGE(STATUS "OCSP validation support: DISABLED")
-ENDIF(OCSP)
-
-OPTION(PROFILING "Profiling enabled" ON)
-IF(PROFILING)
- MESSAGE(STATUS "PROFILING: ENABLED")
-ELSE(PROFILING)
- MESSAGE(STATUS "PROFILING: DISABLED")
-ENDIF(PROFILING)
-####
-
-OPTION(WEBKIT_SOUP_CACHE "Turns on/off SOUP cache in WebKit" ON)
-IF(WEBKIT_SOUP_CACHE)
- MESSAGE(STATUS "SOUP cache in Webkit: ENABLED")
- SET(WEBKIT_SOUP_CACHE_DIR "/opt/apps/widget/user/cache")
- ADD_DEFINITIONS("-DWEBKIT_SOUP_CACHE")
- ADD_DEFINITIONS("-DWEBKIT_SOUP_CACHE_DIR=\"${WEBKIT_SOUP_CACHE_DIR}\"")
- MESSAGE(STATUS "WEBKIT_SOUP_CACHE_DIR = ${WEBKIT_SOUP_CACHE_DIR}")
-ELSE(WEBKIT_SOUP_CACHE)
- MESSAGE(STATUS "SOUP cache in Webkit: DISABLED")
-ENDIF(WEBKIT_SOUP_CACHE)
-####
-
-CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/debian/wrt.postinst.in_all
- ${PROJECT_SOURCE_DIR}/debian/wrt.postinst.in
- @ONLY
- )
-####
-
-OPTION(SMACK_ENABLED "SMACK status" OFF)
-IF(SMACK_ENABLED)
- MESSAGE(STATUS "Smack is enabled")
- ADD_DEFINITIONS("-DWRT_SMACK_ENABLED")
-ELSE(SMACK_ENABLED)
- MESSAGE(STATUS "Smack is disabled")
-ENDIF(SMACK_ENABLED)
-
-OPTION(WRT_SKIP_ACE_SUPPORT "ACESKIP status" OFF)
-IF(WRT_SKIP_ACE_SUPPORT)
- MESSAGE(STATUS "ACE SKIP SUPPORT is enabled")
- ADD_DEFINITIONS("-DWRT_SKIP_ACE_SUPPORT")
-ELSE(WRT_SKIP_ACE_SUPPORT)
- MESSAGE(STATUS "ACE SKIP SUPPORT is disabled")
-ENDIF(WRT_SKIP_ACE_SUPPORT)
+# Build type
+IF(NOT CMAKE_BUILD_TYPE)
+ SET(CMAKE_BUILD_TYPE "Release")
+ENDIF(NOT CMAKE_BUILD_TYPE)
-#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)
+OPTION(WITH_TESTS "Build tests" OFF)
+#enable csp policy support
+OPTION(CSP_SUPPORT "Support for csp policy" ON)
+IF(CSP_SUPPORT)
+ ADD_DEFINITIONS("-DCSP_ENABLED")
+ENDIF(CSP_SUPPORT)
+# logs can be only enabled in debug mode
+IF(CMAKE_BUILD_TYPE MATCHES "Profiling" AND DPL_LOG)
MESSAGE(STATUS "Logging disabled for DPL")
-ENDIF(DPL_LOG)
-####
-
-# EFL platform
-# TODO: Probably may be removed
-SET(BUILD_TYPE "X1" CACHE STRING "Platform build: X1")
-####
-
-#When network is not always-on mode
-OPTION(DNET "DNET : not always on mode" OFF)
-IF(DNET)
- MESSAGE(STATUS "add -DUSE_DNET")
- ADD_DEFINITIONS("-DUSE_DNET")
-ENDIF(DNET)
-####
-
-# 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}")
-####
-
-#############################
-INCLUDE(FindPkgConfig)
-INCLUDE("CMakeUtils.txt")
-
-#############################
-#Other flags
-# TODO: Remove this codes when releasing a product.. This is maintained for test in development....
-ADD_DEFINITIONS("-DUSE_BROWSER_SETTING")
-####
+ELSE(CMAKE_BUILD_TYPE MATCHES "Profiling" AND DPL_LOG)
+ ADD_DEFINITIONS("-DDPL_LOGS_ENABLED")
+ MESSAGE(STATUS "Logging enabled for DPL")
+ENDIF(CMAKE_BUILD_TYPE MATCHES "Profiling" AND DPL_LOG)
+MESSAGE(STATUS "WITH_TESTS: " ${WITH_TESTS})
+MESSAGE(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+OPTION(PROFILING "Profiling status" OFF)
+IF(CMAKE_BUILD_TYPE MATCHES "Profiling")
+ MESSAGE(STATUS "PROFILING: ENABLED")
+ ADD_DEFINITIONS("-DPROFILING_ENABLED")
+ SET(PROFILING ON)
+ELSE(CMAKE_BUILD_TYPE MATCHES "Profiling")
+ MESSAGE(STATUS "PROFILING: DISABLED")
+ENDIF(CMAKE_BUILD_TYPE MATCHES "Profiling")
-#############################
# 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")
ADD_DEFINITIONS("-fPIC") # If supported for the target machine, emit position-independent code, suitable for dynamic linking and avoiding any limit on the size of the global offset table. This option makes a difference on the m68k, PowerPC and SPARC. (BJ: our ARM too?)
-ADD_DEFINITIONS("-DSEPARATED_SINGLETON_IMPLEMENTATION")
#ADD_DEFINITIONS("-fvisibility=hidden") # Set the default ELF image symbol visibility to hidden - all symbols will be marked with this unless overridden within the code.
+ADD_DEFINITIONS("-fPIE")
# Set compiler warning flags
#ADD_DEFINITIONS("-Werror") # Make all warnings into errors.
# Targets names
SET(TARGET_WRT_ENGINE_STATIC "wrt-engine-static")
SET(TARGET_TESTS_COMMON_LIB "wrt-engine-tests-lib") #tests only
-SET(TARGET_ACE_CLIENT_LIB "wrt-ace-client") #ACE thin client
SET(TARGET_PROFILING_LIB "wrt-profiling")
-SET(TARGET_PLUGIN_LOADING_LIB "wrt-plugin-loading")
-
-#############################
-#PROFILING
+SET(TARGET_PLUGIN_MODULE_LIB "wrt-plugin-module")
+SET(TARGET_VIEW_MODULE_LIB "wrt-view-module")
+SET(TARGET_CORE_MODULE_LIB "wrt-core-module")
+SET(TARGET_BUNDLES_LIB "wrt-wk2-bundle")
+SET(PROF_LIB "")
IF(PROFILING)
- ADD_DEFINITIONS("-DPROFILING_ENABLED")
SET(PROF_LIB ${TARGET_PROFILING_LIB})
-ELSE(PROFILING)
- SET(PROF_LIB "")
ENDIF(PROFILING)
-INSTALL(FILES ${PROJECT_SOURCE_DIR}/wrt_policy_setter.sh
+INSTALL(FILES
+ ${PROJECT_SOURCE_DIR}/wrt_reset_db.sh
+ ${PROJECT_SOURCE_DIR}/wrt_reset_all.sh
DESTINATION /usr/bin/
)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/warp_security_error.msg
DESTINATION /usr/etc/wrt/
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE
)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/roaming_error.msg
- DESTINATION /usr/etc/wrt/
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE
- )
INSTALL(FILES ${CMAKE_SOURCE_DIR}/parental.png
DESTINATION /usr/etc/wrt/
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE
)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/wrt_widget_default_icon.png
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/default_icon_tizen.png
+ DESTINATION share/wrt-engine/
+ )
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/default_icon_wac.png
DESTINATION share/wrt-engine/
)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/userAgentProfile.xml
INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/WAC2.0TestRootCA.cert
DESTINATION share/wrt-engine/
)
-ADD_CUSTOM_COMMAND(
- OUTPUT ${PROJECT_SOURCE_DIR}/data/communicationBox.edj
- COMMAND edje_cc
- ARGS ${PROJECT_SOURCE_DIR}/data/communicationBox.edc
- ${PROJECT_SOURCE_DIR}/data/communicationBox.edj
- DEPENDS ${PROJECT_SOURCE_DIR}/data/communicationBox.edc
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/AutoSave.js
+ DESTINATION share/wrt-engine/
)
ADD_CUSTOM_COMMAND(
OUTPUT ${PROJECT_SOURCE_DIR}/data/wrt_theme.edj
${PROJECT_SOURCE_DIR}/data/Daemon.edj
DEPENDS ${PROJECT_SOURCE_DIR}/data/Daemon.edc
)
-ADD_CUSTOM_TARGET( ACE_EDJES ALL DEPENDS
- ${PROJECT_SOURCE_DIR}/data/communicationBox.edj
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${PROJECT_SOURCE_DIR}/data/Platform.edj
+ COMMAND edje_cc
+ ARGS ${PROJECT_SOURCE_DIR}/data/Platform.edc
+ ${PROJECT_SOURCE_DIR}/data/Platform.edj
+ DEPENDS ${PROJECT_SOURCE_DIR}/data/Platform.edc
)
ADD_CUSTOM_TARGET( WRT_THEME_EDJES ALL DEPENDS
${PROJECT_SOURCE_DIR}/data/wrt_theme.edj
ADD_CUSTOM_TARGET( WRT_EDJES ALL DEPENDS
${PROJECT_SOURCE_DIR}/data/Daemon.edj
)
+ADD_CUSTOM_TARGET( WRT_PLATFORM_LAYOUT_EDJES ALL DEPENDS
+ ${PROJECT_SOURCE_DIR}/data/Platform.edj
+ )
ADD_CUSTOM_COMMAND(
OUTPUT ${PROJECT_SOURCE_DIR}/data/generic_popup.edj
COMMAND edje_cc
INSTALL(FILES ${PROJECT_SOURCE_DIR}/data/generic_popup.edj
DESTINATION share/edje/ace/
)
-INSTALL(FILES ${PROJECT_SOURCE_DIR}/data/communicationBox.edj
- DESTINATION share/edje/ace/
- )
INSTALL(FILES ${PROJECT_SOURCE_DIR}/data/wrt_theme.edj
DESTINATION share/edje/wrt/
)
INSTALL(FILES ${PROJECT_SOURCE_DIR}/data/Daemon.edj
DESTINATION share/edje/wrt/
)
+INSTALL(FILES ${PROJECT_SOURCE_DIR}/data/Platform.edj
+ DESTINATION share/edje/wrt/
+ )
ADD_CUSTOM_COMMAND(
OUTPUT ${PROJECT_SOURCE_DIR}/data/generic_popup_horizontal.edj
COMMAND edje_cc
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(po)
-ADD_SUBDIRECTORY(tests)
-ADD_SUBDIRECTORY(ace_client)
-#############################
-#PKG CONFIGS
-set(PKGCONFIG_DIR ${PROJECT_SOURCE_DIR}/pkgconfigs)
+SET(WRT_API_NEW_INCLUDES
+ "${PROJECT_SOURCE_DIR}/src/api_new/"
+ "${PROJECT_SOURCE_DIR}/src/domain/"
+ "${PROJECT_SOURCE_DIR}/src/view/")
+
+SET(PKGCONFIG_DIR ${PROJECT_SOURCE_DIR}/pkgconfig)
+
+CONFIGURE_FILE(${PKGCONFIG_DIR}/wrt-core.pc.in
+ ${PKGCONFIG_DIR}/wrt-core.pc @ONLY)
+INSTALL(FILES ${PKGCONFIG_DIR}/wrt-core.pc DESTINATION lib/pkgconfig)
+
+IF(WITH_TESTS)
+ add_subdirectory(tests)
+ENDIF(WITH_TESTS)
-macro(configure_and_install_pkg PKG_FILE)
- CONFIGURE_FILE(${PKGCONFIG_DIR}/${PKG_FILE}.in
- ${PKGCONFIG_DIR}/${PKG_FILE} @ONLY)
- INSTALL(FILES ${PKGCONFIG_DIR}/${PKG_FILE} DESTINATION lib/pkgconfig)
-endmacro(configure_and_install_pkg)
-configure_and_install_pkg(wrt-plugin-api.pc)
-configure_and_install_pkg(wrt-engine.pc)
-configure_and_install_pkg(wrt-ace-client.pc)
-configure_and_install_pkg(wrt-plugin-loading.pc)