Add default Smack manifest for elm-webview.spec
[pkgs/e/elm-webview.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(elm-webview C)
3
4 #----------------------------------------------------
5 # set values
6 #----------------------------------------------------
7 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
8 SET(EXEC_PREFIX "\${prefix}")
9 SET(LIBDIR "\${prefix}/lib")
10 SET(INCLUDEDIR "\${prefix}/include")
11 SET(EDJEDIR "${PREFIX}/share/edje")
12 SET(VERSION_MAJOR 1)
13 SET(VERSION "${VERSION_MAJOR}.0.0")
14
15 #----------------------------------------------------
16 # set source files
17 #----------------------------------------------------
18 SET(SRCS elm_webview.c
19                  els_webview.c
20                  els_webview_cbhm.c
21                  els_webview_editor.c
22                  modal_utility/modal_util.c
23                  touch_processor/els_touch.c)
24
25 #----------------------------------------------------
26 # set build type
27 #----------------------------------------------------
28 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
29         SET(CMAKE_BUILD_TYPE "Release")
30 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
31 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
32
33 #----------------------------------------------------
34 # set include directories
35 #----------------------------------------------------
36 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}
37                                         ${CMAKE_SOURCE_DIR}/modal_utility
38                                         ${CMAKE_SOURCE_DIR}/touch_processor)
39
40 #----------------------------------------------------
41 # set pkg-config modules
42 #----------------------------------------------------
43 INCLUDE(FindPkgConfig)
44 pkg_check_modules(pkgs REQUIRED
45                 elementary evas ecore-imf ecore ecore-x ecore-input
46                 ewebkit appcore-efl ui-gadget dlog utilX glib-2.0)
47 FIND_LIBRARY(LIB_GNUTLS gnutls)
48 FOREACH(flag ${pkgs_CFLAGS})
49         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
50 ENDFOREACH(flag)
51
52 #----------------------------------------------------
53 # set flags
54 #----------------------------------------------------
55 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
56 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -Wall")
57 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
58 SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -g")
59 SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2")
60
61 #----------------------------------------------------
62 # enable constanct tbs as default tiled backingstore
63 #----------------------------------------------------
64 ADD_DEFINITIONS("-DLOG_TAG=\"elm-webview\"")
65 ADD_DEFINITIONS("-DEDJEDIR=\"${EDJEDIR}\"")
66
67 #----------------------------------------------------
68 # set option for arm
69 #----------------------------------------------------
70 FIND_PROGRAM(UNAME NAMES uname)
71 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
72 IF("${ARCH}" STREQUAL "arm")
73         ADD_DEFINITIONS("-D_TARGET")
74         MESSAGE("add -D_TARGET")
75     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpie")
76     SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mabi=aapcs-linux -mfpu=vfp -mfloat-abi=softfp")
77 ENDIF("${ARCH}" STREQUAL "arm")
78
79 #----------------------------------------------------
80 # make
81 #----------------------------------------------------
82 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
83 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
84 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
85 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${LIB_GNUTLS})
86
87 # ewebview.edj
88 ADD_CUSTOM_TARGET(ewebview.edj
89     COMMAND edje_cc ${CMAKE_SOURCE_DIR}/ewebview.edc ${CMAKE_BINARY_DIR}/ewebview.edj
90     DEPENDS ${CMAKE_SOURCE_DIR}/ewebview.edc
91     )
92 ADD_DEPENDENCIES(${PROJECT_NAME} ewebview.edj)
93
94 #----------------------------------------------------
95 # install
96 #----------------------------------------------------
97 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib COMPONENT RuntimeLibraries)
98 INSTALL(FILES ${CMAKE_SOURCE_DIR}/Elementary_webview.h DESTINATION include/elementary-webview-0)
99 #INSTALL(FILES ${CMAKE_SOURCE_DIR}/TIZEN_ElementaryWebView_PG.h DESTINATION include/elementary-webview-0)
100 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
101 INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
102 INSTALL(FILES ${CMAKE_BINARY_DIR}/ewebview.edj DESTINATION ${EDJEDIR})
103
104 #----------------------------------------------------
105 # add sub directory
106 #----------------------------------------------------
107 ADD_SUBDIRECTORY(modal_utility/modal_launcher)