fixed compile errors
[platform/framework/web/wrt-plugins-tizen.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2 PROJECT(wrt-plugins-tizen)
3
4 # -----------------------------------------------------------------------------
5 # Required platform modules
6 # -----------------------------------------------------------------------------
7 INCLUDE(FindPkgConfig)
8
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)
16
17 INCLUDE_DIRECTORIES(
18   ${webkit2_INCLUDE_DIRS}
19   ${dpl_INCLUDE_DIRS}
20   ${wrt-plugins-types_INCLUDE_DIRS}
21   ${wrt-deviceapis-commons_INCLUDE_DIRS}
22   ${wrt-deviceapis-commons-javascript_INCLUDE_DIRS}
23 )
24
25 # -----------------------------------------------------------------------------
26 # Determine the log option
27 # -----------------------------------------------------------------------------
28
29 OPTION(DPL_LOG "DPL logs status" ON)
30
31 IF(DPL_LOG)
32     MESSAGE(STATUS "Logging enabled for DPL")
33     ADD_DEFINITIONS("-DDPL_LOGS_ENABLED")
34 ELSE(DPL_LOG)
35     MESSAGE(STATUS "Logging disabled for DPL")
36 ENDIF(DPL_LOG)
37
38 # -----------------------------------------------------------------------------
39 # Determine the time tracing option
40 # -----------------------------------------------------------------------------
41
42 OPTION(ENABLE_TIME_TRACER "TIME TRACING" OFF)
43
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)
50
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 "")
57
58 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
59
60
61 # -----------------------------------------------------------------------------
62 # Determine the feature configuration for optional API
63 # -----------------------------------------------------------------------------
64
65 IF(ENABLE_OPTIONAL_BT)
66     MESSAGE(STATUS "Bluetooth API Enabled")
67     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_BT )
68 ENDIF(ENABLE_OPTIONAL_BT)
69
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)
74
75 IF(ENABLE_OPTIONAL_NBS)
76     MESSAGE(STATUS "Network Bearer Selection API Enabled")
77     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_NBS )
78 ENDIF(ENABLE_OPTIONAL_NBS)
79
80 IF(ENABLE_OPTIONAL_NFC)
81     MESSAGE(STATUS "NFC API Enabled")
82     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_NFC )
83 ENDIF(ENABLE_OPTIONAL_NFC)
84
85 IF(ENABLE_OPTIONAL_PUSH)
86     MESSAGE(STATUS "Push API Enabled")
87     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_PUSH )
88 ENDIF(ENABLE_OPTIONAL_PUSH)
89
90 IF(ENABLE_OPTIONAL_SE)
91     MESSAGE(STATUS "Secure Element API Enabled")
92     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_SE )
93 ENDIF(ENABLE_OPTIONAL_SE)
94
95
96 IF(ENABLE_OPTIONAL_MSG_PORT)
97     MESSAGE(STATUS "Message port API Enabled")
98     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_MSG_PORT )
99 ENDIF(ENABLE_OPTIONAL_MSG_PORT)
100
101 IF(WITH_EBOOK)
102     # Replaces the default contacts-service2.
103     MESSAGE(STATUS "Contacts API using Evolution Data Server libebook")
104     ADD_DEFINITIONS( -DFEATURE_EBOOK )
105 ENDIF(WITH_EBOOK)
106
107 IF(ENABLE_OPTIONAL_SYSINFO_TEL_SIM_MNGT)
108     MESSAGE(STATUS "System-info SIM management API Enabled")
109     ADD_DEFINITIONS( -DENABLE_OPTIONAL_SYSINFO_TEL_SIM_MNGT )
110 ENDIF(ENABLE_OPTIONAL_SYSINFO_TEL_SIM_MNGT)
111
112 IF(ENABLE_OPTIONAL_SYSINFO_CELLULAR_NETWORK_MNGT)
113     MESSAGE(STATUS "System-info Cellular Network management API Enabled")
114     ADD_DEFINITIONS( -DENABLE_OPTIONAL_SYSINFO_CELLULAR_NETWORK_MNGT )
115 ENDIF(ENABLE_OPTIONAL_SYSINFO_CELLULAR_NETWORK_MNGT)
116
117 # -----------------------------------------------------------------------------
118 # CFlags
119 # -----------------------------------------------------------------------------
120 SET(OPTIMIZATION_FLAGS         "-falign-functions -falign-jumps -falign-loops -falign-labels -freorder-blocks -ftree-vect-loop-version")
121 SET(CMAKE_C_FLAGS_PROFILING    "-O0 -g -pg")
122 SET(CMAKE_CXX_FLAGS_PROFILING  "-O0 -std=c++0x -g -pg")
123 SET(CMAKE_C_FLAGS_DEBUG        "-O0 -g")
124 SET(CMAKE_CXX_FLAGS_DEBUG      "-O0 -std=c++0x -g")
125 SET(CMAKE_C_FLAGS_RELEASE      "-Os -g ${OPTIMIZATION_FLAGS}")
126 SET(CMAKE_CXX_FLAGS_RELEASE    "-Os -std=c++0x -g ${OPTIMIZATION_FLAGS}")
127 ADD_DEFINITIONS("-DCLIENT_IPC_THREAD")
128 ADD_DEFINITIONS("-DEXPORT_API=")
129 ADD_DEFINITIONS("-Wall")
130 ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
131 #ADD_DEFINITIONS("-Werror")
132 #ADD_DEFINITIONS("-Wextra")
133 ADD_DEFINITIONS("-DAPPLICATION_API_BACKWARD_COMPATIBILITY")
134
135
136 # -----------------------------------------------------------------------------
137 # Schema of plugin's configuration file
138 # -----------------------------------------------------------------------------
139 SET(COMMON_CONFIG_DTD ${CMAKE_CURRENT_SOURCE_DIR}/config.dtd)
140 SET(COMMON_CONFIG_DTD_DST /usr/etc/tizen-apis)
141 INSTALL(FILES ${COMMON_CONFIG_DTD} DESTINATION ${COMMON_CONFIG_DTD_DST})
142
143 # -----------------------------------------------------------------------------
144 # Global variables
145 # -----------------------------------------------------------------------------
146
147 SET(DESTINATION_LIB_PREFIX ${LIB_INSTALL_DIR}/wrt-plugins)
148
149 SET(DESTINATION_HEADER_PREFIX include/${PROJECT_NAME})
150
151 SET(TOP ${CMAKE_SOURCE_DIR}/src)
152
153 SET(INCLUDE_COMMON ${TOP}/Common ${TOP}/Common/TimeTracer)
154
155 SET(LIBS_COMMON
156     ${dpl_LDFLAGS}
157     ${dpl-event_LDFLAGS}
158     ${webkit2_LDFLAGS}
159     ${wrt-deviceapis-commons_LDFLAGS}
160     ${wrt-deviceapis-commons-javascript_LDFLAGS}
161 )
162
163 SET(CMAKE_INSTALL_RPATH ${wrt-deviceapis-commons_LIBRARY_DIRS})
164
165 SET(LIBS_WIDGETDB ${wrt-plugins-widgetdb_LIBRARIES})
166
167 # -----------------------------------------------------------------------------
168 # Macros for pkgconfig
169 # -----------------------------------------------------------------------------
170 SET(PKGCONFIG_DIR ${CMAKE_SOURCE_DIR}/pkgconfigs)
171
172 MACRO(configure_and_install_pkg PKG_FILE)
173     CONFIGURE_FILE(${PKGCONFIG_DIR}/${PKG_FILE}.in
174                ${PKGCONFIG_DIR}/${PKG_FILE} @ONLY)
175     INSTALL(FILES ${PKGCONFIG_DIR}/${PKG_FILE} DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
176 ENDMACRO(configure_and_install_pkg)
177
178 # -----------------------------------------------------------------------------
179 # Functions used for plugins
180 # -----------------------------------------------------------------------------
181
182 FUNCTION(set_target NAME)
183   STRING(TOLOWER ${NAME} LOWER_NAME)
184   SET(${LOWER_NAME}_dest tizen-${LOWER_NAME} PARENT_SCOPE)
185   SET(${LOWER_NAME}_target wrt-plugins-tizen-${LOWER_NAME} PARENT_SCOPE)
186   SET(${LOWER_NAME}_impl wrt-plugins-tizen-${LOWER_NAME}-impl PARENT_SCOPE)
187   SET(${LOWER_NAME}_config wrt-plugins-tizen-${LOWER_NAME}-config PARENT_SCOPE)
188   configure_and_install_pkg(wrt-plugins-tizen-${LOWER_NAME}.pc)
189 ENDFUNCTION()
190
191
192 FUNCTION(add_subdir NAME)
193   MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}")
194   ADD_SUBDIRECTORY(${NAME})
195 ENDFUNCTION()
196
197
198 FUNCTION(add_plugin)
199   FOREACH(VALUE ${ARGN})
200     set_target(${VALUE})
201   ENDFOREACH(VALUE)
202   FOREACH(VALUE ${ARGN})
203       add_subdir(${VALUE})
204   ENDFOREACH(VALUE)
205 ENDFUNCTION()
206
207 ADD_SUBDIRECTORY(src)
208
209 ################################################################################
210 # ld configuration file
211
212 CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/wrt-plugins-tizen.conf.in
213                ${PROJECT_SOURCE_DIR}/wrt-plugins-tizen.conf @ONLY)
214 INSTALL(FILES ${PROJECT_SOURCE_DIR}/wrt-plugins-tizen.conf DESTINATION /etc/ld.so.conf.d/)