-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathREADME
115 lines (83 loc) · 2.97 KB
/
README
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
// -*- mode: adoc -*-
GroundTruthAligner (GTA)
========================
:titulo: GroundTruthAligner (GTA)
:author: Antonio-M. Corbí Bellot
:email: [email protected]
:copyright: {author}, DLSI, UA.
:backend: slidy
:max-width: 120em
:data-uri:
:icons:
:toc:
:lang: en
:encoding: utf-8
:toc-title: Table of contents
:source-highlighter: pygments
:src_numbered: numbered
== Technologies employed
- Programming language: http://dlang.org[D], compiler:
http://dlang.org/download.html[DMD]
- GUI toolkit: gtk.org, the adaptation taken from
http://gtkd.org[GtkD]
- The previous tools ara packaged for Debian-like operating systems in
http://d-apt.sourceforge.net[d-apt].
- Configuration is done via Autotools
(http://www.gnu.org/software/autoconf/manual/autoconf.html[autoconf]
+ https://www.gnu.org/software/automake/[automake])
== Code structure:
The code uses the
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller[MVC]
software pattern.
This MVC implementation is based in:
- a class (*Model*)
[source,java]
--------------
public class Model {
public this () {
m_vl = [];
}
...
--------------
- and an interface (*View*):
[source, java]
--------------
public interface View {
....
}
--------------
== Code organization:
The code lies under the `src` subdir.
Under that folder, the code is organized in `packages` (a *D* term
that represents a bunch of files under the same directory).
The `packages` currently conforming the source are:
- *app* : The class that represents the Application.
- *config*: Some constants detected at configure time.
- *main*: The main program.
- *mode*: The representation of the data of our aligner. It holds
a model for the bitmap image and for the ground truth text and
other meta-data.
- *mvc*: Base class for the _models_ and interface for the
_views_.
- *ui*: Holds the UI created with http://glade.gnome.org[Glade].
- Configuration is done via Autotools
(http://www.gnu.org/software/autoconf/manual/autoconf.html[autoconf]
+ https://www.gnu.org/software/automake/[automake])
- *utils*: Some algorithms that maybe util sometime...somewhere.
- *view*: Has the definition of the class MainWindow that acts as
the UI of our app.
== How to configure and compile:
After installing the tools you can create the configure script the
first time executing `autogen.sh`:
[source, bash]
---------
./autogen.sh [configure options]
------------
After that, `configure` is generated and executed automatically, later
you can run `configure` alone if you want.
The `configure` script currently understands the option
*`--enable-debug-mode`*.
Now you can launch the compilation with `make` or `make -jN`, where
*N* is the number of cpus or cores that your computer has, so you can
speed up your compilation. The resulting binary is located in
`./src/main/` and it's called `d-images`.