Show last authors
1 = Prom - Project Management in KIELER =
2
3 **Topics**
4
5
6
7 {{toc minLevel="2"/}}
8
9 ----
10
11 == Overview ==
12
13 The KIELER Compiler (KiCo) can generate different code targets from models. For example it is possible to generate C and Java code from an SCT file. As a result KIELER has to integrate with existing development tools and practices for the C and Java world. In the context of embedded systems, the target device also varies heavily.
14
15 Therefore the KIELER Project Management (Prom) has been developed. It eases the creation, compilation and deployment of projects, when using models that can be compiled via KiCo (e.g. SCCharts, Esterel). Furthermore it eases the creation of wrapper code, which is used to initialize and run the model. To do so, there are mainly three components: An Eclipse //Launch Configuration//, so called //Environments//, and //Project Wizards,// which will be introduces in the following.
16
17 ----
18
19 == The KiCo Launch Configuration ==
20
21 Prom provides a launch configuration (launch config) to
22
23 1. compile code from models via KiCo
24 1. at the same time, generate wrapper code for these model files
25 1. afterwards, execute arbitrary shell commands sequentially, if the KiCo compilation and wrapper code generation finished successfully
26
27 The shell commands are typically used to further compile the KiCo and wrapper code output and afterwards deploy the result to the target platform.
28
29 KiCo launch configurations work per project basis, thus every project has to create its own launch config. This is done automatically when performing //Right Click > Run As > KiCo Compilation //(% style="color: rgb(0,51,102);" %)on a model file.(%%) (Screenshot)
30
31 The **Run As** command will search for a KiCo launch config for the project. If there is such a config, the selected file is only added to the list of model files which should be compiled. If there is none, a launch config is created by using the main file and environment the project has been created with. If the main file and environment information could not be found, dialogs will query it from the user.
32
33 The **main file** of the launch config is used to set several file path variables, which can be used in several fields of the configuration, notably the shell commands to be executed, and wrapper code input. The variables that are set are
34
35 * //main_name// : The file name, including its file extension (e.g. //MyModel.sct//)
36 * //main_path// : The project relative path (e.g. //src/MyModel.sct//)
37 * //main_loc// : The absolute file system path (e.g. ///home/me/workspace/MyProject/src/MyModel.sct//)
38 * //main_name_no_ext// : The file name without its file extension (e.g. //MyModel//)
39
40 Further, similar variables for the compiled main path are set, that is, the main file in the directory of kieler generated files (see below)
41
42 * //compiled_main_name// : The file name, including its file extension (e.g. //MyModel.sct//)
43 * //compiled_//main_path : The project relative path (e.g. //kieler-gen/MyModel.sct//)
44 * //compiled_//main_loc : The absolute file system path (e.g. ///home/me/workspace/MyProject/kieler-gen/MyModel.sct//)
45 * //compiled_//main_name_no_ext : The file name without its file extension (e.g. //MyModel//)
46
47 //**Note:**// The variables are created in the first KiCo launch. So if you want to select them in a variable selection dialog of Eclipse, you must have started at least one KiCo launch configuration.
48
49 === Launch Groups ===
50
51 == Prom Environments ==
52
53 Environments are used to provide default settings for project creation and launch. They are configured in the **preferences** (Window > Preferences > KIELER > Environments).
54
55 An Environment consists of
56
57 1. a unique **name**, that does not contain a comma
58 1. a **related project wizard**
59 1. information about a **main file** for the project
60 1. information about the **target code** KiCo should produce from models
61 1. information for **wrapper code generation**
62 1. a list of **shell commands** which should be run as part of a project launch
63
64 Besides the name, all of these are optional, but can improve the workflow.
65
66 The related project wizard is run as part of the Prom project wizard and takes care of the actual project creation.
67
68 A main file typically contains the entry point of the program on the target environment. Its wrapper code initializes and runs the model and sets inputs and outputs to the physical components of the target device. To ease the project setup and because wrapper code for a specific target platform is often similar, it is possible to define default content for the main file. Therefore the field **main file origin** can contain an absolute file path to a file with the default contents of a newly created main file for this Environment. Furthermore predefined wrapper code snippets can be injected as part of a project launch, which is described below.
69
70 The desired programming language of KiCo generated code, can be set for an Environment. Further one can define the file extension (e.g. '.java' for Java files) for that language.
71
72 To generate wrapper code from a model one can define an input template and a directory with files that contain wrapper code snippets. The wrapper code origin is used to initialize the wrapper code snippet directory of a newly created project.
73
74 Last but not least, a list of shell commands can be defined, which will be executed sequentially when the code generation from KiCo and wrapper code generation both finished successfully. These commands are typically used to further compile the output and deploy the result to the target devide. As with names of Environments, the names of shell commands have to be unique and must not contain a comma.
75
76 === Paths for initial content ===
77
78 == Project Wizards with Prom ==
79
80 Todo
81
82 == Wrapper Code Generation ==
83
84 Todo
85
86 == Automatically generated files ==
87
88 Todo