2 # Copyright (c) Samsung Electronics Co., Ltd.
6 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
7 PROJECT(download-manager C CXX)
11 src/download-manager-event.cpp
12 src/download-manager-network.cpp
13 src/download-manager-view.cpp
14 src/download-manager-viewItem.cpp
15 src/download-manager-items.cpp
16 src/download-manager-item.cpp
17 src/download-manager-downloadItem.cpp
18 src/download-manager-downloadRequest.cpp
19 src/download-manager-util.cpp
20 src/download-manager-history-db.cpp
21 src/download-manager-dateTime.cpp
22 src/download-manager-network.cpp
26 SET(PACKAGE ${PROJECT_NAME})
27 SET(PKGNAME "org.${VENDOR}.${PACKAGE}")
28 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
29 SET(BINDIR "${PREFIX}/bin")
30 SET(RESDIR "${PREFIX}/res")
31 SET(IMAGEDIR "${RESDIR}/images")
32 SET(DATADIR "${PREFIX}/data")
33 SET(DBDATADIR "${PREFIX}/data/db")
34 SET(LOCALEDIR "${RESDIR}/locale")
35 SET(ICONDIR "/opt/share/icons/default/small/")
36 SET(HISTORYDB ".download-history.db")
38 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
39 SET(CMAKE_BUILD_TYPE "Release")
40 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
41 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
43 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/include)
45 INCLUDE(FindPkgConfig)
46 pkg_check_modules(pkgs REQUIRED
48 capi-system-runtime-info
49 capi-appfw-application
50 capi-network-connection
51 capi-content-media-content
61 FIND_LIBRARY(LIB_DL dl)
63 FIND_PROGRAM(UNAME NAMES uname)
64 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
66 FOREACH(flag ${pkgs_CFLAGS})
67 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
69 FOREACH(flag ${pkgs_include_CFLAGS})
70 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
73 MESSAGE("ARCH: ${ARCH}")
74 MESSAGE("LIB_DL: ${LIB_DL}")
76 SET(CMAKE_C_FLAGS "${INC_FLAGS}${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall")
77 SET(CMAKE_CXX_FLAGS "${INC_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -Wall")
78 SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -Wall")
79 SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
81 IF("${ARCH}" MATCHES "^arm.*")
82 ADD_DEFINITIONS("-DTARGET")
83 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpie")
84 SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mabi=aapcs-linux -mfpu=vfp -mfloat-abi=softfp")
85 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
86 ENDIF("${ARCH}" MATCHES "^arm.*")
88 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -Wl,--hash-style=both")
90 ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
91 ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
92 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
93 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
94 ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
95 ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"")
96 ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
97 ADD_DEFINITIONS("-DDBDATADIR=\"${DBDATADIR}\"")
98 ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
99 ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
100 ADD_DEFINITIONS("-DHISTORYDB=\"${HISTORYDB}\"")
102 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
103 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${LIB_DL})
105 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
107 INSTALL(DIRECTORY DESTINATION ${DATADIR})
108 INSTALL(DIRECTORY DESTINATION ${DBDATADIR})
109 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/${PKGNAME}.xml DESTINATION /opt/share/packages)
110 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/images DESTINATION ${RESDIR})