Fix static analysis issues
[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(DRMTESTUTIL drm_test_tizen)
5 SET(DRMTAPPSINITIALIZE drm_tizen_initialize)
6
7 IF (CMAKE_BUILD_TYPE MATCHES "DEBUG")
8     ADD_DEFINITIONS("-DDLOG_DEBUG_ENABLE")
9 ENDIF (CMAKE_BUILD_TYPE MATCHES "DEBUG")
10
11 INCLUDE(FindPkgConfig)
12
13 ADD_DEFINITIONS("-DISSUER_ROOT_CERTS_DIR=\"${RO_DATA_DIR}/root_certs\"")
14 ADD_DEFINITIONS("-DDB_PATH=\"${DB_DIR}/.dtapps.db\"")
15
16 ############################# compiler flags ##################################
17 SET(CXX_SPECIFIC_FLAGS         "-std=c++0x")
18 SET(CMAKE_C_FLAGS_PROFILING    "-g -O0 -Wp,-U_FORTIFY_SOURCE -pg")
19 SET(CMAKE_CXX_FLAGS_PROFILING  "-g -O0 -Wp,-U_FORTIFY_SOURCE -pg ${CXX_SPECIFIC_FLAGS}")
20 SET(CMAKE_C_FLAGS_DEBUG        "-g -O0 -Wp,-U_FORTIFY_SOURCE -ggdb")
21 SET(CMAKE_CXX_FLAGS_DEBUG      "-g -O0 -Wp,-U_FORTIFY_SOURCE -ggdb ${CXX_SPECIFIC_FLAGS}")
22 SET(CMAKE_C_FLAGS_RELEASE      "-g -O2")
23 SET(CMAKE_CXX_FLAGS_RELEASE    "-g -O2 ${CXX_SPECIFIC_FLAGS}")
24 SET(CMAKE_C_FLAGS_CCOV         "${CMAKE_C_FLAGS_RELEASE} --coverage")
25 SET(CMAKE_CXX_FLAGS_CCOV       "${CMAKE_CXX_FLAGS_RELEASE} --coverage")
26
27 ADD_DEFINITIONS("-fPIC")
28
29 # Set compiler warning flags
30 ADD_DEFINITIONS("-Werror")                      # Make all warnings into errors.
31 ADD_DEFINITIONS("-Wall")                        # Generate all warnings
32 ADD_DEFINITIONS("-Wextra")                      # Generate even more extra warnings
33
34 PKG_CHECK_MODULES(DRM_SERVICE_CORE_DEP
35     REQUIRED
36     cryptsvc
37     sqlite3
38     glib-2.0
39     dlog
40     openssl1.1
41 )
42
43 INCLUDE_DIRECTORIES(
44     SYSTEM
45     ${DRM_SERVICE_CORE_DEP_INCLUDE_DIRS}
46     include
47     tadcore/include
48     tappsd/inc
49 )
50
51 SET(SRCS
52     service/drm-tapps.cpp
53     tadcore/DrmFileHandleMgr/DrmFileApi.cpp
54     tadcore/DrmFileHandleMgr/DrmFileHandler.cpp
55     tadcore/DrmFileHandleMgr/DrmFileMgr.cpp
56     tadcore/Svc/DrmTdcSvc.cpp
57     tadcore/TADCCore/TADC_Core.cpp
58     tadcore/TADCCore/TADC_Sub.cpp
59     tadcore/TADCCore/TADC_Util.cpp
60     tadcore/TADCInterface/DUIDGenerator.cpp
61     tadcore/TADCInterface/TADC_IF.cpp
62     tadcore/XMLParser/CPointerArray.cpp
63     tadcore/XMLParser/CXMLAttribute.cpp
64     tadcore/XMLParser/CXMLElement.cpp
65     tadcore/XMLParser/CXMLFile.cpp
66     tappsd/src/db/DTapps2SqlData.cpp
67     tappsd/src/db/DTapps2SqliteDB.cpp
68     tappsd/src/intf/drm_intf_tapps.cpp
69     tappsd/src/rights/DTapps2Rights.cpp
70     tappsd/src/util/DTapps2Base64.cpp
71     tappsd/src/util/DTapps2HMAC.cpp
72     tappsd/src/util/DTapps2Time.cpp
73 )
74
75 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
76
77 SET_TARGET_PROPERTIES(${PROJECT_NAME}
78     PROPERTIES
79         COMPILE_FLAGS " -fvisibility=hidden"
80         SOVERSION ${MAJORVER}
81         VERSION ${FULLVER}
82 )
83
84 TARGET_LINK_LIBRARIES(${PROJECT_NAME}
85     ${DRM_SERVICE_CORE_DEP_LIBRARIES}
86     -ldevice_info # libdevice_info.so in cryptsvc.
87 )
88
89 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
90
91 #################################################################
92
93 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
94 INSTALL(FILES ${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
95
96 INSTALL(FILES resource/ro_root_cert.pem DESTINATION ${RO_DATA_DIR}/root_certs)
97
98 INSTALL(FILES include/drm-tizen-apps.h include/drm-tizen-error.h
99     DESTINATION ${INCLUDE_INSTALL_DIR}/drm-tizen
100 )
101
102 #################################################################
103
104 ADD_SUBDIRECTORY(initializer)
105
106 IF(DEFINED BUILD_TEST_DRM_SERVICE_CORE_TIZEN)
107     ADD_DEFINITIONS("-DTEST_DATA_DIR=\"${TEST_DATA_DIR}\"")
108     ADD_SUBDIRECTORY(test)
109 ENDIF(DEFINED BUILD_TEST_DRM_SERVICE_CORE_TIZEN)