Solved circular dependencies between DBusConnection and
[profile/ivi/common-api-dbus-runtime.git] / README
1 GENIVI_CommonAPI-D-Bus
2 ======================
3 :Author: Juergen Gehring - juergen.gehring@bmw.de, Manfred Bathelt - manfred.bathelt@bmw.de
4 :doctitle: GENIVI_CommonAPI-D-Bus
5
6 Copyright
7 ---------
8 Copyright (C) 2013, GENIVI Alliance, Inc.
9 Copyright (C) 2013, BMW AG
10
11 This file is part of GENIVI Project IPC Common API.
12  
13 Contributions are licensed to the GENIVI Alliance under one or more
14 Contribution License Agreements or MPL 2.0 .
15  
16 (C) Copyright
17 This Source Code Form is subject to the terms of the
18 Mozilla Public License, v. 2.0. If a  copy of the MPL was not distributed with
19 this file, You can obtain one at http://mozilla.org/MPL/2.0/.
20  
21 For further information see https://collab.genivi.org/wiki/display/genivi/SysInfraEGCommonIDLCommonAPIGuide
22
23 == License
24 This project is licensed under MPL 2.0
25
26 Contribution is done under GENIVI CLA or MPL2.0. 
27
28 == Version
29 The current version can be taken from the git.
30
31 == Common API Overview
32
33 Common API and its mechanism specific bindings (e.g. Common API D-Bus) provide a set of libraries and tools to work with 
34 RPC communication in a way independent of wich mechanism is used. It consist currently consists of four subprojects:
35 ----
36 CommonAPI - This is the base C++ library, which provides the application interface for users and can 
37             load runtime bindings such as dbus. 
38 CommonAPI-Tools - The eclipse based tools for CommonAPI. This is essentially the code generator for 
39                   Franca -> Common API C++ code. 
40 CommonAPI-D-Bus - This is the D-Bus binding C++ library, which provides the necesary code to communicate 
41                   over D-Bus. This is invisible to the application code, and simply needs to be linked against.
42                   (This is the current package.) 
43 CommonAPI-D-Bus-Tools - The eclipse based tools for CommonAPI D-Bus. This is the code generator for 
44                         Franca -> Common API D-Bus C++ code.
45 ----
46 == Build Instructions
47
48 === Requirements
49
50 To build this package the CommonAPI library and a version of libdbus patched with the marshaling patch must be available through PkgConfig.
51
52
53 == Build Instructions
54
55
56 To build this package CommonAPI and a version of libdbus patched with the marshaling patch must be available.
57
58 Instructions for making a patched version of libdbus available in /usr/local:
59 ----
60 # wget http://dbus.freedesktop.org/releases/dbus/dbus-1.4.16.tar.gz
61
62 # tar -xzf dbus-1.4.16.tar.gz
63
64 # cd dbus-1.4.16
65
66 # patch -p1 < /path/to/dbus-DBusMessage-add-support-for-custom-marshaling.patch
67
68 # ./configure --prefix=/usr/local
69
70 # make -C dbus 
71
72 # sudo make -C dbus install
73 # sudo make install-pkgconfigDATA
74 ----
75 The path to CommonAPI and patched libdbus pkgconfig files must be added to the PKG_CONFIG_PATH for the entire build process.
76
77 For example, if CommonAPI and patched dbus are available in /usr/local, set the PKG_CONFIG_PATH variable as follows:
78 ----
79 # export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" 
80 ----
81
82 === Instructions
83 Use autotools to build this package withthe above requirements available through Pkgconfig :
84 ----
85 # autoreconf -i
86 # ./configure
87 # make
88 # sudo make install (or alternative install process, eg. checkinstall on debian-based distributions, such as Ubuntu)
89 ----
90 If the environment variable GTEST_CONFIG is set to the path of the gtest-config script in a Gtest tree test will also be built.
91
92 == Working on the code & contribution
93
94 .First get the code from the git:
95         git clone 
96
97 .Get an overview of all branches:
98         git branch
99
100 .Switch to the branch you want to work on (master is the feature branch) and verify that it has switched (* changed)
101         git checkout <your branch>
102         git branch
103
104 .Best practice is to create a local branch based on the current branch:
105         git branch working_branch
106
107 Start working, best practice is to commit smaller, compilable pieces during the development process that makes it easier to handle later on.
108
109 .If you want to commit you changes, send them to the author, you can create a patch like this:
110         git format-patch working_branch <your branch>
111
112 This creates a set of patches that are published via the mailing list.The patches will be discussed and then merged & uploaded on the git by the maintainer.
113
114 Patches can be accepted either under GENIVI Cla or MPL 2.0 (see section License). Please be sure that the signed-off-by is set correctly. For more, check out http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html