CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(batterymonitor-svcd C) SET(DAEMON batterymonitor-svcd) INCLUDE(FindPkgConfig) pkg_check_modules(pkgs REQUIRED dlog gio-2.0 gio-unix-2.0 libtzplatform-config sqlite3 db-util capi-system-info capi-system-runtime-info cynara-client cynara-session cynara-creds-gdbus json-c capi-appfw-job-scheduler capi-system-device dumpsys-system capi-network-wifi-manager capi-network-bluetooth capi-network-connection vconf tapi ) ADD_CUSTOM_COMMAND( WORKING_DIRECTORY OUTPUT battery_monitor_stub.c COMMAND gdbus-codegen --interface-prefix org.tizen. --generate-c-code battery_monitor_stub packaging/battery-monitor.xml COMMENT "Generating Battery-Monitor Client GDBus .c/.h") FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag} -Wall") ENDFOREACH(flag) SET(SRCS ./battery_monitor_stub.c src/bm_config_parser.c src/bm_power_engine.c src/bm_plugin_manager.c src/bm_callback_handler.c src/bm_server_db.c src/bm_util.c src/bm_server.c src/battery_dump/bd_history_item.c src/battery_dump/bm_listeners.c ) IF("${DUMP_DUMMY}" STREQUAL "ON") SET(SRCS ${SRCS} src/battery_dump/bd_history_item_dummy.c) ENDIF() INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) INSTALL(FILES ${CMAKE_SOURCE_DIR}/battery_monitor_stub.h DESTINATION include) SET(RELO_FLAGS "-D_FORTIFY_SOURCE=2 -Wl,-z,relro") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${RELO_FLAGS} -fPIE -fPIC -Wall -Werror") SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") SET(CMAKE_C_FLAGS_RELEASE "-O2") SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie") ADD_EXECUTABLE(${DAEMON} ${SRCS}) TARGET_LINK_LIBRARIES(${DAEMON} ${pkgs_LDFLAGS} -ldl) INSTALL(TARGETS ${DAEMON} DESTINATION bin) TARGET_LINK_LIBRARIES(${DAEMON} -ldl)