Fix to CIS-98 issue
[framework/osp/messaging.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2
3 SET (this_target osp-messaging)
4
5 SET(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output)
6
7 INCLUDE_DIRECTORIES(
8         inc
9         src
10         src/inc
11         /usr/include/appfw
12         /usr/include/glib-2.0 
13         /usr/lib/glib-2.0/include
14         /usr/include/osp
15         /usr/include/osp/app
16         /usr/include/osp/base
17         /usr/include/osp/security
18         /usr/include/osp/system
19         /usr/include/msg-service
20         /usr/include/dbus-1.0
21         /usr/lib/dbus-1.0/include
22         /usr/include/email-service
23         /usr/include/libxml2
24         )
25
26 SET (${this_target}_SOURCE_FILES
27         src/FMsgEmailManager.cpp
28         src/FMsgEmailMessage.cpp
29         src/FMsgEmailAttachment.cpp
30         src/FMsgDetailedEmailMessage.cpp
31         src/FMsgMmsManager.cpp
32         src/FMsgMmsMessage.cpp
33         src/FMsgPushManager.cpp
34         src/FMsgPushMessage.cpp
35         src/FMsgWapPushManager.cpp
36         src/FMsgWapPushMessage.cpp
37         src/FMsgRecipientList.cpp
38         src/FMsgSmsManager.cpp
39         src/FMsgSmsMessage.cpp
40         src/FMsgCbsChannel.cpp
41         src/FMsgCbsMessage.cpp
42         src/FMsgEtwsPrimaryNotification.cpp
43         src/FMsg_EmailEvent.cpp
44         src/FMsg_EmailEventArg.cpp
45         src/FMsg_EmailManagerImpl.cpp
46         src/FMsg_EmailMessageImpl.cpp
47         src/FMsg_EmailAttachmentImpl.cpp
48         src/FMsg_DetailedEmailMessageImpl.cpp
49         src/FMsg_MmsEvent.cpp
50         src/FMsg_MmsEventArg.cpp
51         src/FMsg_MmsManagerImpl.cpp
52         src/FMsg_MmsMessageImpl.cpp
53         src/FMsg_PushEvent.cpp
54         src/FMsg_PushEventArg.cpp
55         src/FMsg_PushManagerImpl.cpp
56         src/FMsg_PushMessageImpl.cpp
57         src/FMsg_PushRequest.cpp
58         src/FMsg_PushSendListener.cpp
59         src/FMsg_PushUrlRequestListener.cpp
60         src/FMsg_WapPushManagerImpl.cpp
61         src/FMsg_WapPushMessageImpl.cpp
62         src/FMsg_ComposerEvent.cpp
63         src/FMsg_ComposerEventArg.cpp
64         src/FMsg_RecipientListImpl.cpp
65         src/FMsg_SmsEvent.cpp
66         src/FMsg_SmsEventArg.cpp
67         src/FMsg_SmsManagerImpl.cpp
68         src/FMsg_SmsMessageImpl.cpp
69         src/FMsg_CbsChannelImpl.cpp
70         src/FMsg_CbsMessageImpl.cpp
71         src/FMsg_EtwsPrimaryNotificationImpl.cpp
72         src/FMsg_MsgUtil.cpp
73         src/FMsg_SmsMmsCallbackHandler.cpp
74 )
75
76 SET(EXTRA_CFLAGS  "${EXTRA_CFLAGS} -Wall" )
77
78 ## SET C COMPILER FLAGS
79 SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
80
81 ## SET CPP COMPILER FLAGS
82 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
83 SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
84
85 ## Create Library
86 ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
87
88 ## SET LINKER FLAGS
89 SET(CMAKE_SHARED_LINKER_FLAGS -Wl,--no-undefined)
90
91 TARGET_LINK_LIBRARIES(${this_target} "-lchromium" )
92 TARGET_LINK_LIBRARIES(${this_target} "-L/usr/lib/osp -losp-appfw -losp-json -losp-net -losp-shell-core" )
93 TARGET_LINK_LIBRARIES(${this_target} "-lcapi-appfw-application" )
94 TARGET_LINK_LIBRARIES(${this_target} "-ldbus-1" )
95 TARGET_LINK_LIBRARIES(${this_target} "-ldbus-glib-1" )
96 TARGET_LINK_LIBRARIES(${this_target} "-lemail-api" )
97 TARGET_LINK_LIBRARIES(${this_target} "-lmsg_mapi" )
98 TARGET_LINK_LIBRARIES(${this_target} "-lpush" )
99
100
101 SET_TARGET_PROPERTIES(${this_target} 
102         PROPERTIES 
103         VERSION ${FULLVER}
104         SOVERSION ${MAJORVER}
105         CLEAN_DIRECT_OUTPUT 1
106         )
107
108 ADD_CUSTOM_COMMAND(TARGET ${this_target}
109     POST_BUILD
110                 COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} 
111                 COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${MAJORVER}
112                 COMMAND ${CMAKE_STRIP} --strip-unneeded ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}
113     COMMENT "strip ${this_target}"
114                 )   
115
116 INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp 
117                                 FILES_MATCHING PATTERN "*.so*" 
118                                 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                                          
119                                                                                 GROUP_EXECUTE GROUP_READ
120                                                                                 WORLD_EXECUTE WORLD_READ)
121 INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/debug/ DESTINATION lib/osp/debug 
122                                 FILES_MATCHING PATTERN "*.so*" 
123                                 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                                          
124                                                                                 GROUP_EXECUTE GROUP_READ
125                                                                                 WORLD_EXECUTE WORLD_READ)
126
127 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/inc/ DESTINATION include/osp FILES_MATCHING PATTERN "*.h")
128 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/src/inc/ DESTINATION include/osp/messaging FILES_MATCHING PATTERN "*.h")
129
130 # pkgconfig file
131 CONFIGURE_FILE(${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)
132 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${this_target}.pc DESTINATION lib/pkgconfig)