Change the default visibility to hidden
[platform/core/appfw/message-port.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2
3 SET(this_target "message-port")
4
5 SET(CMAKE_INSTALL_PREFIX /usr)
6 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
7
8 ## OUTPUT PATHS
9 SET(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output)
10
11 INCLUDE_DIRECTORIES (
12         /usr/include
13         /usr/include/appfw
14         /usr/include/dlog
15         /usr/include/glib-2.0
16         ${LIB_INSTALL_DIR}/glib-2.0/include
17         /usr/include/chromium
18         include
19         )
20
21 SET (${this_target}_SOURCE_FILES
22         src/IpcClient.cpp
23         src/message-port.cpp
24         src/message-port-messages.cpp
25         src/MessagePortProxy.cpp
26 )
27
28 SET(requires "dlog bundle glib-2.0 chromium")
29
30 INCLUDE(FindPkgConfig)
31 pkg_check_modules(${this_target} REQUIRED ${requires})
32 FOREACH(flag ${${this_target}_CFLAGS})
33     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
34 ENDFOREACH(flag)
35
36 SET(EXTRA_CFLAGS  "${EXTRA_CFLAGS} -Wall" )
37
38 ## SET C COMPILER FLAGS
39 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=hidden")
40 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
41
42 ## SET CPP COMPILER FLAGS
43 SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
44
45 IF("${ARCH}" STREQUAL "arm")
46     ADD_DEFINITIONS("-DTARGET")
47 ENDIF("${ARCH}" STREQUAL "arm")
48
49 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
50 ADD_DEFINITIONS("-DSLP_DEBUG")
51
52 ## Create Library
53 ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
54
55 ## SET LINKER FLAGS
56 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIB_INSTALL_DIR}")
57
58 TARGET_LINK_LIBRARIES(${this_target} "-ldlog" )
59 TARGET_LINK_LIBRARIES(${this_target} "-lbundle" )
60 TARGET_LINK_LIBRARIES(${this_target} "-lglib-2.0" )
61 TARGET_LINK_LIBRARIES(${this_target} "-lchromium" )
62 TARGET_LINK_LIBRARIES(${this_target} "-lcapi-appfw-app-manager" )
63
64 SET_TARGET_PROPERTIES(${this_target}
65         PROPERTIES
66         VERSION ${FULLVER}
67         SOVERSION ${MAJORVER}
68         CLEAN_DIRECT_OUTPUT 1
69         )
70
71
72 # pkgconfig file
73 CONFIGURE_FILE(${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)
74 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${this_target}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
75
76 INSTALL(TARGETS ${this_target} DESTINATION ${LIB_INSTALL_DIR})
77
78 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/appfw FILES_MATCHING PATTERN "*.h")
79
80 INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION ${LIB_INSTALL_DIR}
81                 FILES_MATCHING PATTERN "*.so*" 
82                 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                      
83                     GROUP_EXECUTE GROUP_READ
84                     WORLD_EXECUTE WORLD_READ)