Merge "add pkgconfig and refine spec" into tizen_2.2
[platform/framework/native/shell.git] / src / CMakeLists.txt
1 SET (this_target osp-shell)
2
3 INCLUDE_DIRECTORIES(
4         ${CMAKE_SOURCE_DIR}/inc
5         ${CMAKE_SOURCE_DIR}/src
6         ${CMAKE_SOURCE_DIR}/src/inc
7         /usr/include/osp/graphics
8         /usr/include/osp/ui
9     /usr/include/osp/media
10 )
11
12 INCLUDE(FindPkgConfig)
13 pkg_check_modules(pkgs REQUIRED
14         capi-appfw-application
15         capi-appfw-app-manager
16         capi-appfw-package-manager
17         chromium
18         dlog
19         libdri2
20         libdrm
21         libtbm
22         ecore
23         ecore-x
24         elementary
25         evas
26         livebox-viewer
27         livebox-service
28         minicontrol-provider
29         notification
30         osp-appfw
31         provider
32         shortcut
33         vconf
34         x11
35         xext
36         xdamage
37 )
38
39 FOREACH(flag ${pkgs_CFLAGS})
40         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
41 ENDFOREACH(flag)
42
43
44 SET (${this_target}_SOURCE_FILES
45         FShellQuickPanelFrame.cpp
46         FShell_QuickPanelFrame.cpp
47         FShell_QuickPanelFrameImpl.cpp
48         FShell_QuickPanelFramePresenter.cpp
49         FShell_AppWidgetProviderImpl.cpp
50         FShell_AppWidgetPopupProviderImpl.cpp
51         FShell_AppWidgetProviderInfoImpl.cpp
52         FShell_AppWidgetSizeInfoImpl.cpp
53         FShell_AppWidgetManagerImpl.cpp
54         FShell_AppWidgetProviderManagerImpl.cpp
55         FShell_AppWidgetServiceRequestDispatcher.cpp
56         FShell_AppWidgetManagerProxy.cpp
57         FShellAppWidgetProvider.cpp
58         FShellAppWidgetPopupProvider.cpp
59         FShellAppWidgetProviderInfo.cpp
60         FShellAppWidgetSizeInfo.cpp
61         FShellAppWidgetManager.cpp
62         FShellAppWidgetProviderManager.cpp
63         FShell_AppWidgetManagerIpcMessage.cpp
64         FShell_AppWidgetBuffer.cpp
65         FShell_AppWidgetFrame.cpp
66         FShell_AppWidgetFrameImpl.cpp
67         FShell_AppWidgetFrameModel.cpp
68         FShell_AppWidgetFramePresenter.cpp
69         FShell_AppWidgetLayer.cpp
70         FShell_AppWidgetPopup.cpp
71         FShell_AppWidgetPopupImpl.cpp
72         FShell_AppWidgetPopupModel.cpp
73         FShell_AppWidgetPopupPresenter.cpp
74         FShell_AppWidgetPopupView.cpp
75         FShell_AppWidgetPopupViewEvent.cpp
76         FShell_AppWidgetPopupViewPresenter.cpp
77         FShell_AppWidgetView.cpp
78         FShell_AppWidgetViewImpl.cpp
79         FShell_AppWidgetViewManager.cpp
80         FShell_AppWidgetViewModel.cpp
81         FShell_AppWidgetViewPresenter.cpp
82         FShellAppWidgetFrame.cpp
83         FShellAppWidgetPopup.cpp
84         FShellAppWidgetView.cpp
85 )
86
87 ## Definitions
88 SET(EXTRA_CFLAGS  "${EXTRA_CFLAGS} -Wall" )
89
90 ## SET C COMPILER FLAGS
91 SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
92
93 ## SET CPP COMPILER FLAGS
94 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
95 SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
96
97 ## Create Library
98 ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
99
100 ADD_DEPENDENCIES(${this_target} osp-shell-core)
101
102 ## SET LINKER FLAGS
103 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed")
104
105 TARGET_LINK_LIBRARIES(${this_target} "-lpthread" )
106 TARGET_LINK_LIBRARIES(${this_target} "-L/usr/lib/osp -losp-uifw" )
107 TARGET_LINK_LIBRARIES(${this_target} "-L/usr/lib/osp -losp-image" )
108 TARGET_LINK_LIBRARIES(${this_target} osp-shell-core)
109 TARGET_LINK_LIBRARIES(${this_target} ${pkgs_LDFLAGS})
110
111 SET_TARGET_PROPERTIES(${this_target} 
112         PROPERTIES 
113         VERSION ${FULLVER}
114         SOVERSION ${MAJORVER}
115         CLEAN_DIRECT_OUTPUT 1
116 )
117
118 ADD_CUSTOM_COMMAND(TARGET ${this_target}
119                 POST_BUILD
120                 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} 
121                 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}
122                 COMMAND ${CMAKE_STRIP} --strip-unneeded ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}
123                 COMMENT "strip ${this_target}"
124 )