-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(wfd-manager C)
-
-# Global setting
-SET(VERSION 0.0)
-
-# Build type : Release
-IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
- SET(CMAKE_BUILD_TYPE "Release")
-ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
-MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
-
-# Set required packages
-INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED wifi-direct vconf glib-2.0 dbus-1 dbus-glib-1 gthread-2.0 dlog capi-appfw-application)
-
-FOREACH(flag ${pkgs_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag} -g -DUSE_DLOG")
-ENDFOREACH(flag)
-
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/include
- ${CMAKE_SOURCE_DIR}/oem/include)
-
-
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
-SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_C_FLAGS_RELEASE "-O2")
-
-FIND_PROGRAM(UNAME NAMES uname)
-EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
-IF("${ARCH}" STREQUAL "arm")
- ADD_DEFINITIONS("-DTARGET")
- MESSAGE("add -DTARGET")
-ENDIF("${ARCH}" STREQUAL "arm")
-
-ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
-
-# Linker flags
-#SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
-
-
-EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
-IF("${ARCH}" MATCHES "^arm.*")
- SET(SRCS
- wifi-direct-main.c
- wifi-direct-utils.c
- wifi-direct-stub.c
- wifi-direct-state.c
- wifi-direct-dhcp.c
- wifi-direct-client-handler.c
- wifi-direct-event-handler.c
- ${CMAKE_SOURCE_DIR}/oem/wifi-direct-oem.c
+# 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
+#
+INCLUDE_DIRECTORIES(
+ ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_SOURCE_DIR}/oem
)
- MESSAGE("Build for Target")
- ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+IF(TIZEN_ENABLE_PRD)
+INCLUDE_DIRECTORIES(
+ ${CMAKE_SOURCE_DIR}/prd/include
+ )
+ENDIF(TIZEN_ENABLE_PRD)
- TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -ldl)
+AUX_SOURCE_DIRECTORY(./ SRCS)
+SET(SRCS ${SRCS} ${CMAKE_SOURCE_DIR}/oem/wifi-direct-oem.c)
+IF(TIZEN_ENABLE_PRD)
+ SET(SRCS ${SRCS} ${CMAKE_SOURCE_DIR}/prd/src/wifi-direct-prd.c)
+ENDIF(TIZEN_ENABLE_PRD)
- # pkgconfig file
- SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+PKG_CHECK_MODULES(daemon_pkgs REQUIRED capi-network-wifi-direct glib-2.0
+ gio-2.0 gobject-2.0 dlog libnl-3.0 capi-appfw-application vconf aul
+ libsystemd capi-system-info libtzplatform-config ${MDM_REQUIRED_PKGS})
- # Install
- INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/dhcpd.p2p.conf DESTINATION etc/wifi-direct)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/dhcpd.wl0.conf DESTINATION etc/wifi-direct)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/dhcpd.eth.conf DESTINATION etc/wifi-direct)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/udhcp_script.non-autoip DESTINATION etc/wifi-direct)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/p2p_suppl.conf DESTINATION etc/wifi-direct)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/dhcpd-notify.sh DESTINATION bin)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/wifi-direct-server.sh DESTINATION bin)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/wifi-direct-dhcp.sh DESTINATION bin)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/p2p_supp.sh DESTINATION sbin)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/p2p_supplicant DESTINATION sbin)
+FOREACH(flag ${daemon_pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
-ELSE()
- SET(SRCS
- wifi-direct-main.c
- wifi-direct-utils.c
- wifi-direct-stub.c
- wifi-direct-state.c
- wifi-direct-dhcp.c
- wifi-direct-client-handler.c
- wifi-direct-event-handler.c
- ${CMAKE_SOURCE_DIR}/oem/wifi-direct-oem.c
- )
- MESSAGE("Build for Emulator")
+INCLUDE_DIRECTORIES($(daemon_pkgs_INCLUDE_DIRS))
+LINK_DIRECTORIES($(daemon_pkgs_LIBRARY_DIRS))
- ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
- TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -ldl)
+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")
- # pkgconfig file
- SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
- # Install
- INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/dhcpd.p2p.conf DESTINATION etc/wifi-direct)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/dhcpd.wl0.conf DESTINATION etc/wifi-direct)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/dhcpd.eth.conf DESTINATION etc/wifi-direct)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/udhcp_script.non-autoip DESTINATION etc/wifi-direct)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/p2p_suppl.conf DESTINATION etc/wifi-direct)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/dhcpd-notify.sh DESTINATION bin)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/wifi-direct-server.sh DESTINATION bin)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/wifi-direct-dhcp.sh DESTINATION bin)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/p2p_supp.sh DESTINATION sbin)
- INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/p2p_supplicant DESTINATION sbin)
-
-ENDIF()
+ADD_EXECUTABLE(${DAEMON} ${SRCS})
+TARGET_LINK_LIBRARIES(${DAEMON} ${daemon_pkgs_LDFLAGS} -ldl)
+INSTALL(TARGETS ${DAEMON} DESTINATION bin)