apply player_prepare_async
[apps/core/preloaded/music-player.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(music-player C)
3
4 EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION)
5 message("Building by ${CMAKE_SYSTEM_VERSION} machine")
6
7 SET(COMMON_SRCS
8         src/mp-main.c
9
10         src/core/mp-file-tag-info.c
11         src/core/mp-player-control.c
12         src/core/mp-player-mgr.c
13         src/core/mp-player-drm.c
14         src/core/mp-setting-ctrl.c
15         src/core/mp-play-list.c
16         src/core/mp-streaming-mgr.c
17
18         src/common/mp-common.c
19                 src/common/mp-item.c
20                 src/common/mp-ta.c
21                 src/common/mp-menu.c
22                 src/common/mp-ug-launch.c
23                 src/common/mp-widget.c
24                 src/common/mp-util.c
25         src/common/mp-play.c
26         src/common/mp-app.c
27         src/common/mp-view-manager.c
28         src/common/mp-media-info.c
29
30         src/view/mp-library.c
31         src/view/mp-track-view.c
32         src/view/mp-group-view.c
33         src/view/mp-playlist-view.c
34         src/view/mp-play-view.c
35         src/view/mp-edit-view.c
36
37         src/widget/mp-search.c
38         src/widget/mp-smart-event-box.c
39         src/widget/mp-popup.c
40         src/widget/mp-view-layout.c
41         src/widget/mp-minicontroller.c
42 #               src/widget/mp-mini-player.c
43         src/core/mp-http-mgr.c
44         src/core/mp-language-mgr.c
45 )
46
47 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include
48         src/include
49         src/common/include
50         src/core/include
51         src/list/include
52         src/view/include
53         src/widget/include
54         src/oem/shazam/include
55 )
56
57 SET(SRCS ${COMMON_SRCS} ${RICH_INFO_SRCS})
58
59 INCLUDE(FindPkgConfig)
60 pkg_check_modules(pkgs REQUIRED
61         elementary
62         ecore
63         dlog
64         drm-client
65         glib-2.0
66         ui-gadget-1
67         syspopup-caller
68         capi-system-power
69         vconf
70         libxml-2.0
71         eina
72         ecore-imf
73         ecore-x
74         ecore-file
75         ecore-input
76         libcrypto
77         edje
78         evas
79         capi-appfw-application
80         capi-appfw-app-manager
81         capi-media-sound-manager
82         capi-media-player
83         capi-media-metadata-extractor
84         capi-system-haptic
85         minicontrol-provider
86         capi-system-media-key
87         capi-content-media-content
88         capi-system-system-settings
89 )
90
91 FOREACH(flag ${pkgs_CFLAGS})
92         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
93 ENDFOREACH(flag)
94 #SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -finstrument-functions")
95 #SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -DMUSIC_DEBUG")
96 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -DMACHINE_$ENV{MACHINE}")
97
98 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC")
99 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fpie")
100 SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall -g -fpie")
101 SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC")
102 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
103
104 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
105 ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
106
107 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
108
109 MESSAGE("### CMAKE_SYSTEM_VERSION :: ${CMAKE_SYSTEM_VERSION} ###")
110 if("${CMAKE_SYSTEM_VERSION}" STREQUAL "arm" OR "${CMAKE_SYSTEM_VERSION}" STREQUAL "armv7l")
111 ADD_DEFINITIONS("-D__ARM__")
112 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lm)
113 else()
114 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lm)
115 endif()
116
117 ADD_CUSTOM_TARGET(mp-custom-winset-style.edj
118                 COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images/music_player
119                 ${CMAKE_SOURCE_DIR}/layout/mp-custom-winset-style.edc ${CMAKE_BINARY_DIR}/layout/mp-custom-winset-style.edj
120                 DEPENDS ${CMAKE_SOURCE_DIR}/layout/mp-custom-winset-style.edc
121 )
122 ADD_DEPENDENCIES(${PROJECT_NAME} mp-custom-winset-style.edj)
123
124 ADD_CUSTOM_TARGET(mp-library.edj
125                 COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images/music_player
126                 ${CMAKE_SOURCE_DIR}/layout/mp-library.edc ${CMAKE_BINARY_DIR}/layout/mp-library.edj
127                 DEPENDS ${CMAKE_SOURCE_DIR}/layout/mp-library.edc
128 )
129 ADD_DEPENDENCIES(${PROJECT_NAME} mp-library.edj)
130
131 ADD_CUSTOM_TARGET(music.edj
132                 COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images/music_player
133                 ${CMAKE_SOURCE_DIR}/layout/music.edc ${CMAKE_BINARY_DIR}/layout/music.edj
134                 DEPENDS ${CMAKE_SOURCE_DIR}/layout/music.edc
135 )
136 ADD_DEPENDENCIES(${PROJECT_NAME} music.edj)
137
138 ADD_CUSTOM_TARGET(mp-minicontroller.edj
139                 COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images/music_player
140                 ${CMAKE_SOURCE_DIR}/layout/mp-minicontroller.edc ${CMAKE_BINARY_DIR}/layout/mp-minicontroller.edj
141                 DEPENDS ${CMAKE_SOURCE_DIR}/layout/mp-minicontroller.edc
142 )
143 ADD_DEPENDENCIES(${PROJECT_NAME} mp-minicontroller.edj)
144
145 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
146 SET(BINDIR "${PREFIX}/bin")
147 SET(RESDIR "${PREFIX}/res")
148 SET(DATADIR "${PREFIX}/data")
149 SET(LOCALEDIR "${RESDIR}/locale")
150 SET(ICONDIR "${RESDIR}/icons/default/small")
151 SET(EDJDIR "${RESDIR}/edje")
152
153 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
154 ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
155 ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
156 ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
157 ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
158 ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
159
160
161 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
162 INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/mp-custom-winset-style.edj DESTINATION ${EDJDIR})
163 INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/music.edj DESTINATION ${EDJDIR})
164 INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/mp-library.edj DESTINATION ${EDJDIR})
165 INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/mp-minicontroller.edj DESTINATION ${EDJDIR})
166 INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/mp-library.edj DESTINATION ${EDJDIR})
167 INSTALL(FILES ${CMAKE_BINARY_DIR}/layout/music.edj DESTINATION ${EDJDIR})
168 INSTALL(DIRECTORY DESTINATION ${DATADIR})
169
170 # install desktop file & icon
171 #CONFIGURE_FILE(data/org.tizen.music-player.desktop.in org.tizen.music-player.desktop)
172 #INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.music-player.desktop DESTINATION /opt/share/applications)
173 INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/org.tizen.music-player.png DESTINATION ${CMAKE_DESKTOP_ICON_DIR})
174 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/target_images/music_player DESTINATION ${RESDIR}/icons)
175
176 #install xml file
177 INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.music-player.xml DESTINATION /opt/share/packages)
178
179 # install menu icon
180 INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/music-player.uri DESTINATION /opt/share/miregex)
181
182
183 # i18n
184 ADD_SUBDIRECTORY(po)
185 #ADD_SUBDIRECTORY(data)
186
187 # Sound Player
188 ADD_SUBDIRECTORY(sound-player)