Update change log and spec for wrt-plugins-tizen_0.4.12
[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 # Set build type (Release by default)
40 # -----------------------------------------------------------------------------
41 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
42      SET(CMAKE_BUILD_TYPE Release)
43 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
44
45 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
46
47 # -----------------------------------------------------------------------------
48 # CFlags
49 # -----------------------------------------------------------------------------
50 SET(CMAKE_C_FLAGS_PROFILING    "-O0 -g -pg")
51 SET(CMAKE_CXX_FLAGS_PROFILING  "-O0 -std=c++0x -g -pg")
52 SET(CMAKE_C_FLAGS_DEBUG        "-O0 -g")
53 SET(CMAKE_CXX_FLAGS_DEBUG      "-O0 -std=c++0x -g")
54 SET(CMAKE_C_FLAGS_RELEASE      "-O2 -g")
55 SET(CMAKE_CXX_FLAGS_RELEASE    "-O2 -std=c++0x -g")
56 ADD_DEFINITIONS("-DCLIENT_IPC_THREAD")
57 ADD_DEFINITIONS("-DEXPORT_API=")
58 ADD_DEFINITIONS("-Wall")
59 #ADD_DEFINITIONS("-Werror")
60 #ADD_DEFINITIONS("-Wextra")
61 ADD_DEFINITIONS("-DAPPLICATION_API_BACKWARD_COMPATIBILITY")
62
63
64 # -----------------------------------------------------------------------------
65 # Schema of plugin's configuration file
66 # -----------------------------------------------------------------------------
67 SET(COMMON_CONFIG_DTD ${CMAKE_CURRENT_SOURCE_DIR}/config.dtd)
68 SET(COMMON_CONFIG_DTD_DST /usr/etc/tizen-apis)
69 INSTALL(FILES ${COMMON_CONFIG_DTD} DESTINATION ${COMMON_CONFIG_DTD_DST})
70
71 # -----------------------------------------------------------------------------
72 # Global variables
73 # -----------------------------------------------------------------------------
74
75 SET(DESTINATION_LIB_PREFIX lib/wrt-plugins)
76
77 SET(DESTINATION_HEADER_PREFIX include/${PROJECT_NAME})
78
79 SET(TOP ${CMAKE_SOURCE_DIR}/src)
80
81 SET(LIBS_COMMON
82     ${dpl_LDFLAGS}
83     ${dpl-event_LDFLAGS}
84     ${webkit2_LDFLAGS}
85     ${wrt-deviceapis-commons_LDFLAGS}
86     ${wrt-deviceapis-commons-javascript_LDFLAGS}
87 )
88
89 SET(CMAKE_INSTALL_RPATH ${wrt-deviceapis-commons_LIBRARY_DIRS})
90
91 SET(LIBS_WIDGETDB ${wrt-plugins-widgetdb_LIBRARIES})
92
93 # -----------------------------------------------------------------------------
94 # Macros for pkgconfig
95 # -----------------------------------------------------------------------------
96 SET(PKGCONFIG_DIR ${CMAKE_SOURCE_DIR}/pkgconfigs)
97
98 MACRO(configure_and_install_pkg PKG_FILE)
99     CONFIGURE_FILE(${PKGCONFIG_DIR}/${PKG_FILE}.in
100                ${PKGCONFIG_DIR}/${PKG_FILE} @ONLY)
101     INSTALL(FILES ${PKGCONFIG_DIR}/${PKG_FILE} DESTINATION lib/pkgconfig)
102 ENDMACRO(configure_and_install_pkg)
103
104 # -----------------------------------------------------------------------------
105 # Functions used for plugins
106 # -----------------------------------------------------------------------------
107
108 FUNCTION(set_target NAME)
109   STRING(TOLOWER ${NAME} LOWER_NAME)
110   SET(${LOWER_NAME}_dest tizen-${LOWER_NAME} PARENT_SCOPE)
111   SET(${LOWER_NAME}_target wrt-plugins-tizen-${LOWER_NAME} PARENT_SCOPE)
112   SET(${LOWER_NAME}_impl wrt-plugins-tizen-${LOWER_NAME}-impl PARENT_SCOPE)
113   SET(${LOWER_NAME}_config wrt-plugins-tizen-${LOWER_NAME}-config PARENT_SCOPE)
114   configure_and_install_pkg(wrt-plugins-tizen-${LOWER_NAME}.pc)
115 ENDFUNCTION()
116
117
118 FUNCTION(add_subdir NAME)
119   MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}")
120   ADD_SUBDIRECTORY(${NAME})
121 ENDFUNCTION()
122
123
124 FUNCTION(add_plugin)
125   FOREACH(VALUE ${ARGN})
126     set_target(${VALUE})
127   ENDFOREACH(VALUE)
128   FOREACH(VALUE ${ARGN})
129       add_subdir(${VALUE})
130   ENDFOREACH(VALUE)
131 ENDFUNCTION()
132
133 ADD_SUBDIRECTORY(src)