#### Beyond Linux® From Scratch (systemd Edition) - Version r13.0-491

### Chapter 9. General Libraries

- Prev

  libgusb-0.4.9

- Next

  libidn-1.43

- Up
- Home

# libical-3.0.20

## Introduction to libical

The libical package contains an implementation of the iCalendar protocols and data formats.

### Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

### Package Information

- Download (HTTP): https://github.com/libical/libical/releases/download/v3.0.20/libical-3.0.20.tar.gz

- Download MD5 sum: 539a8a293d344e7aa8ccf3740494a46d

- Download size: 952 KB

- Estimated disk space required: 29 MB (with tests)

- Estimated build time: 0.2 SBU (using parallelism=4; with tests)

### libical Dependencies

#### Required

CMake-4.3.2

#### Recommended

GLib-2.88.0 (with GObject Introspection), libxml2-2.15.3, and Vala-0.56.19 (both required for GNOME)

#### Optional

Doxygen-1.17.0 (for the API documentation), Graphviz-14.1.5 (for the API documentation), GTK-Doc-1.36.1 (for the API documentation), ICU-78.3, PyGObject-3.56.2 (for some tests), and Berkeley DB (deprecated)

## Installation of libical

Install libical by running the following commands:

    mkdir build &&
    cd    build &&

    cmake -D CMAKE_INSTALL_PREFIX=/usr  \
          -D CMAKE_BUILD_TYPE=Release   \
          -D SHARED_ONLY=yes            \
          -D ICAL_BUILD_DOCS=false      \
          -D GOBJECT_INTROSPECTION=true \
          -D ICAL_GLIB_VAPI=true        \
          .. &&
    make -j1

If you have Doxygen-1.17.0, Graphviz-14.1.5, and GTK-Doc-1.36.1 installed and wish to build the API documentation, you should remove the `-D ICAL_BUILD_DOCS=false` switch and issue:

    make docs

To test the results, issue: make test.

Now, as the `root` user:

    make install

If you have built the API documentation, install by issuing, as `root` user:

    install -vdm755 /usr/share/doc/libical-3.0.20/html &&
    cp -vr apidocs/html/* /usr/share/doc/libical-3.0.20/html

## Command Explanations

`-D CMAKE_BUILD_TYPE=Release`: This switch is used to apply higher level of the compiler optimizations.

`-D SHARED_ONLY=yes`: This switch is used in order to only build the shared libraries.

`-D ICAL_BUILD_DOCS=false`: This switch prevents building the GTK documentation. Remove if you want to build the documentation.

`-D GOBJECT_INTROSPECTION=true`: This switch is used to generate GObject metadata bindings.

`-D ICAL_GLIB_VAPI=true`: This switch is used in order to build bindings for Vala-0.56.19.

`-D USE_BUILTIN_TZDATA=yes`: This switch is used in order to build using your own timezone data.

## Contents

Installed Programs: None
Installed Libraries: libical_cxx.so, libical.so, libical-glib.so, libicalss_cxx.so, libicalss.so, and libicalvcal.so
Installed Directory: /usr/include/libical, /usr/include/libical-glib, /usr/lib/cmake/LibIcal, /usr/libexec/libical, /usr/share/gtk-doc/html/libical-glib (optional), and /usr/share/doc/libical-3.0.20/html

### Short Descriptions

`libical.so` | contains the libical API functions
`libical_cxx.so` | contains the libical C++ bindings
`libical-glib.so` | contains the libical glib bindings
`libicalss.so` | is a library that allows you to store iCal component data to disk in a variety of ways
`libicalss_cxx.so` | contains the libicalss C++ bindings
`libicalvcal.so` | is a vCard/vCalendar C interface

- Prev

  libgusb-0.4.9

- Next

  libidn-1.43

- Up
- Home