tizen 2.4 release
[framework/connectivity/mobileap-agent.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(mobileap-agent C)
3
4 SET(SRCS src/mobileap_softap.c
5         src/mobileap_main.c
6         src/mobileap_wifi.c
7         src/mobileap_usb.c
8         src/mobileap_bluetooth.c
9         src/mobileap_handler.c
10         src/mobileap_common.c
11         src/mobileap_notification.c
12         src/mobileap_network.c
13         src/mobileap_iptables.c
14 )
15
16 SET(CMAKE_INSTALL_PREFIX /usr)
17
18 SET(APP_VENDOR "samsung")
19 SET(APP_NAME mobileap-agent)
20 SET(APP_DIR ${CMAKE_INSTALL_PREFIX}/bin)
21 SET(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include)
22
23 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
24         SET(CMAKE_BUILD_TYPE "Release")
25 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
26
27 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
28
29 INCLUDE_DIRECTORIES(${INCLUDE_DIR} ${CMAKE_SOURCE_DIR})
30
31 INCLUDE(FindPkgConfig)
32 pkg_check_modules(pkgs REQUIRED gio-2.0 gio-unix-2.0 dbus-1 dlog  deviced vconf notification capi-network-connection capi-network-bluetooth appcore-common capi-network-wifi capi-network-wifi-direct alarm-service appsvc libssl)
33
34 FOREACH(flag ${pkgs_CFLAGS})
35         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
36 ENDFOREACH(flag)
37
38 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall")
39 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fPIE")
40 SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIE")
41
42 FIND_PROGRAM(UNAME NAMES uname)
43 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
44 IF("${ARCH}" STREQUAL "arm")
45         ADD_DEFINITIONS("-DTARGET")
46         MESSAGE("add -DTARGET")
47 ENDIF("${ARCH}" STREQUAL "arm")
48 IF(TIZEN_TV)
49         ADD_DEFINITIONS(-DTIZEN_TV)
50 ENDIF(TIZEN_TV)
51
52 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
53 ADD_DEFINITIONS("-DVENDOR=\"${APP_VENDOR}\"")
54 ADD_DEFINITIONS("-DAPPNAME=\"${APP_NAME}\"")
55 ADD_DEFINITIONS("-DAPP_DIR=\"${APP_DIR}\"")
56
57 IF(TIZEN_WLAN_BOARD_SPRD)
58         ADD_DEFINITIONS(-DTIZEN_WLAN_BOARD_SPRD)
59 ENDIF(TIZEN_WLAN_BOARD_SPRD)
60
61 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -pie")
62
63 ADD_CUSTOM_COMMAND(
64         WORKING_DIRECTORY
65         OUTPUT ${CMAKE_BINARY_DIR}/tethering-server-stub.c
66         COMMAND gdbus-codegen --interface-prefix org.tizen.
67                         --generate-c-code tethering-server-stub
68                         --c-generate-object-manager
69                         --generate-docbook generated-docs
70                         ${INCLUDE_DIR}/tethering-dbus-interface.xml
71                         COMMENT "Generating GDBus .c/.h")
72
73 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS} ${CMAKE_BINARY_DIR}/tethering-server-stub.c)
74 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
75
76 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
77 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/org.tizen.tethering.service DESTINATION share/dbus-1/system-services)
78 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/tethering_dump.sh DESTINATION /opt/etc/dump.d/module.d/)
79