Fix coverity issue 1149129
[apps/native/volume-app.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(volume C)
3
4 SET(SRCS
5         src/main.c
6         src/view.c
7         src/control.c
8         src/key_event.c
9         src/timer.c
10         src/sound.c
11         src/bt.c
12         src/earphone.c
13 )
14
15 SET(VENDOR "tizen")
16 SET(PACKAGE ${PROJECT_NAME})
17 SET(PKGNAME "org.${VENDOR}.${PACKAGE}")
18 SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
19 SET(BINDIR "${PREFIX}/bin")
20 SET(RESDIR "${PREFIX}/res")
21 SET(DATADIR "/opt/usr/apps/com.${VENDOR}.${PACKAGE}/data")
22 SET(LOCALEDIR "${RESDIR}/locale")
23 SET(ICONDIR "/usr/share/icons")
24 SET(IMAGEDIR "${RESDIR}/images/${PACKAGE}")
25 SET(EDJDIR "${RESDIR}/edje")
26
27 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
28         SET(CMAKE_BUILD_TYPE "Release")
29 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
30 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
31
32 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/inc)
33
34 INCLUDE(FindPkgConfig)
35 pkg_check_modules(pkgs REQUIRED
36         capi-appfw-application
37         capi-appfw-app-manager
38         appcore-efl
39         ecore
40         evas
41         edje
42         capi-media-sound-manager
43         capi-network-bluetooth
44         capi-system-device
45         vconf
46         syspopup
47         syspopup-caller
48         bundle
49         feedback
50         notification
51         tzsh-volume-service
52         dlog
53         capi-appfw-app-common
54 )
55
56 FOREACH(flag ${pkgs_CFLAGS})
57         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
58 ENDFOREACH(flag)
59
60 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE")
61 SET(CMAKE_C_FLAGS_PROFILING "-O0 -g -pg -fPIE")
62 SET(CMAKE_CXX_FLAGS_PROFILING "-O0 -std=c++0x -g -pg -fPIE")
63 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fPIE")
64 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -std=c++0x -g -fPIE")
65 SET(CMAKE_C_FLAGS_RELEASE "-O2 -g -fPIE")
66 SET(CMAKE_CXX_FLAGS_RELEASE "-O2 std=c++0x -g -fPIE")
67 SET(CMAKE_C_FLAGS_CCOV "-O2 -g --coverage -fPIE")
68 SET(CMAKE_CXX_FLAGS_CCOV "-O2 std=c++0x -g --coverage -fPIE")
69 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
70
71 FIND_PROGRAM(UNAME NAMES uname)
72 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
73 IF("${ARCH}" STREQUAL "arm")
74         ADD_DEFINITIONS("-DTARGET")
75         MESSAGE("add -DTARGET")
76 ENDIF("${ARCH}" STREQUAL "arm")
77
78 ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
79 ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
80 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
81 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
82 ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
83 ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
84 ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
85 ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
86 ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"")
87 ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
88
89 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
90 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lm)
91
92 # Install EDJ
93 ADD_CUSTOM_COMMAND(OUTPUT volume_app.edj
94                 COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/res/images/private/volume
95                                 ${CMAKE_CURRENT_SOURCE_DIR}/res/edje/volume_app.edc ${CMAKE_BINARY_DIR}/volume_app.edj
96                 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/edje/volume_app.edc
97 )
98
99 ADD_CUSTOM_TARGET(edj_build DEPENDS volume_app.edj)
100 ADD_DEPENDENCIES(${PROJECT_NAME} edj_build)
101 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/volume_app.edj DESTINATION ${EDJDIR})
102
103 # install images
104 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/images/public/ DESTINATION ${IMAGEDIR} FILES_MATCHING PATTERN "*.png")
105
106 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
107
108 # install desktop file & icon
109 INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.xml DESTINATION /usr/share/packages)
110 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.png DESTINATION /usr/share/icons/)
111
112 #Language
113 MESSAGE("ADD_SUBDIRECTORY PO")
114 ADD_SUBDIRECTORY(res/po)