Merge "add pkgconfig and refine spec" into tizen_2.2
[platform/framework/native/shell.git] / src / core / CMakeLists.txt
1 SET (this_target osp-shell-core)
2
3 INCLUDE_DIRECTORIES(
4         ${CMAKE_SOURCE_DIR}/inc
5         ${CMAKE_SOURCE_DIR}/src/inc
6         ${CMAKE_SOURCE_DIR}/src/core
7         /usr/include/osp/graphics
8 )
9
10 INCLUDE(FindPkgConfig)
11 pkg_check_modules(corepkgs REQUIRED
12         capi-appfw-application
13         capi-appfw-app-manager
14         badge
15         chromium
16         glib-2.0
17         notification
18         osp-appfw
19         shortcut
20         vconf
21 )
22
23 FOREACH(flag ${corepkgs_CFLAGS})
24         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
25 ENDFOREACH(flag)
26
27 SET (${this_target}_SOURCE_FILES
28         FShellLockManager.cpp
29         FShellNotificationManager.cpp
30         FShellNotificationRequest.cpp
31         FShellShortcutManager.cpp
32         FShell_LockManagerImpl.cpp
33         FShell_NotificationManagerImpl.cpp
34         FShell_NotificationRequestImpl.cpp
35         FShell_ShortcutManagerImpl.cpp
36         FShell_LockManagerProxy.cpp
37         FShell_LockManagerIpcMessages.cpp
38 )
39
40 ## Definitions
41 SET(EXTRA_CFLAGS  "${EXTRA_CFLAGS} -Wall" )
42
43 ## SET C COMPILER FLAGS
44 SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
45
46 ## SET CPP COMPILER FLAGS
47 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
48 SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
49
50 ## Create Library
51 ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
52
53 ## SET LINKER FLAGS
54 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed")
55
56 TARGET_LINK_LIBRARIES(${this_target} "-lpthread" )
57 TARGET_LINK_LIBRARIES(${this_target} "-losp-uifw" )
58 TARGET_LINK_LIBRARIES(${this_target} ${corepkgs_LDFLAGS})
59
60 SET_TARGET_PROPERTIES(${this_target}
61         PROPERTIES
62         VERSION ${FULLVER}
63         SOVERSION ${MAJORVER}
64         CLEAN_DIRECT_OUTPUT 1
65 )
66
67 ADD_CUSTOM_COMMAND(TARGET ${this_target}
68                 POST_BUILD
69                 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}
70                 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}
71                 COMMAND ${CMAKE_STRIP} --strip-unneeded ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}
72                 COMMENT "strip ${this_target}"
73 )