d59040b0dc673fd0e78113234c127a3449ee444b
[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 INCLUDE_DIRECTORIES(
36     SYSTEM
37     ${CMAKE_CURRENT_SOURCE_DIR}/tadcore/include
38     ${CMAKE_CURRENT_SOURCE_DIR}/tappsd/inc
39     ${CMAKE_CURRENT_SOURCE_DIR}/include
40 )
41
42 pkg_check_modules(DRM_SERVICE_CORE_DEP
43     REQUIRED
44         dlog
45         db-util
46         openssl
47     dukgenerator
48     cryptsvc
49     libtzplatform-config
50 )
51
52 INCLUDE_DIRECTORIES(${DRM_SERVICE_CORE_DEP_INCLUDE_DIRS})
53
54 SET(SRCS
55         tadcore/TADCCore/TADC_Core.cpp
56         tadcore/TADCCore/TADC_Sub.cpp
57         tadcore/TADCCore/TADC_Util.cpp
58         tadcore/TADCInterface/TADC_IF.cpp
59         tadcore/Svc/DrmTdcSvc.cpp
60         tappsd/src/intf/drm_intf_tapps.cpp
61         tadcore/XMLParser/CPointerArray.cpp
62         tadcore/XMLParser/CXMLAttribute.cpp
63         tadcore/XMLParser/CXMLElement.cpp
64         tadcore/XMLParser/CXMLFile.cpp
65         tappsd/src/rights/DTapps2Rights.cpp
66         tappsd/src/db/DTapps2SqlData.cpp
67         tappsd/src/db/DTapps2SqliteDB.cpp
68         tappsd/src/util/DTapps2Base64.cpp
69         tappsd/src/util/DTapps2HMAC.cpp
70         tappsd/src/util/DTapps2Time.cpp
71         service/drm-tapps.cpp
72         tadcore/DrmFileHandleMgr/DrmFileHandler.cpp
73         tadcore/DrmFileHandleMgr/DrmFileMgr.cpp
74         tadcore/DrmFileHandleMgr/DrmFileApi.cpp
75
76         #for deviceId
77         tadcore/TADCInterface/DUIDGenerator.cpp
78 )
79
80 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
81
82 SET_TARGET_PROPERTIES(
83     ${PROJECT_NAME}
84     PROPERTIES
85         COMPILE_FLAGS " -fvisibility=hidden"
86         SOVERSION ${MAJORVER}
87         VERSION ${FULLVER}
88 )
89
90 TARGET_LINK_LIBRARIES(${PROJECT_NAME}
91     ${DRM_SERVICE_CORE_DEP_LIBRARIES}
92     -ldevice_info # libdevice_info.so in cryptsvc.
93 )
94
95 #################################################################
96 pkg_check_modules(DRM_INITIALIZE_DEP
97     REQUIRED
98         dlog
99         db-util
100         openssl
101     dukgenerator
102 #    cryptsvc
103 )
104
105 INCLUDE_DIRECTORIES(${DRM_INITIALIZE_DEP_INCLUDE_DIRS})
106
107 SET(DRMTAPPSINITIALIZE_SRCS
108         service/drm-tapps-initialize.cpp
109         tappsd/src/intf/drm_intf_tapps.cpp
110         tappsd/src/db/DTapps2SqliteDB.cpp
111         tappsd/src/db/DTapps2SqlData.cpp
112 )
113
114 FIND_PROGRAM(UNAME NAMES uname)
115 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
116
117 IF("${ARCH}" STREQUAL "arm")
118         ADD_DEFINITIONS("-DTARGET")
119         MESSAGE("add -DTARGET")
120 ENDIF("${ARCH}" STREQUAL "arm")
121
122 # -fPIE and -pie flag is added for ASLR
123 SET_SOURCE_FILES_PROPERTIES(
124     ${DRMTAPPSINITIALIZE_SRCS}
125     PROPERTIES
126         COMPILE_FLAGS "-fPIE")
127
128 ADD_EXECUTABLE(${DRMTAPPSINITIALIZE} ${DRMTAPPSINITIALIZE_SRCS})
129
130 TARGET_LINK_LIBRARIES(${DRMTAPPSINITIALIZE}
131     ${DRM_INITIALIZE_DEP_LIBRARIES}
132     -pie)
133
134 #################################################################
135
136 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
137
138 INSTALL(FILES ${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
139
140 INSTALL(FILES resource/ro_root_cert.pem
141     DESTINATION ${TZ_SYS_SHARE}/tizen_app_drm/root_certs)
142
143 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
144 INSTALL(TARGETS ${DRMTAPPSINITIALIZE} DESTINATION bin)
145
146 INSTALL(DIRECTORY include/ DESTINATION ${INCLUDEDIR}/drm-tizen/)
147
148 #################################################################
149
150 IF(DEFINED BUILD_TEST_DRM_SERVICE_CORE_TIZEN)
151 ADD_SUBDIRECTORY(test)
152 ENDIF(DEFINED BUILD_TEST_DRM_SERVICE_CORE_TIZEN)