1 PROJECT(downloadagent2 C)
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}")
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.*")
17 #DA Engine Include Directory
18 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/provider/include)
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
35 include/download-agent-defs.h
36 include/download-agent-interface.h
39 INCLUDE(FindPkgConfig)
41 pkg_check_modules(subpkgs REQUIRED
44 capi-network-connection
49 IF ("${HTTP_LIB}" MATCHES "libcurl")
50 MESSAGE("HTTP_LIB: ${HTTP_LIB}")
51 pkg_check_modules(httppkgs REQUIRED
55 ${SRCS_PATH}/download-agent-plugin-libcurl.c
57 ENDIF ("${HTTP_LIB}" MATCHES "libcurl")
60 MESSAGE("SUPPORT_OMA_DRM: ${SUPPORT_OMA_DRM}")
61 ADD_DEFINITIONS("-D_ENABLE_OMA_DRM")
63 ${SRCS_PATH}/download-agent-plugin-drm.c
65 pkg_check_modules(drmpkgs REQUIRED
69 ENDIF (SUPPORT_OMA_DRM)
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)
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)
83 MESSAGE("CA_CERT:${CA_CERT}")
84 ADD_DEFINITIONS(-D_CA_CERT="${CA_CERT}")
88 MESSAGE("CA_PATH:${CA_PATH}")
89 ADD_DEFINITIONS(-D_CA_PATH="${CA_PATH}")
92 FOREACH(flag ${subpkgs_CFLAGS})
93 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
96 FOREACH(flag ${httppkgs_CFLAGS})
97 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
101 FOREACH(flag ${drmpkgs_CFLAGS})
102 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
104 #This is request of DRM Team.
105 ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
106 ENDIF (SUPPORT_OMA_DRM)
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)
113 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror -Werror-implicit-function-declaration")
115 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=default")
117 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden")
119 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fPIE")
120 SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIE")
122 ADD_DEFINITIONS("-D_ENABLE_DLOG")
123 #This should be removed when release a target
125 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS_DA})
127 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${subpkgs_LDFLAGS} ${httppkgs_LDFLAGS} ${drmpkgs_LDFLAGS})
128 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION})
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})