Initial checkin of the wrt-plugins-ivi-hfp for the HTML5 UI
[profile/ivi/wrt-plugins-ivi-hfp.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2 PROJECT(wrt-plugin-ivi)
3
4 SET(CMAKE_INSTALL_PREFIX "/usr")
5
6 # -----------------------------------------------------------------------------
7 # Required platform modules
8 # -----------------------------------------------------------------------------
9 INCLUDE(FindPkgConfig)
10
11 PKG_CHECK_MODULES(dpl REQUIRED dpl-efl)
12 PKG_CHECK_MODULES(wrt-plugins-types REQUIRED wrt-plugins-types)
13 PKG_CHECK_MODULES(wrt-deviceapis-commons-javascript REQUIRED wrt-plugins-commons-javascript)
14 PKG_CHECK_MODULES(wrt-plugins-tizen-common REQUIRED wrt-plugins-tizen-common)
15 PKG_CHECK_MODULES(json-glib REQUIRED json-glib-1.0)
16
17 INCLUDE_DIRECTORIES(
18   ${dpl_INCLUDE_DIRS}
19   ${wrt-plugins-types_INCLUDE_DIRS}
20   ${wrt-deviceapis-commons-javascript_INCLUDE_DIRS}
21   ${wrt-plugins-tizen-common_INCLUDE_DIRS}
22   ${json-glib_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 # CFlags
62 # -----------------------------------------------------------------------------
63 SET(CMAKE_C_FLAGS_PROFILING    "-O0 -g -pg")
64 SET(CMAKE_CXX_FLAGS_PROFILING  "-O0 -std=c++0x -g -pg")
65 SET(CMAKE_C_FLAGS_DEBUG        "-O0 -g")
66 SET(CMAKE_CXX_FLAGS_DEBUG      "-O0 -std=c++0x -g")
67 SET(CMAKE_C_FLAGS_RELEASE      "-O2 -g")
68 SET(CMAKE_CXX_FLAGS_RELEASE    "-O2 -std=c++0x -g")
69 ADD_DEFINITIONS("-DCLIENT_IPC_THREAD")
70 ADD_DEFINITIONS("-DEXPORT_API=")
71 ADD_DEFINITIONS("-Wall")
72 ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
73 #ADD_DEFINITIONS("-Werror")
74 #ADD_DEFINITIONS("-Wextra")
75 ADD_DEFINITIONS("-DAPPLICATION_API_BACKWARD_COMPATIBILITY")
76 ADD_DEFINITIONS("-std=c++11")
77
78
79 # -----------------------------------------------------------------------------
80 # Schema of plugin's configuration file
81 # -----------------------------------------------------------------------------
82 SET(COMMON_CONFIG_DTD ${CMAKE_CURRENT_SOURCE_DIR}/config.dtd)
83 SET(COMMON_CONFIG_DTD_DST /usr/etc/tizen-apis)
84 INSTALL(FILES ${COMMON_CONFIG_DTD} DESTINATION ${COMMON_CONFIG_DTD_DST})
85
86 # -----------------------------------------------------------------------------
87 # Global variables
88 # -----------------------------------------------------------------------------
89
90 SET(DESTINATION_LIB_PREFIX lib/wrt-plugins)
91
92 SET(DESTINATION_HEADER_PREFIX include/${PROJECT_NAME})
93
94 SET(LIBS_WIDGETDB ${wrt-plugins-widgetdb_LIBRARIES})
95
96 # -----------------------------------------------------------------------------
97 # Macros for pkgconfig
98 # -----------------------------------------------------------------------------
99 SET(PKGCONFIG_DIR ${CMAKE_SOURCE_DIR}/pkgconfigs)
100 #SET(PKGCONFIG_DIR ${CMAKE_SOURCE_DIR})
101
102 MACRO(configure_and_install_pkg PKG_FILE)
103     CONFIGURE_FILE(${PKGCONFIG_DIR}/${PKG_FILE}.in
104                ${PKGCONFIG_DIR}/${PKG_FILE} @ONLY)
105     INSTALL(FILES ${PKGCONFIG_DIR}/${PKG_FILE} DESTINATION lib/pkgconfig)
106 ENDMACRO(configure_and_install_pkg)
107
108 SET(TARGET_NAME wrt-plugins-tizen-phone)
109 SET(DESTINATION_NAME tizen-phone)
110 SET(TARGET_IMPL_NAME wrt-plugins-tizen-phone-impl)
111
112 configure_and_install_pkg(wrt-plugins-tizen-phone.pc)
113
114 SET(CMAKE_INSTALL_RPATH
115         ${CMAKE_INSTALL_RPATH}
116         ${CMAKE_INSTALL_PREFIX}/${DESTINATION_LIB_PREFIX}/${tizen_dest}
117         ${CMAKE_INSTALL_PREFIX}/${DESTINATION_LIB_PREFIX}/${DESTINATION_NAME}
118 )
119
120 SET(SRCS_IMPL
121         src/Phone.cpp
122         src/JSPhone.cpp
123 )
124
125 ADD_LIBRARY(${TARGET_IMPL_NAME} SHARED ${SRCS_IMPL})
126
127 TARGET_LINK_LIBRARIES(${TARGET_IMPL_NAME}
128         ${dpl_LDFLAGS}
129         ${dpl-event_LDFLAGS}
130         ${wrt-deviceapis-commons-javascript_LDFLAGS}
131         ${wrt-plugins-tizen-common_LDFLAGS}
132         ${json-glib_LDFLAGS}
133         -L/usr/lib/wrt-plugins/tizen-tizen/
134 )
135
136 SET(SRCS
137         src/plugin_initializer.cpp
138 )
139
140 ADD_LIBRARY(${TARGET_NAME} SHARED ${SRCS})
141
142 TARGET_LINK_LIBRARIES(${TARGET_NAME}
143         ${TARGET_IMPL_NAME}
144 )
145
146 INSTALL(TARGETS ${TARGET_NAME} ${TARGET_IMPL_NAME} LIBRARY DESTINATION ${DESTINATION_LIB_PREFIX}/${DESTINATION_NAME})
147 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/config.xml DESTINATION ${DESTINATION_LIB_PREFIX}/${DESTINATION_NAME})
148 INSTALL(
149         DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/ DESTINATION ${DESTINATION_HEADER_PREFIX}/phone
150         FILES_MATCHING PATTERN "*.h" PATTERN "CMakeFiles" EXCLUDE
151 )
152