BETA merge
[framework/web/wrt-plugins-tizen.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.6)
2
3
4 project(wrt-plugins-tizen)
5
6
7 ################################################################################
8 # Required platform modules
9
10 include(FindPkgConfig)
11
12 pkg_search_module(webkit REQUIRED ewebkit>=0.1.0)
13 pkg_search_module(dpl REQUIRED dpl-efl>=1.0.0)
14 pkg_search_module(dpl-event REQUIRED dpl-event-efl)
15 pkg_search_module(wrt-plugin-api REQUIRED wrt-plugin-api>=0.7.0)
16 pkg_search_module(wrt-deviceapis-commons REQUIRED wrt-plugins-commons)
17 pkg_search_module(wrt-deviceapis-commons-javascript REQUIRED wrt-plugins-commons-javascript)
18
19 include_directories(
20   ${webkit_INCLUDE_DIRS}
21   ${dpl_INCLUDE_DIRS}
22   ${wrt-plugin-api_INCLUDE_DIRS}
23   ${wrt-deviceapis-commons_INCLUDE_DIRS}
24   ${wrt-deviceapis-commons-javascript_INCLUDE_DIRS}
25 )
26
27
28 ################################################################################
29 # Build options
30
31 #
32 # Logs
33 #
34
35 OPTION(DPL_LOG "DPL logs status" ON)
36
37 IF(DPL_LOG)
38     MESSAGE(STATUS "Logging enabled for DPL")
39     ADD_DEFINITIONS("-DDPL_LOGS_ENABLED")
40 ELSE(DPL_LOG)
41     MESSAGE(STATUS "Logging disabled for DPL")
42 ENDIF(DPL_LOG)
43
44 ###############################################################################
45 # Set build type (Release by default)
46 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
47      SET(CMAKE_BUILD_TYPE Release)
48 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
49
50 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
51
52 ##############################################################################
53 # Compiler flags
54 SET(CMAKE_C_FLAGS_PROFILING    "-O0 -g -pg")
55 SET(CMAKE_CXX_FLAGS_PROFILING  "-O0 -std=c++0x -g -pg")
56 SET(CMAKE_C_FLAGS_DEBUG        "-O0 -g")
57 SET(CMAKE_CXX_FLAGS_DEBUG      "-O0 -std=c++0x -g")
58 SET(CMAKE_C_FLAGS_RELEASE      "-O2 -g")
59 SET(CMAKE_CXX_FLAGS_RELEASE    "-O2 -std=c++0x -g")
60 ####
61
62 ADD_DEFINITIONS("-DEXPORT_API=")
63 ADD_DEFINITIONS("-Wall")
64 #ADD_DEFINITIONS("-Werror")
65 #ADD_DEFINITIONS("-Wextra")
66
67 ################################################################################
68 # Miscellaneous variables
69
70 set(CONFIG_FILE_NAME "config.cmake")
71 set(DIR_COMMONS ${CMAKE_SOURCE_DIR}/src/commons)
72 set(LIBS_COMMON
73     ${dpl_LDFLAGS}
74     ${dpl-event_LDFLAGS}
75     ${webkit_LDFLAGS}
76     ${wrt-deviceapis-commons_LDFLAGS}
77     ${wrt-deviceapis-commons-javascript_LDFLAGS}
78     )
79
80
81 ################################################################################
82 # Target platform
83
84 if (NOT DEFINED PLATFORM)
85   set(PLATFORM "Tizen")
86 endif ()
87
88 include_directories(
89   ${CMAKE_CURRENT_SOURCE_DIR}/src
90   ${CMAKE_CURRENT_SOURCE_DIR}/src/platform
91   ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/${PLATFORM}
92   ${CMAKE_CURRENT_SOURCE_DIR}/src/standards
93 )
94
95 ################################################################################
96 # Schema of plugin's configuration file
97
98 set(COMMON_CONFIG_DTD ${CMAKE_CURRENT_SOURCE_DIR}/config.dtd)
99 set(COMMON_CONFIG_DTD_DST /usr/etc/tizen-apis)
100 INSTALL(FILES ${COMMON_CONFIG_DTD} DESTINATION ${COMMON_CONFIG_DTD_DST})
101
102
103 ################################################################################
104 # Macros used for including plugins from AL.
105
106 function(add_subdir NAME)
107   message(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}")
108   add_subdirectory(${NAME})
109 endfunction()
110
111
112 ################################################################################
113 # Subdirectories
114
115 add_subdirectory(src)
116
117
118 ################################################################################
119 # Cache
120
121 set(PLATFORM "${PLATFORM}" CACHE STRING "Target platform" FORCE)
122 set(CMAKE_CONFIG_FILE_NAME "${CMAKE_CONFIG_FILE_NAME}" CACHE
123     STRING "CMake configuration file name." FORCE)
124
125
126 ################################################################################
127 # Summary
128
129 message(STATUS "PLATFORM = ${PLATFORM}")