summaryrefslogtreecommitdiff
path: root/CommonAPI-Examples/e04PhoneBook/CMakeLists.txt
blob: d0202e7c93f09fda7bccd12192403742a46a5a34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Copyright (C) 2014 BMW Group
# Author: Manfred Bathelt (manfred.bathelt@bmw.de)
# Author: Juergen Gehring (juergen.gehring@bmw.de)
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

cmake_minimum_required(VERSION 2.8)

# Project settings
if (PRJ_NAME)
  message(STATUS "Start CMake for Project " ${PRJ_NAME})
else()
  message(FATAL_ERROR "Please specify your project name using -D PRJ_NAME=yourName")
endif()
project(${PRJ_NAME})
set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_CXX_FLAGS "-Wall -std=c++0x")
set(CMAKE_BUILD_TYPE Debug)

# DBus Path
if (DBUS_PATH_LOCAL)
  message(STATUS "DBUS_PATH_LOCAL = " ${DBUS_PATH_LOCAL})
else()
  message(FATAL_ERROR "Please specify the path to your patched DBus library using -D DBUS_PATH_LOCAL=yourPath")
endif()

# CommonAPI
include(FindPkgConfig)
pkg_check_modules (COMMONAPI "CommonAPI >= 2.1")
pkg_check_modules (COMMONAPI_DBUS "CommonAPI-DBus >= 2.1")

# Source Files
set(PRJ_SRC_PATH src)
set(PRJ_SRC_GEN_PATH src-gen/commonapi/examples)

set(PRJ_NAME_CLIENT ${PROJECT_NAME}Client)
set(PRJ_NAME_SERVICE ${PROJECT_NAME}Service)

STRING(REGEX REPLACE "^e" "E" PRJ_DATA_IMPL ${PRJ_NAME})
FILE(GLOB PRJ_PROXY_GEN_SRCS ${PRJ_SRC_GEN_PATH}/*Proxy.cpp ${PRJ_SRC_GEN_PATH}/*Types.cpp ${PRJ_SRC_GEN_PATH}/${PRJ_DATA_IMPL}.cpp)
FILE(GLOB PRJ_STUB_GEN_SRCS ${PRJ_SRC_GEN_PATH}/*Stub*.cpp ${PRJ_SRC_GEN_PATH}/*Types.cpp ${PRJ_SRC_GEN_PATH}/${PRJ_DATA_IMPL}.cpp)
FILE(GLOB PRJ_STUB_IMPL_SRCS ${PRJ_SRC_PATH}/*Stub*.cpp)

set(PRJ_CLIENT_SRCS ${PRJ_SRC_PATH}/${PRJ_NAME_CLIENT}.cpp ${PRJ_PROXY_GEN_SRCS})
set(PRJ_SERVICE_SRCS ${PRJ_SRC_PATH}/${PRJ_NAME_SERVICE}.cpp ${PRJ_STUB_GEN_SRCS} ${PRJ_STUB_IMPL_SRCS})

# Paths
message(STATUS "DBUS_PATH_LOCAL = " ${DBUS_PATH_LOCAL})
message(STATUS "COMMONAPI_INCLUDEDIR = " ${COMMONAPI_INCLUDEDIR})
message(STATUS "COMMONAPI_DBUS_INCLUDEDIR = " ${COMMONAPI_DBUS_INCLUDEDIR})

include_directories(
    src-gen
    ${DBUS_PATH_LOCAL}
    ${COMMONAPI_INCLUDEDIR}
    ${COMMONAPI_DBUS_INCLUDEDIR}
)

link_directories(
    ${COMMONAPI_LIBDIR}
    ${COMMONAPI_DBUS_LIBDIR}
)

# Build Client
add_executable(${PRJ_NAME_CLIENT} ${PRJ_CLIENT_SRCS})
target_link_libraries(${PRJ_NAME_CLIENT} CommonAPI CommonAPI-DBus)

# Build service
add_executable(${PRJ_NAME_SERVICE} ${PRJ_SERVICE_SRCS})
target_link_libraries(${PRJ_NAME_SERVICE} CommonAPI CommonAPI-DBus)