+# 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(asp-manager C)
SET(PACKAGE ${PROJECT_NAME})
-SET(INTERFACES "${CMAKE_SOURCE_DIR}/interfaces")
-
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(asp_pkgs REQUIRED
- glib-2.0
- gio-2.0
- gio-unix-2.0
- dlog
- nsd-dns-sd
- vconf
- )
-
-FOREACH(flag ${asp_pkgs_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/interfaces)
SET(SRCS
+ ${CMAKE_SOURCE_DIR}/src/asp-coordination-protocol.c
${CMAKE_SOURCE_DIR}/src/asp-manager.c
${CMAKE_SOURCE_DIR}/src/asp-manager-event.c
${CMAKE_SOURCE_DIR}/src/asp-manager-gdbus.c
+ ${CMAKE_SOURCE_DIR}/src/asp-manager-main.c
${CMAKE_SOURCE_DIR}/src/asp-manager-util.c
+ ${CMAKE_SOURCE_DIR}/src/asp-p2p-conn.c
+ ${CMAKE_SOURCE_DIR}/src/asp-service.c
+ ${CMAKE_SOURCE_DIR}/src/asp-session.c
+ ${CMAKE_SOURCE_DIR}/src/asp-session-peer.c
+ ${CMAKE_SOURCE_DIR}/src/asp-tech-ble.c
+ ${CMAKE_SOURCE_DIR}/src/asp-tech.c
+ ${CMAKE_SOURCE_DIR}/src/asp-tech-infra.c
+ ${CMAKE_SOURCE_DIR}/src/asp-tech-nan.c
+ ${CMAKE_SOURCE_DIR}/src/asp-tech-nfc.c
+ ${CMAKE_SOURCE_DIR}/src/asp-tech-p2p.c
+ ${CMAKE_SOURCE_DIR}/src/gfsm.c
+ ${CMAKE_SOURCE_DIR}/interfaces/generated-code.c
)
-FILE(GLOB SERVICE_SRCS ${CMAKE_SOURCE_DIR}/src/service/*.c)
-FILE(GLOB SESSION_SRCS ${CMAKE_SOURCE_DIR}/src/session/*.c)
-FILE(GLOB TECH_SRCS ${CMAKE_SOURCE_DIR}/src/tech/*.c)
-
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror-implicit-function-declaration -fvisibility=hidden")
-SET(ARM_CFLAGS "${ARM_CFLAGS} -mapcs -mabi=aapcs-linux -msoft-float -Uarm -fpic")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
-
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/interfaces/generated-code.c PROPERTIES GENERATED TRUE)
ADD_DEFINITIONS("-DUSE_DLOG")
-ADD_CUSTOM_COMMAND(
- WORKING_DIRECTORY
- OUTPUT ${CMAKE_SOURCE_DIR}/src/generated-code.c
- COMMAND gdbus-codegen --interface-prefix net.asp.
- --generate-c-code generated-code
- --c-namespace Asp
- --c-generate-object-manager
- --generate-docbook generated-code-docs
- ${INTERFACES}/aspmanager-iface-service.xml ${INTERFACES}/aspmanager-iface-session.xml
- COMMENT "Generating GDBus .c/.h")
-
-ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS} ${SERVICE_SRCS} ${SESSION_SRCS} ${TECH_SRCS} ${CMAKE_SOURCE_DIR}/src/generated-code.c)
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+ADD_DEPENDENCIES(${PROJECT_NAME} GENERATED_DBUS_CODE)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${asp_pkgs_LDFLAGS} -ldl)