Fix build lib
[platform/framework/native/appfw.git] / src / system-server / CMakeLists.txt
1 SET (this_target osp-system-server)
2
3 INCLUDE_DIRECTORIES (
4         /usr/include/sysman
5         /usr/include/elementary-1
6         /usr/include/eet-1
7         /usr/include/ecore-1
8         /usr/include/evas-1
9         /usr/include/edje-1
10         /usr/include/e_dbus-1
11         /usr/include/efreet-1
12         /usr/include/ethumb-1
13         /usr/include/libxml
14         /usr/include/telephony
15         ${SLP_INCLUDE_DIRS}
16         ${CMAKE_SOURCE_DIR}
17         ${CMAKE_SOURCE_DIR}/inc
18         ${CMAKE_SOURCE_DIR}/src/app/inc
19         ${CMAKE_SOURCE_DIR}/src/base/inc
20         ${CMAKE_SOURCE_DIR}/src/system-server/inc
21         ${CMAKE_SOURCE_DIR}/src/io/inc
22         ${CMAKE_SOURCE_DIR}/src/server/inc
23         ${CMAKE_SOURCE_DIR}/src/system/inc
24         )
25
26 SET (${this_target}_SOURCE_FILES
27         system/FSys_SystemInfo.cpp
28         setting/FSys_SettingInfo.cpp
29         setting/providers/FSys_Icu.cpp
30         setting/providers/FSys_SettingApplicationProvider.cpp
31         setting/providers/FSys_SettingFontProvider.cpp
32         setting/providers/FSys_SettingGeneralProvider.cpp
33         setting/providers/FSys_SettingLocaleProvider.cpp
34         setting/providers/FSys_SettingLocationProvider.cpp
35         setting/providers/FSys_SettingNetworkProvider.cpp
36         setting/providers/FSys_SettingScreenProvider.cpp
37         setting/providers/FSys_SettingSoundProvider.cpp
38         setting/providers/FSys_SettingSpeechProvider.cpp
39         setting/providers/FSys_SettingStorageProvider.cpp
40         setting/providers/FSys_SettingVibrationProvider.cpp
41         )
42
43 INCLUDE(FindPkgConfig)
44 pkg_check_modules(system_pkgs REQUIRED
45         capi-media-sound-manager
46         capi-network-bluetooth
47         capi-network-wifi
48         capi-network-tethering
49         capi-system-device
50         capi-system-info
51         capi-system-media-key
52         capi-system-runtime-info
53         capi-system-system-settings
54         capi-telephony-sim
55         eina
56         elementary
57         haptic
58         icu-i18n
59         libxml-2.0
60         sysman
61         tapi
62         vconf
63         wifi-direct
64 )
65
66 FOREACH(flag ${system_pkgs_CFLAGS})
67         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
68 ENDFOREACH(flag)
69
70 FOREACH(ldflag ${system_pkgs_LDFLAGS})
71         SET(EXTRA_LDFLAGS "${EXTRA_LDFLAGS} ${flag}")
72 ENDFOREACH(ldflag)
73
74 ## SET EXTRA COMPILER FLAGS
75 SET(EXTRA_CFLAGS  "${EXTRA_CFLAGS} -fPIC -Wall" )
76
77 ## SET C COMPILER FLAGS
78 SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
79
80 ## SET CPP COMPILER FLAGS
81 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
82 SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
83
84 ## Create Library
85 ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
86
87 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed")
88
89 TARGET_LINK_LIBRARIES(${this_target} osp-appfw)
90 TARGET_LINK_LIBRARIES(${this_target} ${system_pkgs_LDFLAGS})
91 TARGET_LINK_LIBRARIES(${this_target} capi-network-tethering)
92 TARGET_LINK_LIBRARIES(${this_target} capi-network-bluetooth)
93 TARGET_LINK_LIBRARIES(${this_target} capi-network-wifi)
94 TARGET_LINK_LIBRARIES(${this_target} capi-media-sound-manager)
95 TARGET_LINK_LIBRARIES(${this_target} wifi-direct)
96 TARGET_LINK_LIBRARIES(${this_target} sysman)
97
98 SET_TARGET_PROPERTIES(${this_target}
99                 PROPERTIES
100                 VERSION ${FULLVER}
101                 SOVERSION ${MAJORVER}
102                 CLEAN_DIRECT_OUTPUT 1
103 )
104
105 ADD_CUSTOM_COMMAND(TARGET ${this_target}
106                 POST_BUILD
107                 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} 
108                 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}
109                 COMMAND ${CMAKE_STRIP} --strip-unneeded ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}
110                 COMMENT "strip ${this_target}"
111 )
112
113 SET(PC_NAME ${this_target})
114 SET(PC_REQUIRED ${pc_requires})
115 SET(PC_LDFLAGS -l${this_target})
116 SET(VERSION ${FULLVER})
117
118 # pkgconfig file
119 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)
120