Project

General

Profile

C++ Projektvorlage » History » Version 3

Daniel Giritzer, 12/01/2017 05:45 PM

1 2 Daniel Giritzer
h1. [Archiv] Generische und flexible Projektvorlage für SDP3
2 1 Daniel Giritzer
3 1 Daniel Giritzer
*Dieser Eintrag betrifft nur die Alte C++ Projektvorlage für Linux.*
4 2 Daniel Giritzer
https://projects.nwrk.biz/attachments/download/1/Cpp_Template.tar.gz
5 1 Daniel Giritzer
6 1 Daniel Giritzer
7 2 Daniel Giritzer
8 1 Daniel Giritzer
h2. Abhängigkeiten
9 1 Daniel Giritzer
10 2 Daniel Giritzer
Um diese Vorlage verwenden zu können werden folgende Programme vorrausgesetzt 
11 2 Daniel Giritzer
(ein großteil ist normalerweiße standardmäßig installiert):
12 1 Daniel Giritzer
13 2 Daniel Giritzer
perl, texlive-full, doxygen, graphviz, tcl, whiptail, liblib-abs-perl, libmoose-perl,
14 2 Daniel Giritzer
tk, libany-moose-perl,libnamespace-autoclean-perl, libperl6-junction-perl,
15 2 Daniel Giritzer
libmoosex-role-parameterized-perl, libhash-fieldhash-perl, libcapture-tiny-perl, 
16 2 Daniel Giritzer
libc-bin, libdata-section-simple-perl, libmoo-perl, libipc-run3-perl, libwant-perl, 
17 1 Daniel Giritzer
libtype-tiny-perl, exuberant-ctags, dia2code
18 1 Daniel Giritzer
19 2 Daniel Giritzer
Diese Abhängigkeiten können mit dem generate script auf einer Debian basierenden 
20 2 Daniel Giritzer
GNU/Linux Distribution (apt) wie folgt Installiert werden:
21 2 Daniel Giritzer
> $ ./generate install
22 1 Daniel Giritzer
23 2 Daniel Giritzer
Diese weiteren Programme werden außerdem empfohlen: dia, codeblocks
24 1 Daniel Giritzer
25 1 Daniel Giritzer
h2. Deckblatt
26 1 Daniel Giritzer
27 2 Daniel Giritzer
Die Angabe muss sich im Unterordner 'Dateien/doc' befinden und in 'Angabe.pdf' 
28 2 Daniel Giritzer
umbenannt werden. Das Angabeblatt wird automatisch beim erstellen der Latex Doku
29 2 Daniel Giritzer
mit den in der Abgabe.tex Datei enthaltenen Eingaben ausgefüllt. Falls
30 2 Daniel Giritzer
nötig können die Koordinaten der Eingaben in der 'Dateien/config/docsettings.tex' Datei 
31 2 Daniel Giritzer
angepasst werden.
32 1 Daniel Giritzer
33 1 Daniel Giritzer
h2. Quellcode
34 1 Daniel Giritzer
35 1 Daniel Giritzer
Der Quellcode des SDP Projekts gehört in den Unterordner
36 1 Daniel Giritzer
'Dateien/src'. In disem Unterordner befindet sich auch ein
37 1 Daniel Giritzer
Makefile welches automatisch alle *.cpp Dateien kompiliert
38 1 Daniel Giritzer
und linkt. (mit und ohne Debugging Informationen). Genauere 
39 1 Daniel Giritzer
Infos zur Handhabung dieses Makefiles kann man aus den darin
40 1 Daniel Giritzer
enthaltenen Kommentaren entnehmen. Alle Source und Header
41 1 Daniel Giritzer
Dateien in diesem Ordner werden automatisch in die Latex 
42 1 Daniel Giritzer
Doku eingebunden.
43 1 Daniel Giritzer
44 1 Daniel Giritzer
h2. Dokumentation
45 1 Daniel Giritzer
46 1 Daniel Giritzer
Generell sollte der Sourcecode mit DoxyGen Kommentarblöcken 
47 1 Daniel Giritzer
kommentiert werden. Systemdokumentation, Organisatorische 
48 1 Daniel Giritzer
Informationen, Erläuterungen zum Testtreiber, und die Ausgabe
49 1 Daniel Giritzer
des Testtreibers sollen in die dementsprechenden Dateien im
50 1 Daniel Giritzer
'Dateien/doc' Verzeichnis eingetragen werden. Allgemeine Infos 
51 1 Daniel Giritzer
zum Projekt sollen in der 'Abgabe.tex' Datei im Wurzelverzeichnis
52 1 Daniel Giritzer
ergänzt werden.
53 1 Daniel Giritzer
54 1 Daniel Giritzer
h2. UML Diagramm
55 1 Daniel Giritzer
56 1 Daniel Giritzer
Diese Projektvorlage arbeitet mit zwei Diagrammformaten:
57 1 Daniel Giritzer
- .dot Graphviz Diagramme
58 1 Daniel Giritzer
- .dia Dia Diagramme
59 1 Daniel Giritzer
60 1 Daniel Giritzer
Das UML Diagramm muss sich im Unterordner 'Dateien/uml' befinden.
61 1 Daniel Giritzer
Für die Abgabe muss es außerdem im PNG Format gespeichert sein 
62 1 Daniel Giritzer
und den Dateinamen 'UML.png' besitzen. Standardmäßig 
63 1 Daniel Giritzer
('$ ./generate all') erzeugt das generate Script aus dem 
64 1 Daniel Giritzer
Quellcode automatisch ein Graphviz UML Diagramm und 
65 1 Daniel Giritzer
generiert daraus ein Bild im PNG Format nach 'Dateien/uml/UML.png' 
66 1 Daniel Giritzer
(ACHTUNG: existiert diese Datei bereits wird sie überschrieben!). 
67 1 Daniel Giritzer
Dieses Diagramm ist aber in der Regel nicht Fehlerfrei, man kann
68 1 Daniel Giritzer
es aber mit 'dotty' editieren. Es wird auch ein mit DIA
69 1 Daniel Giritzer
editierbares Diagramm erzeugt. Generell wird jedoch empfohlen
70 1 Daniel Giritzer
selbst ein DIA UML Diagramm zu erstellen, weil man sich daraus
71 1 Daniel Giritzer
schon ein Codegerüst gnerieren lassen kann ('$ ./generate src'). 
72 1 Daniel Giritzer
Dazu muss das DIA Diagramm unter 'Dateien/uml/UML.dia'
73 1 Daniel Giritzer
gespeichert sein. Das Codegerüst wird nach 'Dateien/src/generated_from_uml'
74 1 Daniel Giritzer
generiert. Um ein Handout mit einem selbstgezeichneten UML Diagramm 
75 1 Daniel Giritzer
zu erstellen muss man dieses nach 'Dateien/uml/UML.png' kopieren
76 1 Daniel Giritzer
und die Abgabe mittels  '$ ./generate handout' zu erzeugen.
77 1 Daniel Giritzer
78 1 Daniel Giritzer
h2. Log Dateien
79 1 Daniel Giritzer
80 3 Daniel Giritzer
Sollte irgendetwas nicht Funktionieren, kann man in den Log Dateien unter 'Dateien/log' nach Hinweisen 
81 3 Daniel Giritzer
suchen. Die Hauptlogging Datei mit den wahrscheindlich wichtigeren Infos ist hierbei 
82 3 Daniel Giritzer
'Dateien/log/general.log'.
83 1 Daniel Giritzer
84 1 Daniel Giritzer
h2. Design anpassen
85 1 Daniel Giritzer
86 1 Daniel Giritzer
Das Design der Vorlage kann mit den '*.tex' Dateien im Verzeichnis
87 1 Daniel Giritzer
'Dateien/config' angepasst werden. Genaueres kann aus den Kommentaren
88 1 Daniel Giritzer
dieser Dateien entnommen werden. 
89 1 Daniel Giritzer
90 3 Daniel Giritzer
> Beschreibung der Dateien:
91 3 Daniel Giritzer
> packages.tex		- Beinhaltet alle verwendeten Pakete.
92 3 Daniel Giritzer
> setup_doxygen.tex 	- Beinhaltet alle von DoxyGen benötigten 
93 3 Daniel Giritzer
> 			  Pakete, und für DoxyGen extra definierte 
94 3 Daniel Giritzer
> 			  Befehle (aus refman.tex übernommen).
95 3 Daniel Giritzer
> codesettings.tex	- Beinhaltet Einstellungen für das Syntax
96 3 Daniel Giritzer
> 			  Highlighting der Quellcode Dateien.
97 3 Daniel Giritzer
> docsettings.tex		- Beinhaltet generelle Dokumenteinstellungen (
98 3 Daniel Giritzer
> 			  Kopf- und Fußzeile, Inhaltsverzeichnis,
99 3 Daniel Giritzer
> 			  Deckblatt, ...).
100 1 Daniel Giritzer
101 1 Daniel Giritzer
h2. Handhabung des generate Scripts
102 1 Daniel Giritzer
103 3 Daniel Giritzer
Das Script MUSS immer im Hauptverzeichnis mit der Verknüpfung 
104 3 Daniel Giritzer
im Hauptverzeichnis ausgeführt werden.
105 1 Daniel Giritzer
106 1 Daniel Giritzer
107 1 Daniel Giritzer
/SDP/hauptverzeichnis $ ./generate [option]
108 3 Daniel Giritzer
> Verfügbare Optionen:
109 3 Daniel Giritzer
> all     - generiert komplette Abgabe (incl. UML.png + UML.dia)
110 3 Daniel Giritzer
> handout - generiert komplette Abgabe (ohne UML.png + UML.dia)
111 3 Daniel Giritzer
> uml     - generiert nur UML.png und UML.dia
112 3 Daniel Giritzer
> src	- generiert ein Codegerüst aus einem bestehenden UML.dia 
113 3 Daniel Giritzer
> 	  Diagramm
114 3 Daniel Giritzer
> pdf     - generiert nur Abgabe.pdf
115 3 Daniel Giritzer
> clean   - löscht alle temporär angelegte Dateien
116 3 Daniel Giritzer
> install - installiert benötigte Paket
117 1 Daniel Giritzer
118 1 Daniel Giritzer
h2. Zusammenfassung
119 1 Daniel Giritzer
120 3 Daniel Giritzer
Damit dass "generate" Script verlässlich eine Abgabe generiert muss
121 1 Daniel Giritzer
folgendes gegeben sein:
122 3 Daniel Giritzer
- alle Abhängigkeiten Installiert ($ ./generate install)
123 1 Daniel Giritzer
- Angabe.pdf im Dateien/doc Ordner
124 1 Daniel Giritzer
- Quellcode mit DoxyGen Kommentaren im Dateien/src Ordner
125 3 Daniel Giritzer
- allgemeine Infos in der Abgabe.tex ausgefüllt
126 1 Daniel Giritzer
- ausgabe des Testtreibers in Dateien/doc/Output_Testtreiber.tex
127 1 Daniel Giritzer
- Resultat Testtreiber in Dateien/doc/Erlauterung_Test.tex beschrieben
128 1 Daniel Giritzer
- Aufgabenverteilung in Dateien/doc/Organisatorisches.tex eingetragen
129 1 Daniel Giritzer
- Systemspezifikation in Dateien/doc/Systemspezifikation.tex beschrieben
130 1 Daniel Giritzer
- UML Diagramm als Dateien/uml/UML.png gespeichert
131 1 Daniel Giritzer
132 3 Daniel Giritzer
Bleibt das generate script 'hängen' fehlt meist eine der oben genannten
133 1 Daniel Giritzer
Dateien.
134 1 Daniel Giritzer
135 1 Daniel Giritzer
(C) 2016 Daniel Giritzer
136 1 Daniel Giritzer
daniel@giritzer.eu
137 1 Daniel Giritzer
FH-Hagenberg, HSD