summaryrefslogtreecommitdiff
path: root/README
blob: 52df694a880e5beec3877b23e7fdb3fa8c149396 (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
GENIVI_CommonAPI-D-Bus
======================
:Author: Juergen Gehring - juergen.gehring@bmw.de, Manfred Bathelt - manfred.bathelt@bmw.de
:doctitle: GENIVI_CommonAPI-D-Bus

Copyright
---------
Copyright (C) 2013, GENIVI Alliance, Inc.
Copyright (C) 2013, BMW AG

This file is part of GENIVI Project IPC Common API.
 
Contributions are licensed to the GENIVI Alliance under one or more
Contribution License Agreements or MPL 2.0 .
 
(C) Copyright
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/.
 
For further information see https://collab.genivi.org/wiki/display/genivi/SysInfraEGCommonIDLCommonAPIGuide

== License
This project is licensed under MPL 2.0

Contribution is done under GENIVI CLA or MPL2.0. 

== Version
The current version can be taken from the git.

== Common API Overview

Common API and its mechanism specific bindings (e.g. Common API D-Bus) provide a set of libraries and tools to work with 
RPC communication in a way independent of wich mechanism is used. It consist currently consists of four subprojects:
----
CommonAPI - This is the base C++ library, which provides the application interface for users and can 
            load runtime bindings such as dbus. 
CommonAPI-Tools - The eclipse based tools for CommonAPI. This is essentially the code generator for 
                  Franca -> Common API C++ code.
                  (This is the current package.) 
CommonAPI-D-Bus - This is the D-Bus binding C++ library, which provides the necesary code to communicate 
                  over D-Bus. This is invisible to the application code, and simply needs to be linked against.
CommonAPI-D-Bus-Tools - The eclipse based tools for CommonAPI D-Bus. This is the code generator for 
                        Franca -> Common API D-Bus C++ code.
----
== Usage Instructions

The simplest way to use the CommonAPI Tools is to add the update site available on the GENIVI project servers to you Eclipse. 
This is available under:

Help->Install New Software->Add Button

Enter the following URL: http://docs.projects.genivi.org/yamaica-update-site/CommonAPI/updatesite/ and confirm. 

This provides CommonAPI, CommonAPI-D-Bus and all dependencies. 

Then select the newly added site in the site selection dropdown box, and in the Software selection window, 
select the entire "GENIVI Common API" Tree.   

After the software has been installed in Eclipse you can right-click on any .fidl file and generate C++ code for CommonAPI D-Bus 
by selecting the "CommonAPI->Generate Common API Code" option.

== Build Instructions

These are Eclipse Plug-In projects which require Xtext2 and Franca as dependencies within Eclipse. 

To build first import the three projects
----
org.genivi.commonapi.core
org.genivi.commonapi.core.ui
org.genivi.commonapi.core.feature
----

in to Eclipse. Then simply build the workspace. Then right-click on the .feature project and select "Run as Eclipse Application" to launch 
the built projects.

The projects
----
org.genivi.commonapi.core.ui.validator
org.genivi.commonapi.core.ui.validator.feature
----
which can be built in the same way provide a validator which automatically checks franca files for issues which would cause problems in 
C++ generation or compilation.

The project 
----
org.genivi.commonapi.core.cli
----
which should be exported as a runnable JAR provides a command line version of the generators. This should be called as:
----
java -jar generator.jar [options] file [file...]
                            Valid Options are:
                            -dbus -> to generate files with the FrancaDBUSGenerator
                            -dest path/to/output/folder -> the generated files will be saved at this Location
                            -pref path/to/header/file -> here you can set the text which will be placed as a comment
                            on each generated file (for example your license)
----

== Working on the code & contribution

.First get the code from the git:
        git clone 

.Get an overview of all branches:
        git branch

.Switch to the branch you want to work on (master is the feature branch) and verify that it has switched (* changed)
        git checkout <your branch>
        git branch

.Best practice is to create a local branch based on the current branch:
        git branch working_branch

Start working, best practice is to commit smaller, compilable pieces during the development process that makes it easier to handle later on.

.If you want to commit you changes, send them to the author, you can create a patch like this:
        git format-patch working_branch <your branch>

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.

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