1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2 PROJECT(wrt-plugins-tizen)
4 # -----------------------------------------------------------------------------
5 # Required platform modules
6 # -----------------------------------------------------------------------------
9 PKG_CHECK_MODULES(webkit2 REQUIRED ewebkit2)
10 PKG_CHECK_MODULES(dpl REQUIRED dpl-efl)
11 PKG_CHECK_MODULES(dpl-event REQUIRED dpl-event-efl)
12 PKG_CHECK_MODULES(wrt-plugins-types REQUIRED wrt-plugins-types)
13 PKG_CHECK_MODULES(wrt-deviceapis-commons REQUIRED wrt-plugins-commons)
14 PKG_CHECK_MODULES(wrt-deviceapis-commons-javascript REQUIRED wrt-plugins-commons-javascript)
15 PKG_CHECK_MODULES(wrt-plugins-widgetdb REQUIRED wrt-plugins-widgetdb)
18 ${webkit2_INCLUDE_DIRS}
20 ${wrt-plugins-types_INCLUDE_DIRS}
21 ${wrt-deviceapis-commons_INCLUDE_DIRS}
22 ${wrt-deviceapis-commons-javascript_INCLUDE_DIRS}
25 # -----------------------------------------------------------------------------
26 # Determine the log option
27 # -----------------------------------------------------------------------------
29 OPTION(DPL_LOG "DPL logs status" ON)
32 MESSAGE(STATUS "Logging enabled for DPL")
33 ADD_DEFINITIONS("-DDPL_LOGS_ENABLED")
35 MESSAGE(STATUS "Logging disabled for DPL")
38 # -----------------------------------------------------------------------------
39 # Determine the time tracing option
40 # -----------------------------------------------------------------------------
42 OPTION(ENABLE_TIME_TRACER "TIME TRACING" OFF)
44 IF(ENABLE_TIME_TRACER)
45 MESSAGE(STATUS "Time tracer enabled")
46 ADD_DEFINITIONS("-DENABLE_TIME_TRACER")
47 ELSE(ENABLE_TIME_TRACER)
48 MESSAGE(STATUS "Time tracer disabled")
49 ENDIF(ENABLE_TIME_TRACER)
51 # -----------------------------------------------------------------------------
52 # Set build type (Release by default)
53 # -----------------------------------------------------------------------------
54 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
55 SET(CMAKE_BUILD_TYPE Release)
56 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
58 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
61 # -----------------------------------------------------------------------------
62 # Determine the feature configuration for optional API
63 # -----------------------------------------------------------------------------
65 IF(ENABLE_OPTIONAL_BT)
66 MESSAGE(STATUS "Bluetooth API Enabled")
67 ADD_DEFINITIONS( -DFEATURE_OPTIONAL_BT )
68 ENDIF(ENABLE_OPTIONAL_BT)
70 IF(ENABLE_OPTIONAL_CALL_HISTORY)
71 MESSAGE(STATUS "Callhistory API Enabled")
72 ADD_DEFINITIONS( -DFEATURE_OPTIONAL_CALL_HISTORY )
73 ENDIF(ENABLE_OPTIONAL_CALL_HISTORY)
75 IF(ENABLE_OPTIONAL_NBS)
76 MESSAGE(STATUS "Network Bearer Selection API Enabled")
77 ADD_DEFINITIONS( -DFEATURE_OPTIONAL_NBS )
78 ENDIF(ENABLE_OPTIONAL_NBS)
80 IF(ENABLE_OPTIONAL_NFC)
81 MESSAGE(STATUS "NFC API Enabled")
82 ADD_DEFINITIONS( -DFEATURE_OPTIONAL_NFC )
83 ENDIF(ENABLE_OPTIONAL_NFC)
85 IF(ENABLE_OPTIONAL_PUSH)
86 MESSAGE(STATUS "Push API Enabled")
87 ADD_DEFINITIONS( -DFEATURE_OPTIONAL_PUSH )
88 ENDIF(ENABLE_OPTIONAL_PUSH)
90 IF(ENABLE_OPTIONAL_SE)
91 MESSAGE(STATUS "Secure Element API Enabled")
92 ADD_DEFINITIONS( -DFEATURE_OPTIONAL_SE )
93 ENDIF(ENABLE_OPTIONAL_SE)
95 # -----------------------------------------------------------------------------
97 # -----------------------------------------------------------------------------
98 SET(CMAKE_C_FLAGS_PROFILING "-O0 -g -pg")
99 SET(CMAKE_CXX_FLAGS_PROFILING "-O0 -std=c++0x -g -pg")
100 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
101 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -std=c++0x -g")
102 SET(CMAKE_C_FLAGS_RELEASE "-O2 -g")
103 SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -std=c++0x -g")
104 ADD_DEFINITIONS("-DCLIENT_IPC_THREAD")
105 ADD_DEFINITIONS("-DEXPORT_API=")
106 ADD_DEFINITIONS("-Wall")
107 ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
108 #ADD_DEFINITIONS("-Werror")
109 #ADD_DEFINITIONS("-Wextra")
110 ADD_DEFINITIONS("-DAPPLICATION_API_BACKWARD_COMPATIBILITY")
113 # -----------------------------------------------------------------------------
114 # Schema of plugin's configuration file
115 # -----------------------------------------------------------------------------
116 SET(COMMON_CONFIG_DTD ${CMAKE_CURRENT_SOURCE_DIR}/config.dtd)
117 SET(COMMON_CONFIG_DTD_DST /usr/etc/tizen-apis)
118 INSTALL(FILES ${COMMON_CONFIG_DTD} DESTINATION ${COMMON_CONFIG_DTD_DST})
120 # -----------------------------------------------------------------------------
122 # -----------------------------------------------------------------------------
124 SET(DESTINATION_LIB_PREFIX lib/wrt-plugins)
126 SET(DESTINATION_HEADER_PREFIX include/${PROJECT_NAME})
128 SET(TOP ${CMAKE_SOURCE_DIR}/src)
130 SET(INCLUDE_COMMON ${TOP}/Common ${TOP}/Common/TimeTracer)
136 ${wrt-deviceapis-commons_LDFLAGS}
137 ${wrt-deviceapis-commons-javascript_LDFLAGS}
140 SET(CMAKE_INSTALL_RPATH ${wrt-deviceapis-commons_LIBRARY_DIRS})
142 SET(LIBS_WIDGETDB ${wrt-plugins-widgetdb_LIBRARIES})
144 # -----------------------------------------------------------------------------
145 # Macros for pkgconfig
146 # -----------------------------------------------------------------------------
147 SET(PKGCONFIG_DIR ${CMAKE_SOURCE_DIR}/pkgconfigs)
149 MACRO(configure_and_install_pkg PKG_FILE)
150 CONFIGURE_FILE(${PKGCONFIG_DIR}/${PKG_FILE}.in
151 ${PKGCONFIG_DIR}/${PKG_FILE} @ONLY)
152 INSTALL(FILES ${PKGCONFIG_DIR}/${PKG_FILE} DESTINATION lib/pkgconfig)
153 ENDMACRO(configure_and_install_pkg)
155 # -----------------------------------------------------------------------------
156 # Functions used for plugins
157 # -----------------------------------------------------------------------------
159 FUNCTION(set_target NAME)
160 STRING(TOLOWER ${NAME} LOWER_NAME)
161 SET(${LOWER_NAME}_dest tizen-${LOWER_NAME} PARENT_SCOPE)
162 SET(${LOWER_NAME}_target wrt-plugins-tizen-${LOWER_NAME} PARENT_SCOPE)
163 SET(${LOWER_NAME}_impl wrt-plugins-tizen-${LOWER_NAME}-impl PARENT_SCOPE)
164 SET(${LOWER_NAME}_config wrt-plugins-tizen-${LOWER_NAME}-config PARENT_SCOPE)
165 configure_and_install_pkg(wrt-plugins-tizen-${LOWER_NAME}.pc)
169 FUNCTION(add_subdir NAME)
170 MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}")
171 ADD_SUBDIRECTORY(${NAME})
176 FOREACH(VALUE ${ARGN})
179 FOREACH(VALUE ${ARGN})
184 ADD_SUBDIRECTORY(src)