# libglom Reference Manual

### 1.16.1

## description

libglom provides API to access Glom's XML-based Glom::Document structure. Applications may use it to load a .glom document and then call methods on the document to discover the connection details and the data structure, including:

- The list of tables
- The list of fields in each table
- The details of each field, such as field type, title, default value, formatting, etc.
- The relationships between tables.
- The layout of fields on list and details views.
- The layout of print layouts.
- The layout of reports.

libglom also contains utility functions, such as Glom::Utils::build_sql_select_with_where_clause(), to build the complicated SQL queries used by Glom to retrieve information from the database.

See http://git.gnome.org/browse/glom/tree/glom/libglom/example_document_load.cc for a small working example.

## Warning

libglom is not yet API stable, not properly documented, not thoroughly tested, and not yet really intended for serious use by applications other than Glom and Qlom.

## basics

Include the individual libglom headers. For instance:

     #include <libglom/document/document.h>

If your source file is `program.cc`, you can compile it with:

     g++ program.cc -o program `pkg-config --cflags --libs glom-1.16`

Alternatively, if using autoconf, use the following in `configure.ac:`

     PKG_CHECK_MODULES([DEPS], [glom-1.16])

Then use the generated `DEPS_CFLAGS` and `DEPS_LIBS` variables in the project `Makefile.am` files. For example:

     program_CPPFLAGS = $(DEPS_CFLAGS)
     program_LDADD = $(DEPS_LIBS)