Fix build warning and add related gcc options
[platform/core/security/drm-service-core-tizen.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(drm-service-core-tizen CXX)
3
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5 SET(EXEC_PREFIX "\${prefix}")
6 SET(LIBDIR "\${prefix}/lib")
7 SET(INCLUDEDIR "\${prefix}/include")
8
9 SET(DRMTESTUTIL drm_test_tizen)
10 SET(DRMTAPPSINITIALIZE drm_tizen_initialize)
11
12 IF (CMAKE_BUILD_TYPE MATCHES "DEBUG")
13     ADD_DEFINITIONS("-DTIZEN_DEBUG_ENABLE")
14     ADD_DEFINITIONS("-DBUILD_TYPE_DEBUG")
15 ENDIF (CMAKE_BUILD_TYPE MATCHES "DEBUG")
16
17 INCLUDE(FindPkgConfig)
18
19 ADD_DEFINITIONS("-DISSUER_ROOT_CERTS_DIR=\"${TZ_SYS_SHARE}/tizen_app_drm/root_certs\"")
20 ADD_DEFINITIONS("-DDB_PATH=\"${TZ_SYS_DB}/.dtapps.db\"")
21
22
23 ############################# compiler flags ##################################
24 SET(CMAKE_C_FLAGS_PROFILING    "-g -O0 -pg -Wp,-U_FORTIFY_SOURCE")
25 SET(CMAKE_CXX_FLAGS_PROFILING  "-g -std=c++0x -O0 -pg -Wp,-U_FORTIFY_SOURCE")
26 SET(CMAKE_C_FLAGS_DEBUG        "-g -O0 -ggdb -Wp,-U_FORTIFY_SOURCE")
27 SET(CMAKE_CXX_FLAGS_DEBUG      "-g -std=c++0x -O0 -ggdb -Wp,-U_FORTIFY_SOURCE")
28 SET(CMAKE_C_FLAGS_RELEASE      "-g -O2")
29 SET(CMAKE_CXX_FLAGS_RELEASE    "-g -std=c++0x -O2")
30 SET(CMAKE_C_FLAGS_CCOV         "-g -O2 --coverage")
31 SET(CMAKE_CXX_FLAGS_CCOV       "-g -std=c++0x -O2 --coverage")
32
33 ADD_DEFINITIONS("-fPIC")
34
35 # Set compiler warning flags
36 ADD_DEFINITIONS("-Werror")                      # Make all warnings into errors.
37 ADD_DEFINITIONS("-Wall")                        # Generate all warnings
38 ADD_DEFINITIONS("-Wextra")                      # Generate even more extra warnings
39
40 INCLUDE_DIRECTORIES(
41     SYSTEM
42     ${CMAKE_CURRENT_SOURCE_DIR}/tadcore/include
43     ${CMAKE_CURRENT_SOURCE_DIR}/tappsd/inc
44     ${CMAKE_CURRENT_SOURCE_DIR}/include
45 )
46
47 pkg_check_modules(DRM_SERVICE_CORE_DEP
48     REQUIRED
49         dlog
50         db-util
51         openssl
52     cryptsvc
53     libtzplatform-config
54 )
55
56 INCLUDE_DIRECTORIES(${DRM_SERVICE_CORE_DEP_INCLUDE_DIRS})
57
58 SET(SRCS
59         tadcore/TADCCore/TADC_Core.cpp
60         tadcore/TADCCore/TADC_Sub.cpp
61         tadcore/TADCCore/TADC_Util.cpp
62         tadcore/TADCInterface/TADC_IF.cpp
63         tadcore/Svc/DrmTdcSvc.cpp
64         tappsd/src/intf/drm_intf_tapps.cpp
65         tadcore/XMLParser/CPointerArray.cpp
66         tadcore/XMLParser/CXMLAttribute.cpp
67         tadcore/XMLParser/CXMLElement.cpp
68         tadcore/XMLParser/CXMLFile.cpp
69         tappsd/src/rights/DTapps2Rights.cpp
70         tappsd/src/db/DTapps2SqlData.cpp
71         tappsd/src/db/DTapps2SqliteDB.cpp
72         tappsd/src/util/DTapps2Base64.cpp
73         tappsd/src/util/DTapps2HMAC.cpp
74         tappsd/src/util/DTapps2Time.cpp
75         service/drm-tapps.cpp
76         tadcore/DrmFileHandleMgr/DrmFileHandler.cpp
77         tadcore/DrmFileHandleMgr/DrmFileMgr.cpp
78         tadcore/DrmFileHandleMgr/DrmFileApi.cpp
79
80         #for deviceId
81         tadcore/TADCInterface/DUIDGenerator.cpp
82 )
83
84 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
85
86 SET_TARGET_PROPERTIES(
87     ${PROJECT_NAME}
88     PROPERTIES
89         COMPILE_FLAGS " -fvisibility=hidden"
90         SOVERSION ${MAJORVER}
91         VERSION ${FULLVER}
92 )
93
94 TARGET_LINK_LIBRARIES(${PROJECT_NAME}
95     ${DRM_SERVICE_CORE_DEP_LIBRARIES}
96     -ldevice_info # libdevice_info.so in cryptsvc.
97 )
98
99 #################################################################
100 pkg_check_modules(DRM_INITIALIZE_DEP
101     REQUIRED
102         dlog
103         db-util
104         openssl
105 #    cryptsvc
106 )
107
108 INCLUDE_DIRECTORIES(${DRM_INITIALIZE_DEP_INCLUDE_DIRS})
109
110 SET(DRMTAPPSINITIALIZE_SRCS
111         service/drm-tapps-initialize.cpp
112         tappsd/src/intf/drm_intf_tapps.cpp
113         tappsd/src/db/DTapps2SqliteDB.cpp
114         tappsd/src/db/DTapps2SqlData.cpp
115 )
116
117 FIND_PROGRAM(UNAME NAMES uname)
118 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
119
120 IF("${ARCH}" STREQUAL "arm")
121         ADD_DEFINITIONS("-DTARGET")
122         MESSAGE("add -DTARGET")
123 ENDIF("${ARCH}" STREQUAL "arm")
124
125 # -fPIE and -pie flag is added for ASLR
126 SET_SOURCE_FILES_PROPERTIES(
127     ${DRMTAPPSINITIALIZE_SRCS}
128     PROPERTIES
129         COMPILE_FLAGS "-fPIE")
130
131 ADD_EXECUTABLE(${DRMTAPPSINITIALIZE} ${DRMTAPPSINITIALIZE_SRCS})
132
133 TARGET_LINK_LIBRARIES(${DRMTAPPSINITIALIZE}
134     ${DRM_INITIALIZE_DEP_LIBRARIES}
135     -pie)
136
137 #################################################################
138
139 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
140
141 INSTALL(FILES ${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
142
143 INSTALL(FILES resource/ro_root_cert.pem
144     DESTINATION ${TZ_SYS_SHARE}/tizen_app_drm/root_certs)
145
146 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
147 INSTALL(TARGETS ${DRMTAPPSINITIALIZE} DESTINATION bin)
148
149 INSTALL(DIRECTORY include/ DESTINATION ${INCLUDEDIR}/drm-tizen/)
150
151 #################################################################
152
153 IF(DEFINED BUILD_TEST_DRM_SERVICE_CORE_TIZEN)
154 ADD_SUBDIRECTORY(test)
155 ENDIF(DEFINED BUILD_TEST_DRM_SERVICE_CORE_TIZEN)