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