Retry read() when getting EAGAIN
[platform/framework/web/download-provider.git] / agent / CMakeLists.txt
1 PROJECT(downloadagent2 C)
2
3 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
4         SET(CMAKE_BUILD_TYPE "Release")
5 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
6 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
7
8 SET(VERSION "0.1.0")
9
10 FIND_PROGRAM(UNAME NAMES uname)
11 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
12 IF("${ARCH}" MATCHES "^arm.*")
13         ADD_DEFINITIONS("-D_TARGET")
14         SET(CMAKE_C_FLAGS_RELEASE "-mabi=aapcs-linux -msoft-float -O2")
15 ENDIF("${ARCH}" MATCHES "^arm.*")
16
17 #DA Engine Include Directory
18 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/provider/include)
19
20 SET(SRCS_PATH ".")
21 SET(SRCS_DA
22         ${SRCS_PATH}/download-agent-interface.c
23         ${SRCS_PATH}/download-agent-client-mgr.c
24         ${SRCS_PATH}/download-agent-dl-mgr.c
25         ${SRCS_PATH}/download-agent-dl-info.c
26         ${SRCS_PATH}/download-agent-http-mgr.c
27         ${SRCS_PATH}/download-agent-http-msg-handler.c
28         ${SRCS_PATH}/download-agent-encoding.c
29         ${SRCS_PATH}/download-agent-file.c
30         ${SRCS_PATH}/download-agent-plugin-conf.c
31         ${SRCS_PATH}/download-agent-mime-util.c
32 )
33
34 SET(HEADERS
35         include/download-agent-defs.h
36         include/download-agent-interface.h
37 )
38
39 INCLUDE(FindPkgConfig)
40
41 pkg_check_modules(subpkgs REQUIRED
42         xdgmime
43         vconf
44         capi-network-connection
45         dlog
46         storage
47 )
48
49 IF ("${HTTP_LIB}" MATCHES "libcurl")
50         MESSAGE("HTTP_LIB: ${HTTP_LIB}")
51         pkg_check_modules(httppkgs REQUIRED
52                 libcurl
53         )
54         LIST(APPEND SRCS_DA
55         ${SRCS_PATH}/download-agent-plugin-libcurl.c
56         )
57 ENDIF ("${HTTP_LIB}" MATCHES "libcurl")
58
59 IF (SUPPORT_OMA_DRM)
60         MESSAGE("SUPPORT_OMA_DRM: ${SUPPORT_OMA_DRM}")
61         ADD_DEFINITIONS("-D_ENABLE_OMA_DRM")
62         LIST(APPEND SRCS_DA
63                 ${SRCS_PATH}/download-agent-plugin-drm.c
64         )
65         pkg_check_modules(drmpkgs REQUIRED
66                 drm-client
67                 drm-trusted
68         )
69 ENDIF (SUPPORT_OMA_DRM)
70
71 IF (SUPPORT_DOWNLOAD_BOOSTER)
72         MESSAGE("SUPPORT_DOWNLOAD_BOOSTER:${SUPPORT_DOWNLOAD_BOOSTER}")
73         ADD_DEFINITIONS("-D_RAF_SUPPORT")
74         ADD_DEFINITIONS("-D_DOWNLOAD_BOOSTER_SUPPORT")
75 ENDIF (SUPPORT_DOWNLOAD_BOOSTER)
76
77 IF(SUPPORT_LARGE_FILE)
78         MESSAGE("Large file:On")
79         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -D_FILE_OFFSET_BITS=64")
80 ENDIF(SUPPORT_LARGE_FILE)
81
82 IF(CA_CERT)
83         MESSAGE("CA_CERT:${CA_CERT}")
84         ADD_DEFINITIONS(-D_CA_CERT="${CA_CERT}")
85 ENDIF(CA_CERT)
86
87 IF(CA_PATH)
88         MESSAGE("CA_PATH:${CA_PATH}")
89         ADD_DEFINITIONS(-D_CA_PATH="${CA_PATH}")
90 ENDIF(CA_PATH)
91
92 FOREACH(flag ${subpkgs_CFLAGS})
93         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
94 ENDFOREACH(flag)
95
96 FOREACH(flag ${httppkgs_CFLAGS})
97         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
98 ENDFOREACH(flag)
99
100 IF (SUPPORT_OMA_DRM)
101         FOREACH(flag ${drmpkgs_CFLAGS})
102                 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
103         ENDFOREACH(flag)
104         #This is request of DRM Team.
105         ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
106 ENDIF (SUPPORT_OMA_DRM)
107
108 IF (USE_SSL_THREAD_LOCKING)
109         MESSAGE("USE_SSL_THREAD_LOCKING(openssl<=1.0):On")
110         ADD_DEFINITIONS("-DUSE_SSL_THREAD_LOCKING")
111 ENDIF (USE_SSL_THREAD_LOCKING)
112
113 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror -Werror-implicit-function-declaration")
114 IF (BUILD_GTESTS)
115         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=default")
116 ELSE (BUILD_GTESTS)
117         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden")
118 ENDIF (BUILD_GTESTS)
119 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fPIE")
120 SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIE")
121
122 ADD_DEFINITIONS("-D_ENABLE_DLOG")
123 #This should be removed when release a target
124
125 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS_DA})
126
127 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${subpkgs_LDFLAGS} ${httppkgs_LDFLAGS} ${drmpkgs_LDFLAGS})
128 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION})
129
130 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
131 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/download-agent-interface.h DESTINATION ${INCLUDE_INSTALL_DIR}/${PKG_NAME})