Copyright record updated.
[platform/core/security/suspicious-activity-monitor.git] / CMakeLists.txt
1 cmake_minimum_required (VERSION 2.8)
2
3 SET (PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR})
4
5 IF(NOT CMAKE_BUILD_TYPE)
6     SET(CMAKE_BUILD_TYPE "DEBUG")
7 ENDIF(NOT CMAKE_BUILD_TYPE)
8
9 SET(CMAKE_C_FLAGS_DEBUG     "-O0 -g")
10 SET(CMAKE_CXX_FLAGS_DEBUG   "-O0 -g")
11 SET(CMAKE_C_FLAGS_RELEASE   "-O2 -s")
12 SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -s")
13 SET(CMAKE_C_FLAGS_CCOV      "-O0 --coverage")
14 SET(CMAKE_CXX_FLAGS_CCOV    "-O0 --coverage")
15 SET(CMAKE_C_FLAGS_TEST      "-O0 -s")
16 SET(CMAKE_CXX_FLAGS_TEST    "-O0 -s")
17 message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
18
19 INCLUDE(FindPkgConfig)
20
21 IF (NOT DEFINED DAEMON_APP_NAME)
22     SET (DAEMON_APP_NAME "sam-agent")
23 ENDIF()
24
25 IF (NOT DEFINED DAEMON_CONFIG_FILE)
26     SET (DAEMON_CONFIG_FILE "sam.conf")
27 ENDIF()
28
29 IF (NOT DEFINED DAEMON_CONFIG_DIR)
30     SET (DAEMON_CONFIG_DIR "/etc/sam")
31 ENDIF()
32
33 if (NOT DEFINED LIBDIR)
34     SET (LIBDIR ${LIB_INSTALL_DIR})
35 endif (NOT DEFINED LIBDIR)
36
37 if (NOT DEFINED BIN_DIR)
38     SET (BIN_DIR "/usr/apps/sam")
39 endif (NOT DEFINED BIN_DIR)
40
41 pkg_check_modules(pkgs REQUIRED boost libcurl dpm dlog audit audit-trail)
42
43 FOREACH(flag ${pkgs_CFLAGS})
44     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
45 ENDFOREACH(flag)
46
47 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -DTB_LOG -D__TIZEN__ -DPROFILE_${BUILD_PROFILE} -DDATA_DIR=${DATA_DIR}")
48
49 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -DCONFIG_FILE_PATH=${DAEMON_CONFIG_DIR}/${DAEMON_CONFIG_FILE}")
50
51 # Enable logging
52 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -D__LOGGING__ ")
53
54 include_directories(common/inc)
55
56 message(STATUS "EXTRA_CFLAGS: " ${EXTRA_CFLAGS})
57
58 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
59 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++11")
60
61
62 add_subdirectory(utest)
63 add_subdirectory(communication)
64 add_subdirectory(daemon)
65
66 add_custom_target(runtests
67                   COMMAND utest
68                   COMMENT "Run unit tests.\n")
69 # Doxygen target
70 FIND_PACKAGE(Doxygen)
71     IF(DOXYGEN_FOUND)
72         SET(DOXYGEN_INPUT ${CMAKE_SOURCE_DIR})
73         SET(DOXYGEN_EXCLUDE "")
74         SET(DOXYGEN_EXCLUDE_PATTERNS "*/utest/* */mock/* */build* */CMake* */install/*")
75         CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
76         ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
77     ELSE(DOXYGEN_FOUND)
78         MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created")
79 ENDIF(DOXYGEN_FOUND)
80
81 # Coverage target
82 find_program(LCOV NAMES lcov)
83 message(STATUS "LCOV: " ${LCOV})
84 string(TIMESTAMP TIME "%Y-%m-%d_%H:%M:%S")
85 SET(COV_FOLDER "/tmp/coverage/${TIME}")
86 if(${LCOV} STREQUAL "LCOV-NOTFOUND")
87     message(STATUS "LCOV not found, using GCOVR")
88     add_custom_target(coverage
89                   COMMAND mkdir -p ${COV_FOLDER}
90                   COMMAND ../scripts/gcovr -r ../ --html --html-details -o ${COV_FOLDER}/report.html -eutest.* -emock.* -s -e.*main.cpp
91                   COMMAND echo "Coverage calculated."
92                   COMMENT "Coverage stat with GCOVR.\n")
93 else()
94     message(STATUS "LCOV was found.")
95     add_custom_target(coverage
96                   COMMAND mkdir -p ${COV_FOLDER}
97                   COMMAND lcov -t "result" -o ${COV_FOLDER}/utest.info -c -d .. --rc lcov_branch_coverage=1 -q
98                   COMMAND lcov --remove ${COV_FOLDER}/utest.info '*utest/*' '*mock/*' '/usr/include/*' '*main.cpp' --rc lcov_branch_coverage=1 -o ${COV_FOLDER}/utest_filtered.info -q
99                   COMMAND genhtml -o ${COV_FOLDER} ${COV_FOLDER}/utest_filtered.info
100                   COMMAND echo "Coverage calculated."
101                   COMMENT "Coverage stat with LCOV.\n")
102 endif()
103
104 INSTALL(FILES sam.xml DESTINATION ${MANIFESTDIR})