README 2 KB
Newer Older
Marc-André Lureau's avatar
Marc-André Lureau committed
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
=====
libgd
=====

Introduction
============

libgd is a library used by various GNOME 3 styled applications.
However, it is not a typical library, since it doesn't guarantee
API/ABI stability, nor does it has official releases tarballs. Only
the files actually used by your project will be shipped with its
tarball. Only the necessary dependencies will be checked during
configure time and used at runtime.

Each application can configure libgd depending on its needs and will
be able to either link dynamically (privately) or statically link with
a specific development version.

GObject Introspection based bindings generation such as Javascript or
Vala are also supported.

libgd originates from the GNOME Documents project (written by Cosimo
Cecchi), which was one of the first application to follow the novel
GNOME 3 application design.

Usage
=====

In order to use libgd, an application using autotools needs to:

1. from the top-level project directory, add the submodule:
    - git submodule add git://git.gnome.org/libgd

2. in autogen.sh, it is recommended to add before autoreconf call:
    - git submodule update --init --recursive

3. in top-level Makefile.am:
    - add -I libgd to ACLOCAL_AMFLAGS
    - add libgd to SUBDIRS, before the project src directory

4. in project configure.ac:
    - add LIBGD_INIT([list-of-options]) after your project
      dependencies checks
    - add libgd/Makefile to AC_CONFIG_FILES

5. from your program Makefile.am, you may now for example:
    - link with $(top_builddir)/libgd/libgd.la, and include
      <libgd/gd.h> (adjust your AM_CPPFLAGS as necessary)

LIBGD_INIT options
==================

- gtk-hacks

- main-icon-view

- main-toolbar

- margin-container

Marc-André Lureau's avatar
Marc-André Lureau committed
61
62
- static

Marc-André Lureau's avatar
Marc-André Lureau committed
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
- tagged-entry

- vapi

- gir

How to modify or add an API?
============================


TODO
====

- add translation support
- add some form of build test
- document: options, modification process
- eventually add documentation generation
Marc-André Lureau's avatar
Marc-André Lureau committed
80
81
- some licensing check
- more modularity (not all in libgd.m4/Makefile.am)