Update package version to 0.5.8
[platform/core/api/inputmethod.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2
3 SET(project_prefix "capi")
4 SET(prefix "/usr")
5 SET(version "0.0.1")
6 SET(maintainer "Ji-hoon Lee <dalton.lee@samsung.com>")
7 SET(description "Input Method APIs")
8 SET(service "ui")
9 SET(submodule "inputmethod")
10 SET(remote_submodule "remote-input")
11 SET(dependents "capi-base-common dlog evas eina ecore-imf libscl-core isf cynara-client cynara-session")
12 SET(remote_dependents "capi-base-common dlog ecore-imf isf cynara-client cynara-session")
13 SET(LIBDIR ${LIB_INSTALL_DIR})
14
15 SET(Services
16         "application"
17         "base"
18         "content"
19         "location"
20         "media"
21         "messaging"
22         "network"
23         "social"
24         "telephony"
25         "system"
26         "ui"
27    )
28
29 #FILE(STRINGS config.cfg configs REGEX "^ *[^#]")
30 FOREACH(lines ${configs})
31 #    MESSAGE(${lines})
32     IF(${lines} MATCHES "([^=]*)=['\"](.*)['\"]")
33         SET(key ${CMAKE_MATCH_1})
34         SET(value ${CMAKE_MATCH_2})
35 #        MESSAGE("${key} -> ${value}")
36         SET(${key} "${value}")
37     ENDIF()
38 ENDFOREACH(lines ${configs})
39
40 LIST(FIND Services ${service} sfind)
41
42 IF( ${sfind} EQUAL -1 )
43     MESSAGE(FATAL_ERROR "Service must be one of ")
44     FOREACH( s IN ${Services} )
45         MESSAGE(FATAL_ERROR "[${s}]")
46     ENDFOREACH( s IN ${Services} )
47 ENDIF( ${sfind} EQUAL -1 )
48
49 SET(fw_name "${project_prefix}-${service}-${submodule}")
50 SET(remote_fw_name "${project_prefix}-${service}-${remote_submodule}")
51
52 PROJECT(${fw_name} CXX)
53 PROJECT(${remote_fw_name} CXX)
54
55 SET(CMAKE_INSTALL_PREFIX ${prefix})
56 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
57 SET(VERSION ${version})
58
59 SET(INC_DIR inputmethod/include)
60 SET(REMOTE_INC_DIR remote_input/include)
61 INCLUDE_DIRECTORIES(${INC_DIR}
62                     ${REMOTE_INC_DIR})
63
64 INCLUDE(FindPkgConfig)
65 pkg_check_modules(${fw_name} REQUIRED ${dependents})
66 FOREACH(flag ${${fw_name}_CFLAGS})
67     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
68 ENDFOREACH(flag)
69
70 pkg_check_modules(${remote_fw_name} REQUIRED ${remote_dependents})
71 FOREACH(flag ${${remote_fw_name}_CFLAGS})
72     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
73 ENDFOREACH(flag)
74
75 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -fpermissive")
76 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
77
78 IF("${ARCH}" STREQUAL "arm")
79     ADD_DEFINITIONS("-DTARGET")
80 ENDIF("${ARCH}" STREQUAL "arm")
81
82 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
83 ADD_DEFINITIONS("-DTIZEN_DEBUG")
84
85 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=/usr/lib")
86
87 aux_source_directory(inputmethod/src SOURCES)
88 ADD_LIBRARY(${fw_name} SHARED ${SOURCES})
89 TARGET_LINK_LIBRARIES(${fw_name} ${${fw_name}_LDFLAGS})
90
91 SET(REMOTE-SRCS
92     remote_input/src/remote_input.cpp
93     inputmethod/src/privilege_checker.cpp
94 )
95
96 ADD_LIBRARY(${remote_fw_name} SHARED ${REMOTE-SRCS})
97 TARGET_LINK_LIBRARIES(${remote_fw_name} ${${remote_fw_name}_LDFLAGS})
98
99 SET_TARGET_PROPERTIES(${fw_name}
100      PROPERTIES
101      VERSION ${FULLVER}
102      SOVERSION ${MAJORVER}
103      CLEAN_DIRECT_OUTPUT 1
104 )
105
106 SET_TARGET_PROPERTIES(${remote_fw_name}
107      PROPERTIES
108      VERSION ${FULLVER}
109      SOVERSION ${MAJORVER}
110      CLEAN_DIRECT_OUTPUT 1
111 )
112
113 INSTALL(TARGETS ${fw_name} DESTINATION ${LIBDIR})
114 INSTALL(
115         DIRECTORY ${INC_DIR}/ DESTINATION include
116         FILES_MATCHING
117         PATTERN "*_private.h" EXCLUDE
118         PATTERN "${INC_DIR}/*.h"
119         )
120
121 INSTALL(TARGETS ${remote_fw_name} DESTINATION ${LIBDIR})
122 INSTALL(
123         DIRECTORY ${REMOTE_INC_DIR}/ DESTINATION include
124         FILES_MATCHING
125         PATTERN "*_private.h" EXCLUDE
126         PATTERN "${REMOTE_INC_DIR}/*.h"
127         )
128
129 SET(PC_NAME ${fw_name})
130 SET(PC_REQUIRED ${dependents})
131 SET(PC_LDFLAGS -l${fw_name})
132
133 CONFIGURE_FILE(
134     capi-ui-inputmethod.pc.in
135     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc
136     @ONLY
137 )
138 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIBDIR}/pkgconfig)
139
140 SET(REMOTE_PC_NAME ${remote_fw_name})
141 SET(REMOTE_PC_DESCRIPTION "Remote Input APIs")
142 SET(REMOTE_PC_REQUIRED ${remote_dependents})
143 SET(REMOTE_PC_LDFLAGS -l${remote_fw_name})
144
145 CONFIGURE_FILE(
146     capi-ui-remote-input.pc.in
147     ${CMAKE_CURRENT_SOURCE_DIR}/${remote_fw_name}.pc
148     @ONLY
149 )
150 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${remote_fw_name}.pc DESTINATION ${LIBDIR}/pkgconfig)
151
152 IF(UNIX)
153
154 ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
155 ADD_CUSTOM_COMMAND(
156         DEPENDS clean
157         COMMENT "distribution clean"
158         COMMAND find
159         ARGS    .
160         -not -name config.cmake -and \(
161         -name tester.c -or
162         -name Testing -or
163         -name CMakeFiles -or
164         -name cmake.depends -or
165         -name cmake.check_depends -or
166         -name CMakeCache.txt -or
167         -name cmake.check_cache -or
168         -name *.cmake -or
169         -name Makefile -or
170         -name core -or
171         -name core.* -or
172         -name gmon.out -or
173         -name install_manifest.txt -or
174         -name *.pc -or
175         -name *~ \)
176         | grep -v TC | xargs rm -rf
177         TARGET  distclean
178         VERBATIM
179 )
180
181 ENDIF(UNIX)
182
183 ## Test
184 IF(NOT DEFINED MINIMUM_BUILD)
185 ENABLE_TESTING()
186 SET(UNITTEST_INPUTMETHOD inputmethod_unittests)
187 ADD_TEST(NAME ${UNITTEST_INPUTMETHOD} COMMAND ${UNITTEST_INPUTMETHOD}
188                         WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests)
189
190 ADD_SUBDIRECTORY(tests)
191 ENDIF(NOT DEFINED MINIMUM_BUILD)