Prevent memory leak when initialization failure
[platform/core/connectivity/wifi-direct-manager.git] / CMakeLists.txt
index aae3e95..084939f 100644 (file)
+# Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
+#
+#    Licensed under the Apache License, Version 2.0 (the "License");
+#    you may not use this file except in compliance with the License.
+#    You may obtain a copy of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+# @file        CMakeLists.txt
+#
+
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(wfd-manager C)
+PROJECT(wifi-direct-manager C CXX)
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED capi-network-wifi-direct glib-2.0 gio-2.0 gobject-2.0 dlog libnl-2.0 capi-appfw-application vconf aul libsystemd-login ${MDM_REQUIRED_PKGS})
-FOREACH(flag ${pkgs_CFLAGS})
-       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-INCLUDE_DIRECTORIES(
-       ${CMAKE_SOURCE_DIR}/include
-       ${CMAKE_SOURCE_DIR}/oem
-       )
-
-IF(TIZEN_ENABLE_PRD)
-INCLUDE_DIRECTORIES(
-       ${CMAKE_SOURCE_DIR}/prd/include
-       )
-ENDIF(TIZEN_ENABLE_PRD)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -g -Werror -fPIE")
-SET(CMAKE_C_FLAGS_DEBUG "O0 -g -fPIE")
-SET(CMAKE_C_FLAGS_RELEASE "O2 -fPIE")
+SET(DAEMON "wfd-manager")
+SET(PLUGIN "wifi-direct-plugin-wpasupplicant")
 
 SET(ARCH "${ARCHITECTURE}")
-
-ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
 ADD_DEFINITIONS("-DUSE_DLOG")
-
-IF(TIZEN_WLAN_BOARD_SPRD)
-       ADD_DEFINITIONS(-DTIZEN_WLAN_BOARD_SPRD)
-ENDIF(TIZEN_WLAN_BOARD_SPRD)
-IF(TIZEN_TETHERING_ENABLE)
-       ADD_DEFINITIONS(-DTIZEN_TETHERING_ENABLE)
-ENDIF(TIZEN_TETHERING_ENABLE)
-IF(TIZEN_FEATURE_DEFAULT_CONNECTION_AGENT)
-       ADD_DEFINITIONS(-DTIZEN_FEATURE_DEFAULT_CONNECTION_AGENT)
-ENDIF(TIZEN_FEATURE_DEFAULT_CONNECTION_AGENT)
-IF(TIZEN_FEATURE_SERVICE_DISCOVERY)
-       ADD_DEFINITIONS(-DTIZEN_FEATURE_SERVICE_DISCOVERY)
-ENDIF(TIZEN_FEATURE_SERVICE_DISCOVERY)
-IF(TIZEN_FEATURE_WIFI_DISPLAY)
-       ADD_DEFINITIONS(-DTIZEN_FEATURE_WIFI_DISPLAY)
-ENDIF(TIZEN_FEATURE_WIFI_DISPLAY)
-IF(TIZEN_WLAN_CONCURRENT_ENABLE)
-       ADD_DEFINITIONS(-DTIZEN_WLAN_CONCURRENT_ENABLE)
-ENDIF(TIZEN_WLAN_CONCURRENT_ENABLE)
-IF(TIZEN_FEATURE_IP_OVER_EAPOL)
-       ADD_DEFINITIONS(-DTIZEN_FEATURE_IP_OVER_EAPOL)
-ENDIF(TIZEN_FEATURE_IP_OVER_EAPOL)
-
 IF(TIZEN_ARCH_64)
-       ADD_DEFINITIONS(-DTIZEN_ARCH_64)
+       ADD_DEFINITIONS(-DTIZEN_ARCH_64)
 ENDIF(TIZEN_ARCH_64)
 
-IF(TIZEN_PROFILE_COMMON)
-       ADD_DEFINITIONS(-DTIZEN_PROFILE_COMMON)
-ENDIF(TIZEN_PROFILE_COMMON)
-
-IF(TIZEN_FEATURE_ASP)
-       ADD_DEFINITIONS(-DTIZEN_FEATURE_ASP)
-ENDIF(TIZEN_FEATURE_ASP)
-
-IF(TIZEN_PROFILE_MOBILE)
-       ADD_DEFINITIONS(-DTIZEN_PROFILE_MOBILE)
-ENDIF(TIZEN_PROFILE_MOBILE)
-
-IF(TIZEN_PROFILE_TV)
-       ADD_DEFINITIONS(-DTIZEN_PROFILE_TV)
-ENDIF(TIZEN_PROFILE_TV)
-
-IF(TIZEN_WIFI_MODULE_BUNDLE)
-       ADD_DEFINITIONS(-DTIZEN_WIFI_MODULE_BUNDLE)
-ENDIF(TIZEN_WIFI_MODULE_BUNDLE)
+IF(TIZEN_TETHERING_ENABLE)
+       ADD_DEFINITIONS(-DTIZEN_TETHERING_ENABLE)
+ENDIF(TIZEN_TETHERING_ENABLE)
 
-IF(CTRL_IFACE_DBUS)
-       ADD_DEFINITIONS(-DCTRL_IFACE_DBUS)
-ENDIF(CTRL_IFACE_DBUS)
 IF(TIZEN_DEBUG_DBUS_VALUE)
-       ADD_DEFINITIONS(-DTIZEN_DEBUG_DBUS_VALUE)
+       ADD_DEFINITIONS(-DTIZEN_DEBUG_DBUS_VALUE)
 ENDIF(TIZEN_DEBUG_DBUS_VALUE)
 
-IF(TIZEN_ENABLE_PRD)
-       ADD_DEFINITIONS(-DTIZEN_ENABLE_PRD)
-ENDIF(TIZEN_ENABLE_PRD)
-
-SET(SRCS
-       ${CMAKE_SOURCE_DIR}/src/wifi-direct-manager.c
-       ${CMAKE_SOURCE_DIR}/src/wifi-direct-state.c
-       ${CMAKE_SOURCE_DIR}/src/wifi-direct-peer.c
-       ${CMAKE_SOURCE_DIR}/src/wifi-direct-group.c
-       ${CMAKE_SOURCE_DIR}/src/wifi-direct-session.c
-       ${CMAKE_SOURCE_DIR}/src/wifi-direct-event.c
-       ${CMAKE_SOURCE_DIR}/src/wifi-direct-util.c
-       ${CMAKE_SOURCE_DIR}/src/wifi-direct-dbus.c
-       ${CMAKE_SOURCE_DIR}/src/wifi-direct-error.c
-       ${CMAKE_SOURCE_DIR}/src/wifi-direct-iface.c
-       ${CMAKE_SOURCE_DIR}/oem/wifi-direct-oem.c
-       )
-
-IF(TIZEN_FEATURE_SERVICE_DISCOVERY)
-       SET(SRCS ${SRCS} ${CMAKE_SOURCE_DIR}/src/wifi-direct-service.c)
-ENDIF(TIZEN_FEATURE_SERVICE_DISCOVERY)
-
-IF(TIZEN_ENABLE_PRD)
-       SET(SRCS ${SRCS} ${CMAKE_SOURCE_DIR}/prd/src/wifi-direct-prd.c)
-ENDIF(TIZEN_ENABLE_PRD)
-
-ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -ldl)
-
-
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/files/dhcpd-notify.sh.in ${CMAKE_SOURCE_DIR}/files/dhcpd-notify.sh @ONLY)
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/files/dhcpd.conf.in ${CMAKE_SOURCE_DIR}/files/dhcpd.conf @ONLY)
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/files/p2p_supp.conf.in ${CMAKE_SOURCE_DIR}/files/p2p_supp.conf @ONLY)
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/files/p2p_supp.sh.in ${CMAKE_SOURCE_DIR}/files/p2p_supp.sh @ONLY)
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/files/udhcp_script.non-autoip.in ${CMAKE_SOURCE_DIR}/files/udhcp_script.non-autoip @ONLY)
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/files/wifi-direct-dhcp.sh.in ${CMAKE_SOURCE_DIR}/files/wifi-direct-dhcp.sh @ONLY)
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/files/wifi-direct-server.sh.in ${CMAKE_SOURCE_DIR}/files/wifi-direct-server.sh @ONLY)
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/udhcp_script.non-autoip DESTINATION ${TZ_SYS_RO_ETC}/wifi-direct)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/wifi-direct-server.sh DESTINATION ${BIN_DIR})
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/p2p_supp.sh DESTINATION ${SBIN_DIR})
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/ccode.conf DESTINATION ${TZ_SYS_RO_ETC}/wifi-direct)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/dhcpd-notify.sh DESTINATION ${BIN_DIR})
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/p2p_supp.conf DESTINATION ${TZ_SYS_RO_ETC}/wifi-direct)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/p2p_supp.conf DESTINATION ${TZ_SYS_ETC})
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/dhcpd.conf DESTINATION ${TZ_SYS_RO_ETC}/wifi-direct)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/wifi-direct-dhcp.sh DESTINATION ${BIN_DIR})
+ADD_SUBDIRECTORY(src)
 
 IF("${ARCH}" MATCHES "^arm.*|.*86.*")
-       IF(CTRL_IFACE_DBUS)
-               ADD_SUBDIRECTORY(plugin/wpasupplicant/ctrl_iface_dbus)
-       ELSE(CTRL_IFACE_DBUS)
-               ADD_SUBDIRECTORY(plugin/wpasupplicant/ctrl_iface_sock)
-       ENDIF(CTRL_IFACE_DBUS)
+       ADD_SUBDIRECTORY(plugin/wpasupplicant/ctrl_iface_dbus)
 ELSE()
        ADD_SUBDIRECTORY(plugin/wpasupplicant/emul)
 ENDIF()
 
 IF(TIZEN_ENABLE_PRD)
        IF("${ARCH}" MATCHES "^arm.*|.*86.*")
-               IF(CTRL_IFACE_DBUS)
-                       ADD_SUBDIRECTORY(prd/plugin/wpasupplicant/ctrl_iface_dbus)
-               ELSE(CTRL_IFACE_DBUS)
-                       ADD_SUBDIRECTORY(prd/plugin/wpasupplicant/ctrl_iface_sock)
-               ENDIF(CTRL_IFACE_DBUS)
+               ADD_SUBDIRECTORY(prd/plugin/wpasupplicant/ctrl_iface_dbus)
        ENDIF()
 ENDIF(TIZEN_ENABLE_PRD)
+
+ADD_SUBDIRECTORY(files)
+
+IF(BUILD_GTESTS)
+       ADD_SUBDIRECTORY(unittest)
+ENDIF(BUILD_GTESTS)