1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
3 SET(project_prefix "capi")
6 SET(maintainer "Ji-hoon Lee <dalton.lee@samsung.com>")
7 SET(description "Input Method APIs")
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})
29 #FILE(STRINGS config.cfg configs REGEX "^ *[^#]")
30 FOREACH(lines ${configs})
32 IF(${lines} MATCHES "([^=]*)=['\"](.*)['\"]")
33 SET(key ${CMAKE_MATCH_1})
34 SET(value ${CMAKE_MATCH_2})
35 # MESSAGE("${key} -> ${value}")
36 SET(${key} "${value}")
38 ENDFOREACH(lines ${configs})
40 LIST(FIND Services ${service} sfind)
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 )
49 SET(fw_name "${project_prefix}-${service}-${submodule}")
50 SET(remote_fw_name "${project_prefix}-${service}-${remote_submodule}")
52 PROJECT(${fw_name} CXX)
53 PROJECT(${remote_fw_name} CXX)
55 SET(CMAKE_INSTALL_PREFIX ${prefix})
56 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
57 SET(VERSION ${version})
59 SET(INC_DIR inputmethod/include)
60 SET(REMOTE_INC_DIR remote_input/include)
61 INCLUDE_DIRECTORIES(${INC_DIR}
64 INCLUDE(FindPkgConfig)
65 pkg_check_modules(${fw_name} REQUIRED ${dependents})
66 FOREACH(flag ${${fw_name}_CFLAGS})
67 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
70 pkg_check_modules(${remote_fw_name} REQUIRED ${remote_dependents})
71 FOREACH(flag ${${remote_fw_name}_CFLAGS})
72 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
75 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -fpermissive")
76 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
78 IF("${ARCH}" STREQUAL "arm")
79 ADD_DEFINITIONS("-DTARGET")
80 ENDIF("${ARCH}" STREQUAL "arm")
82 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
83 ADD_DEFINITIONS("-DTIZEN_DEBUG")
85 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=/usr/lib")
87 aux_source_directory(inputmethod/src SOURCES)
88 ADD_LIBRARY(${fw_name} SHARED ${SOURCES})
89 TARGET_LINK_LIBRARIES(${fw_name} ${${fw_name}_LDFLAGS})
92 remote_input/src/remote_input.cpp
93 inputmethod/src/privilege_checker.cpp
96 ADD_LIBRARY(${remote_fw_name} SHARED ${REMOTE-SRCS})
97 TARGET_LINK_LIBRARIES(${remote_fw_name} ${${remote_fw_name}_LDFLAGS})
99 SET_TARGET_PROPERTIES(${fw_name}
102 SOVERSION ${MAJORVER}
103 CLEAN_DIRECT_OUTPUT 1
106 SET_TARGET_PROPERTIES(${remote_fw_name}
109 SOVERSION ${MAJORVER}
110 CLEAN_DIRECT_OUTPUT 1
113 INSTALL(TARGETS ${fw_name} DESTINATION ${LIBDIR})
115 DIRECTORY ${INC_DIR}/ DESTINATION include
117 PATTERN "*_private.h" EXCLUDE
118 PATTERN "${INC_DIR}/*.h"
121 INSTALL(TARGETS ${remote_fw_name} DESTINATION ${LIBDIR})
123 DIRECTORY ${REMOTE_INC_DIR}/ DESTINATION include
125 PATTERN "*_private.h" EXCLUDE
126 PATTERN "${REMOTE_INC_DIR}/*.h"
129 SET(PC_NAME ${fw_name})
130 SET(PC_REQUIRED ${dependents})
131 SET(PC_LDFLAGS -l${fw_name})
134 capi-ui-inputmethod.pc.in
135 ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc
138 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIBDIR}/pkgconfig)
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})
146 capi-ui-remote-input.pc.in
147 ${CMAKE_CURRENT_SOURCE_DIR}/${remote_fw_name}.pc
150 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${remote_fw_name}.pc DESTINATION ${LIBDIR}/pkgconfig)
154 ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
157 COMMENT "distribution clean"
160 -not -name config.cmake -and \(
164 -name cmake.depends -or
165 -name cmake.check_depends -or
166 -name CMakeCache.txt -or
167 -name cmake.check_cache -or
173 -name install_manifest.txt -or
176 | grep -v TC | xargs rm -rf
184 IF(NOT DEFINED MINIMUM_BUILD)
186 SET(UNITTEST_INPUTMETHOD inputmethod_unittests)
187 ADD_TEST(NAME ${UNITTEST_INPUTMETHOD} COMMAND ${UNITTEST_INPUTMETHOD}
188 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests)
190 ADD_SUBDIRECTORY(tests)
191 ENDIF(NOT DEFINED MINIMUM_BUILD)