added tizen engineer mode to system
[profile/ivi/wrt-plugins-ivi.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2 PROJECT(wrt-plugin-ivi)
3
4 # -----------------------------------------------------------------------------
5 # Required platform modules
6 # -----------------------------------------------------------------------------
7 INCLUDE(FindPkgConfig)
8
9 ADD_DEFINITIONS("-DTIZEN_ENGINEER_MODE")
10
11 PKG_CHECK_MODULES(webkit2 REQUIRED ewebkit2)
12 PKG_CHECK_MODULES(dpl REQUIRED dpl-efl)
13 PKG_CHECK_MODULES(dpl-event REQUIRED dpl-event-efl)
14 PKG_CHECK_MODULES(wrt-plugins-types REQUIRED wrt-plugins-types)
15 PKG_CHECK_MODULES(wrt-deviceapis-commons REQUIRED wrt-plugins-commons)
16 PKG_CHECK_MODULES(wrt-deviceapis-commons-javascript REQUIRED wrt-plugins-commons-javascript)
17 PKG_CHECK_MODULES(wrt-plugins-widgetdb REQUIRED wrt-plugins-widgetdb)
18
19 INCLUDE_DIRECTORIES(
20   ${webkit2_INCLUDE_DIRS}
21   ${dpl_INCLUDE_DIRS}
22   ${wrt-plugins-types_INCLUDE_DIRS}
23   ${wrt-deviceapis-commons_INCLUDE_DIRS}
24   ${wrt-deviceapis-commons-javascript_INCLUDE_DIRS}
25 )
26
27 # -----------------------------------------------------------------------------
28 # Determine the log option
29 # -----------------------------------------------------------------------------
30
31 OPTION(DPL_LOG "DPL logs status" ON)
32
33 IF(DPL_LOG)
34     MESSAGE(STATUS "Logging enabled for DPL")
35     ADD_DEFINITIONS("-DDPL_LOGS_ENABLED")
36 ELSE(DPL_LOG)
37     MESSAGE(STATUS "Logging disabled for DPL")
38 ENDIF(DPL_LOG)
39
40 # -----------------------------------------------------------------------------
41 # Determine the time tracing option
42 # -----------------------------------------------------------------------------
43
44 OPTION(ENABLE_TIME_TRACER "TIME TRACING" OFF)
45
46 IF(ENABLE_TIME_TRACER)
47     MESSAGE(STATUS "Time tracer enabled")
48     ADD_DEFINITIONS("-DENABLE_TIME_TRACER")
49 ELSE(ENABLE_TIME_TRACER)
50     MESSAGE(STATUS "Time tracer disabled")
51 ENDIF(ENABLE_TIME_TRACER)
52
53 # -----------------------------------------------------------------------------
54 # Set build type (Release by default)
55 # -----------------------------------------------------------------------------
56 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
57      SET(CMAKE_BUILD_TYPE Release)
58 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
59
60 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
61
62
63 # -----------------------------------------------------------------------------
64 # Determine the feature configuration for optional API
65 # -----------------------------------------------------------------------------
66
67 IF(ENABLE_OPTIONAL_BT)
68     MESSAGE(STATUS "Bluetooth API Enabled")
69     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_BT )
70 ENDIF(ENABLE_OPTIONAL_BT)
71
72 IF(ENABLE_OPTIONAL_CALL_HISTORY)
73     MESSAGE(STATUS "Callhistory API Enabled")
74     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_CALL_HISTORY )
75 ENDIF(ENABLE_OPTIONAL_CALL_HISTORY)
76
77 IF(ENABLE_OPTIONAL_NBS)
78     MESSAGE(STATUS "Network Bearer Selection API Enabled")
79     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_NBS )
80 ENDIF(ENABLE_OPTIONAL_NBS)
81
82 IF(ENABLE_OPTIONAL_NFC)
83     MESSAGE(STATUS "NFC API Enabled")
84     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_NFC )
85 ENDIF(ENABLE_OPTIONAL_NFC)
86
87 IF(ENABLE_OPTIONAL_PUSH)
88     MESSAGE(STATUS "Push API Enabled")
89     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_PUSH )
90 ENDIF(ENABLE_OPTIONAL_PUSH)
91
92 IF(ENABLE_OPTIONAL_SE)
93     MESSAGE(STATUS "Secure Element API Enabled")
94     ADD_DEFINITIONS( -DFEATURE_OPTIONAL_SE )
95 ENDIF(ENABLE_OPTIONAL_SE)
96
97 # -----------------------------------------------------------------------------
98 # CFlags
99 # -----------------------------------------------------------------------------
100 SET(CMAKE_C_FLAGS_PROFILING    "-O0 -g -pg")
101 SET(CMAKE_CXX_FLAGS_PROFILING  "-O0 -std=c++0x -g -pg")
102 SET(CMAKE_C_FLAGS_DEBUG        "-O0 -g")
103 SET(CMAKE_CXX_FLAGS_DEBUG      "-O0 -std=c++0x -g")
104 SET(CMAKE_C_FLAGS_RELEASE      "-O2 -g")
105 SET(CMAKE_CXX_FLAGS_RELEASE    "-O2 -std=c++0x -g")
106 ADD_DEFINITIONS("-DCLIENT_IPC_THREAD")
107 ADD_DEFINITIONS("-DEXPORT_API=")
108 ADD_DEFINITIONS("-Wall")
109 ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
110 #ADD_DEFINITIONS("-Werror")
111 #ADD_DEFINITIONS("-Wextra")
112 ADD_DEFINITIONS("-DAPPLICATION_API_BACKWARD_COMPATIBILITY")
113
114
115 # -----------------------------------------------------------------------------
116 # Schema of plugin's configuration file
117 # -----------------------------------------------------------------------------
118 SET(COMMON_CONFIG_DTD ${CMAKE_CURRENT_SOURCE_DIR}/config.dtd)
119 SET(COMMON_CONFIG_DTD_DST /usr/etc/tizen-apis)
120 INSTALL(FILES ${COMMON_CONFIG_DTD} DESTINATION ${COMMON_CONFIG_DTD_DST})
121
122 # -----------------------------------------------------------------------------
123 # Global variables
124 # -----------------------------------------------------------------------------
125
126 SET(DESTINATION_LIB_PREFIX lib/wrt-plugins)
127
128 SET(DESTINATION_HEADER_PREFIX include/${PROJECT_NAME})
129
130 SET(TOP ${CMAKE_SOURCE_DIR}/src)
131
132 SET(INCLUDE_COMMON ${TOP}/Common)
133
134 SET(LIBS_COMMON
135     ${dpl_LDFLAGS}
136     ${dpl-event_LDFLAGS}
137     ${webkit2_LDFLAGS}
138     ${wrt-deviceapis-commons_LDFLAGS}
139     ${wrt-deviceapis-commons-javascript_LDFLAGS}
140 )
141
142 SET(CMAKE_INSTALL_RPATH ${wrt-deviceapis-commons_LIBRARY_DIRS})
143
144 SET(LIBS_WIDGETDB ${wrt-plugins-widgetdb_LIBRARIES})
145
146 # -----------------------------------------------------------------------------
147 # Macros for pkgconfig
148 # -----------------------------------------------------------------------------
149 SET(PKGCONFIG_DIR ${CMAKE_SOURCE_DIR}/pkgconfigs)
150
151 MACRO(configure_and_install_pkg PKG_FILE)
152     CONFIGURE_FILE(${PKGCONFIG_DIR}/${PKG_FILE}.in
153                ${PKGCONFIG_DIR}/${PKG_FILE} @ONLY)
154     INSTALL(FILES ${PKGCONFIG_DIR}/${PKG_FILE} DESTINATION lib/pkgconfig)
155 ENDMACRO(configure_and_install_pkg)
156
157 # -----------------------------------------------------------------------------
158 # Functions used for plugins
159 # -----------------------------------------------------------------------------
160
161 FUNCTION(set_target NAME)
162   STRING(TOLOWER ${NAME} LOWER_NAME)
163   SET(${LOWER_NAME}_dest tizen-${LOWER_NAME} PARENT_SCOPE)
164   SET(${LOWER_NAME}_target wrt-plugins-tizen-${LOWER_NAME} PARENT_SCOPE)
165   SET(${LOWER_NAME}_impl wrt-plugins-tizen-${LOWER_NAME}-impl PARENT_SCOPE)
166   SET(${LOWER_NAME}_config wrt-plugins-tizen-${LOWER_NAME}-config PARENT_SCOPE)
167   configure_and_install_pkg(wrt-plugins-tizen-${LOWER_NAME}.pc)
168 ENDFUNCTION()
169
170
171 FUNCTION(add_subdir NAME)
172   MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}")
173   ADD_SUBDIRECTORY(${NAME})
174 ENDFUNCTION()
175
176
177 FUNCTION(add_plugin)
178   FOREACH(VALUE ${ARGN})
179     set_target(${VALUE})
180   ENDFOREACH(VALUE)
181   FOREACH(VALUE ${ARGN})
182       add_subdir(${VALUE})
183   ENDFOREACH(VALUE)
184 ENDFUNCTION()
185
186 ADD_SUBDIRECTORY(src)