tizen 2.3.1 release
[kernel/api/system-resource.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2
3 SET(fw_name "system-resource")
4 SET(RESOURCED resourced)
5 SET(LIBS libs)
6 SET(PROC-STAT proc-stat)
7 SET(NETWORK rd-network)
8
9 IF("${POWERTOP_MODULE}" STREQUAL "ON")
10 SET(POWERTOP-WRAPPER powertop-wrapper)
11 ENDIF()
12
13 PROJECT(${fw_name})
14
15 #Set visibility
16 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -fvisibility=hidden")
17 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -fvisibility=hidden")
18
19 #Set as-needed
20 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--as-needed")
21 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
22
23 #Set debug-mode if needed
24 IF("${CMAKE_BUILD_TYPE}" STREQUAL  "DEBUG")
25   STRING(REGEX REPLACE "-O2" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
26   SET(DEBUG_ENABLED 1)
27   SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wall -O0 -g -pg")
28   SET(CMAKE_VERBOSE_MAKEFILE ON)
29   SET(VERBOSE 1)
30 ELSE()
31 #set compile size optimization option in case of none DEBUG
32   SET(ADDITIONAL_OFLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections -fno-exceptions")
33   SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${ADDITIONAL_OFLAGS}")
34 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_OFLAGS}")
35 ENDIF()
36
37 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
38
39 #following section is needed for pkg-config *.in file
40 SET(LIBDIR ${PREFIX}/lib)
41 SET(INCLUDEDIR ${PREFIX}/include)
42 SET(PC_NAME lib${RESOURCED})
43 SET(PC_NAME_DEPRECATED ${fw_name})
44 SET(PC_REQUIRED "glib-2.0
45                  vconf
46                  vconf-internal-keys
47                  sqlite3
48                  dlog
49                  eina
50                  edbus")
51
52 SET(PC_PROVIDED_LIBS "-l${PROC-STAT} -l${RESOURCED}")
53
54 IF("${NETWORK_MODULE}" STREQUAL "ON")
55         SET(PC_PROVIDED_LIBS "${PC_PROVIDED_LIBS} -l${NETWORK}")
56 ENDIF()
57
58 IF("${POWERTOP_MODULE}" STREQUAL "ON")
59   SET(PC_PROVIDED_LIBS "${PC_PROVIDED_LIBS} -l${POWERTOP-WRAPPER}" )
60 ENDIF()
61
62 SET(PC_CFLAGS -I\${includedir}/system)
63 SET(VERSION ${FULLVER})
64
65 CONFIGURE_FILE(
66     lib${RESOURCED}.pc.in
67     ${CMAKE_SOURCE_DIR}/lib${RESOURCED}.pc
68     @ONLY
69 )
70
71 CONFIGURE_FILE(
72     ${fw_name}.pc.in
73     ${CMAKE_SOURCE_DIR}/${fw_name}.pc
74     @ONLY
75 )
76
77 #init variables with sources
78 SET(DATA_DIR                    ${CMAKE_SOURCE_DIR}/data)
79 SET(CMAKELISTS_DIR              ${CMAKE_SOURCE_DIR}/CMakeLists)
80 SET(INCLUDE_COMMON_DIR          ${CMAKE_SOURCE_DIR}/src/common)
81 SET(INCLUDE_PUBLIC_DIR          ${CMAKE_SOURCE_DIR}/include)
82 SET(RESOURCED_INCLUDEDIR        ${INCLUDE_COMMON_DIR} ${INCLUDE_PUBLIC_DIR})
83
84 SET(SOURCE_DIR                  ${CMAKE_SOURCE_DIR}/src)
85 SET(UTILS_SOURCE_DIR            ${SOURCE_DIR}/utils)
86 SET(RESOURCED_SOURCE_DIR        ${SOURCE_DIR}/resourced)
87 SET(PROC-STAT_SOURCE_DIR        ${SOURCE_DIR}/proc-stat)
88 IF("${POWERTOP_MODULE}" STREQUAL "ON")
89 SET(POWERTOP-WRAPPER_SOURCE_DIR ${SOURCE_DIR}/powertop-wrapper)
90 ENDIF()
91 SET(MEMORY_SOURCE_DIR           ${SOURCE_DIR}/memory)
92 SET(MEMPS_SOURCE_DIR            ${SOURCE_DIR}/memps)
93 SET(SWAP_SOURCE_DIR             ${SOURCE_DIR}/swap)
94 SET(MODULES_SOURCE_DIR          ${SOURCE_DIR}/modules)
95 SET(LOGGING_SOURCE_DIR          ${SOURCE_DIR}/logging)
96 SET(NETWORK_SOURCE_DIR          ${SOURCE_DIR}/network)
97 SET(COMMON_SOURCE_DIR           ${SOURCE_DIR}/common)
98 SET(CPU_SOURCE_DIR              ${SOURCE_DIR}/cpu)
99 SET(VIP_SOURCE_DIR              ${SOURCE_DIR}/vip-agent)
100 SET(TIMER_SOURCE_DIR              ${SOURCE_DIR}/timer-slack)
101
102 INSTALL(FILES ${CMAKE_SOURCE_DIR}/lib${RESOURCED}.pc DESTINATION lib/pkgconfig)
103 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${fw_name}.pc DESTINATION lib/pkgconfig)
104 INSTALL(FILES ${CMAKE_SOURCE_DIR}/resourced.conf DESTINATION /etc/dbus-1/system.d)
105
106 FILE(MAKE_DIRECTORY ${RESOURCED}-cmake)
107 CONFIGURE_FILE(${CMAKELISTS_DIR}/${RESOURCED}.txt ${RESOURCED}-cmake/CMakeLists.txt COPYONLY)
108
109
110 ADD_SUBDIRECTORY(${PROC-STAT_SOURCE_DIR})
111 ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/${RESOURCED}-cmake)
112 IF("${POWERTOP_MODULE}" STREQUAL "ON")
113 ADD_SUBDIRECTORY(${POWERTOP-WRAPPER_SOURCE_DIR})
114 ENDIF()
115 ADD_SUBDIRECTORY(${MEMPS_SOURCE_DIR})
116 ADD_SUBDIRECTORY(${NETWORK_SOURCE_DIR})