unittest: Add testcase to verify PASS HAL interface
[platform/core/system/pass.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(pass C)
3
4 ########################################################
5 # PASS CMakeLists.txt
6 ########################################################
7 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
8 SET(EXEC_PREFIX "${PREFIX}/bin")
9 SET(INCLUDEDIR "${PREFIX}/include/${PROJECT_NAME}")
10 SET(VERSION 0.1.0)
11 SET(PASS_HAL_NAME pass-hal-devel)
12
13 SET(SRCS
14         src/pass/pass.c
15         src/pass/pass-cpuhp.c
16         src/pass/pass-cpuhp-radiation.c
17         src/pass/pass-cpuhp-step.c
18         src/pass/pass-parser.c
19         src/pass/pass-hal.c
20         src/pass/pass-rescon.c
21         src/pass/pass-resmon.c
22         src/pass/pass-resmon-source.c
23         src/pass/pass-pmqos.c
24         src/pass/pass-thermal.c
25         src/pmqos/pmqos.c
26         src/pmqos/pmqos-parser.c
27         src/thermal/thermal.c
28         src/thermal/thermal-parser.c
29         src/hal/hal.c
30         src/core/common.c
31         src/core/config-parser.c
32         src/core/device-notifier.c
33         src/core/devices.c
34         src/core/main.c
35         src/core/gdbus-util.c
36         #Generated by a custom command 'gdbus-codegen' below
37         src/pass/pass-dbus-stub.c
38         #Generated by a custom command 'gdbus-codegen' below
39         src/pmqos/pmqos-dbus-stub.c
40         #Generated by a custom command 'gdbus-codegen' below
41         src/thermal/thermal-dbus-stub.c
42 )
43
44 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
45 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
46 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
47
48 SET(PKG_MODULES
49         dlog
50         glib-2.0
51         dbus-1
52         gio-2.0
53         gio-unix-2.0
54         libudev
55 )
56
57 INCLUDE(FindPkgConfig)
58 pkg_check_modules(pkgs REQUIRED ${PKG_MODULES})
59
60 FOREACH(flag ${pkgs_CFLAGS})
61         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
62 ENDFOREACH(flag)
63
64 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -fPIE")
65 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -fno-omit-frame-pointer -finstrument-functions")
66 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -lrt")
67 SET(CMAKE_EXE_LINKER_FLAGS "-pie")
68
69 ADD_DEFINITIONS("-DLOG_TAG=\"PASS\"")
70 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
71 ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
72 ADD_DEFINITIONS("-DLIBPATH=\"${LIB_INSTALL_DIR}\"")
73
74 ADD_CUSTOM_COMMAND(
75         OUTPUT src/pass/pass-dbus-stub.c
76         COMMAND gdbus-codegen --interface-prefix org.tizen.
77                                 --generate-c-code pass-dbus-stub
78                                 --output-directory src/pass/
79                                 scripts/pass-dbus.xml
80         COMMENT "Generating GDBus stub for core interface")
81 ADD_CUSTOM_COMMAND(
82         OUTPUT src/pmqos/pmqos-dbus-stub.c
83         COMMAND gdbus-codegen --interface-prefix org.tizen.
84                                 --generate-c-code pmqos-dbus-stub
85                                 --output-directory src/pmqos/
86                                 scripts/pmqos-dbus.xml
87         COMMENT "Generating GDBus stub for pmqos interface")
88 ADD_CUSTOM_COMMAND(
89         OUTPUT src/thermal/thermal-dbus-stub.c
90         COMMAND gdbus-codegen --interface-prefix org.tizen.
91                                 --generate-c-code thermal-dbus-stub
92                                 --output-directory src/thermal/
93                                 scripts/thermal-dbus.xml
94         COMMENT "Generating GDBus stub for thermal interface")
95
96 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
97 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} "-ldl" "-lm")
98 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
99 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/${PROJECT_NAME}.conf DESTINATION /etc/dbus-1/system.d)
100 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/pass-pmqos.conf DESTINATION /etc/pass)
101 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/pass-thermal.conf DESTINATION /etc/pass)
102
103 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
104 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
105 CONFIGURE_FILE(${PASS_HAL_NAME}.pc.in ${PASS_HAL_NAME}.pc @ONLY)
106 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PASS_HAL_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
107
108 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/systemd/ DESTINATION lib/systemd/system
109                 FILES_MATCHING
110                 PATTERN "*.service"
111                 )
112
113 ADD_SUBDIRECTORY(src/hal)
114 ADD_SUBDIRECTORY(unittest)