Fix svace defects
[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     db-util
38     dlog
39     openssl
40 )
41
42 INCLUDE_DIRECTORIES(
43     SYSTEM
44     ${DRM_SERVICE_CORE_DEP_INCLUDE_DIRS}
45     include
46     tadcore/include
47     tappsd/inc
48 )
49
50 SET(SRCS
51     service/drm-tapps.cpp
52     tadcore/DrmFileHandleMgr/DrmFileApi.cpp
53     tadcore/DrmFileHandleMgr/DrmFileHandler.cpp
54     tadcore/DrmFileHandleMgr/DrmFileMgr.cpp
55     tadcore/Svc/DrmTdcSvc.cpp
56     tadcore/TADCCore/TADC_Core.cpp
57     tadcore/TADCCore/TADC_Sub.cpp
58     tadcore/TADCCore/TADC_Util.cpp
59     tadcore/TADCInterface/DUIDGenerator.cpp
60     tadcore/TADCInterface/TADC_IF.cpp
61     tadcore/XMLParser/CPointerArray.cpp
62     tadcore/XMLParser/CXMLAttribute.cpp
63     tadcore/XMLParser/CXMLElement.cpp
64     tadcore/XMLParser/CXMLFile.cpp
65     tappsd/src/db/DTapps2SqlData.cpp
66     tappsd/src/db/DTapps2SqliteDB.cpp
67     tappsd/src/intf/drm_intf_tapps.cpp
68     tappsd/src/rights/DTapps2Rights.cpp
69     tappsd/src/util/DTapps2Base64.cpp
70     tappsd/src/util/DTapps2HMAC.cpp
71     tappsd/src/util/DTapps2Time.cpp
72 )
73
74 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
75
76 SET_TARGET_PROPERTIES(${PROJECT_NAME}
77     PROPERTIES
78         COMPILE_FLAGS " -fvisibility=hidden"
79         SOVERSION ${MAJORVER}
80         VERSION ${FULLVER}
81 )
82
83 TARGET_LINK_LIBRARIES(${PROJECT_NAME}
84     ${DRM_SERVICE_CORE_DEP_LIBRARIES}
85     -ldevice_info # libdevice_info.so in cryptsvc.
86 )
87
88 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
89
90 #################################################################
91 PKG_CHECK_MODULES(DRM_INITIALIZE_DEP
92     REQUIRED
93     db-util
94     dlog
95     openssl
96 )
97
98 INCLUDE_DIRECTORIES(${DRM_INITIALIZE_DEP_INCLUDE_DIRS})
99
100 SET(DRMTAPPSINITIALIZE_SRCS
101     service/drm-tapps-initialize.cpp
102     tappsd/src/db/DTapps2SqlData.cpp
103     tappsd/src/db/DTapps2SqliteDB.cpp
104     tappsd/src/intf/drm_intf_tapps.cpp
105 )
106
107 SET_SOURCE_FILES_PROPERTIES(${DRMTAPPSINITIALIZE_SRCS}
108     PROPERTIES
109         COMPILE_FLAGS "-fPIE"
110 )
111
112 ADD_EXECUTABLE(${DRMTAPPSINITIALIZE} ${DRMTAPPSINITIALIZE_SRCS})
113
114 TARGET_LINK_LIBRARIES(${DRMTAPPSINITIALIZE}
115     ${DRM_INITIALIZE_DEP_LIBRARIES}
116     -pie
117 )
118
119 INSTALL(TARGETS ${DRMTAPPSINITIALIZE} DESTINATION ${BIN_DIR})
120 #################################################################
121
122 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
123 INSTALL(FILES ${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
124
125 INSTALL(FILES resource/ro_root_cert.pem DESTINATION ${RO_DATA_DIR}/root_certs)
126
127 INSTALL(FILES include/drm-tizen-apps.h include/drm-tizen-error.h
128     DESTINATION ${INCLUDE_INSTALL_DIR}/drm-tizen
129 )
130
131 #################################################################
132
133 IF(DEFINED BUILD_TEST_DRM_SERVICE_CORE_TIZEN)
134     ADD_DEFINITIONS("-DTEST_DATA_DIR=\"${TEST_DATA_DIR}\"")
135     ADD_SUBDIRECTORY(test)
136 ENDIF(DEFINED BUILD_TEST_DRM_SERVICE_CORE_TIZEN)