XML Descriptor

# XML-Descriptor

The library descriptor is a simple XML-file that specifies version number, paths to header files and shared libraries and optionally some other information.

Table of Contents Primary Sections Optional Sections Examples

## Primary Sections

    <version>
        /* Version of the library */
    </version>

    <headers>
        /* The list of paths to header files or/and
           directories with header files, one per line */
    </headers>

    <libs>
        /* The list of paths to shared libraries or/and
           directories with shared libraries, one per line */
    </libs>

## Optional Sections

    <include_paths>
        /* The list of paths to be searched for header files
           needed for compiling of library headers, one per
           line. NOTE: If you define this section then the tool
           will not automatically detect include paths */
    </include_paths>

    <add_include_paths>
        /* The list of include paths that should be added
        to the automatically detected include paths, one per
        line */
    </add_include_paths>

    <skip_include_paths>
        /* The list of include paths that will be removed from
        the list of automatically generated include paths, one
        per line */
    </skip_include_paths>

    <gcc_options>
        /* Additional GCC options, one per line */
    </gcc_options>

    <include_preamble>
        /* The list of header files that should be included
        before other headers, one per line. For example, it
        is a tree.h for libxml2 and ft2build.h for freetype2
        library */
    </include_preamble>

    <defines>
        /* Add defines at the headers compiling stage, one per
        line:
            #define A B
            #define C D */
    </defines>

    <add_namespaces>
        /* The list of namespaces that should be added to the
        alanysis  if the tool cannot find them automatically,
        one per line */
    </add_namespaces>

    <skip_types>
        /* The list of data types, that
        should not be checked, one per line */
    </skip_types>

    <skip_symbols>
        /* The list of functions (mangled/symbol names in C++),
        that should not be checked, one per line */
    </skip_symbols>

    <skip_namespaces>
        /* The list of C++ namespaces, that
        should not be checked, one per line */
    </skip_namespaces>

    <skip_constants>
        /* The list of constants that should not be checked,
        one name per line */
    </skip_constants>

    <skip_headers>
        /* The list of header files and/or directories
        with header files that should not be checked, one per
        line */
    </skip_headers>

    <skip_libs>
        /* The list of shared libraries and/or directories
        with shared libraries that should not be checked, one
        per line */
    </skip_libs>

    <skip_including>
        /* The list of header files, that cannot be included
        directly (or non-self compiled ones), one per line */
    </skip_including>

    <search_headers>
        /* List of directories to be searched
        for header files to automatically
        generate include paths, one per line */
    </search_headers>

    <search_libs>
        /* List of directories to be searched
        for shared librariess to resolve
        dependencies, one per line */
    </search_libs>

    <tools>
        /* List of directories with tools used
        for analysis (GCC toolchain), one per line */
    </tools>

    <cross_prefix>
        /* GCC toolchain prefix.
        Examples:
            arm-linux-gnueabi
            arm-none-symbianelf */
    </cross_prefix>

## Examples

libssh:

    <version>
        0.3.4
    </version>

    <headers>
        /usr/local/libssh/0.3.4/include/
    </headers>

    <libs>
        /usr/local/libssh/0.3.4/lib/
    </libs>

atk:

    <version>
        1.28.0
    </version>

    <headers>
        /usr/local/atk-1.28.0/include/atk-1.0/atk/atk.h
    </headers>

    <libs>
        /usr/local/atk-1.28.0/lib/
    </libs>

    <include_paths>
        /usr/include/glib-2.0/
        /usr/lib/glib-2.0/include/
    </include_paths>

libxml2:

    <version>
        2.7.6
    </version>

    <headers>
        /usr/local/libxml2-2.7.6/include/
    </headers>

    <libs>
        /usr/local/libxml2-2.7.6/lib/libxml2.so.2.7.6
    </libs>

    <include_preamble>
        tree.h
    </include_preamble>

libX11:

    <version>
        1.3.2
    </version>

    <headers>
        /usr/local/libX11-1.3.2/include/
    </headers>

    <libs>
        /usr/local/libX11-1.3.2/lib/
    </libs>

    <include_preamble>
        Xlib.h
    </include_preamble>

BlackBerry 10 Native SDK:

    <version>
        10
    </version>

    <headers>
        /home/RIM/bbndk/target_10_0_9_1673/qnx6/usr/include/bb/
    </headers>

    <search_headers>
        /home/RIM/bbndk/target_10_0_9_1673/qnx6/usr/include/
    </search_headers>

    <libs>
        /home/RIM/bbndk/target_10_0_9_1673/qnx6/x86/usr/lib/
    </libs>

    <tools>
        /home/RIM/bbndk/host_10_0_9_404/linux/x86/usr/bin/
    </tools>

    <cross_prefix>
        i486-pc-nto-qnx8.0.0
    </cross_prefix>

libQt5Core:

    <version>
        5.5.0
    </version>

    <headers>
        /usr/local/Qt-5.5.0/include/QtCore
    </headers>

    <libs>
        /usr/local/Qt-5.5.0/lib/libQt5Core.so.5.5.0
    </libs>

    <include_paths>
        /usr/local/Qt-5.5.0/include/
    </include_paths>

    <skip_headers>
        /private/
        qt_windows.h
        qatomic_*
        *_impl.h
    </skip_headers>

    <gcc_options>
        -fvisibility=hidden
        -fvisibility-inlines-hidden
        -fPIC
        -Wall
        -W
        -D_REENTRANT
        -DQT_NO_CAST_FROM_ASCII
        -DQT_NO_CAST_TO_ASCII
        -DQT_NO_STL
        -DQT_SHARED
    </gcc_options>

libxslt:

    <version>
        1.1.22
    </version>

    <headers>
        /usr/local/libxslt-1.1.22/include/
    </headers>

    <libs>
        /usr/local/libxslt-1.1.22/lib/libxslt.so
        /usr/local/libxslt-1.1.22/lib/libexslt.so
    </libs>

    <include_paths>
        /usr/include/libxml2/
    </include_paths>

    <include_preamble>
        xsltInternals.h
    </include_preamble>

libxml++:

    <version>
        2.26.1
    </version>

    <headers>
        /usr/local/libxml++-2.26.1/include/
        /usr/local/libxml++-2.26.1/lib/libxml++-2.6/include/
    </headers>

    <libs>
        /usr/local/libxml++-2.26.1/lib/
    </libs>

    <include_paths>
        /usr/include/glib-2.0/
        /usr/lib/glib-2.0/include/
        /usr/include/glibmm-2.4/
        /usr/lib/glibmm-2.4/include/
    </include_paths>

pango:

    <version>
        1.26.0
    </version>

    <headers>
        /usr/local/pango-1.26.0/include/
    </headers>

    <libs>
        /usr/local/pango-1.26.0/lib/
    </libs>

    <include_paths>
        /usr/include/glib-2.0/
        /usr/lib/glib-2.0/include/
        /usr/include/cairo/
        /usr/include/freetype2/
        /usr/include/X11/
    </include_paths>

    <include_preamble>
        pango.h
    </include_preamble>

gtk+:

    <version>
        2.18.4
    </version>

    <headers>
        /usr/local/gtk+-2.18.4/include/gtk-2.0/gdk/gdk.h
        /usr/local/gtk+-2.18.4/include/gtk-2.0/gtk/gtk.h
        /usr/local/gtk+-2.18.4/include/gail-1.0/
        /usr/local/gtk+-2.18.4/include/gtk-unix-print-2.0/
    </headers>

    <libs>
        /usr/local/gtk+-2.18.4/lib/
    </libs>

    <include_paths>
        /usr/include/atk-1.0/
        /usr/include/glib-2.0/
        /usr/lib/glib-2.0/include/
        /usr/include/cairo/
        /usr/include/pango-1.0/
    </include_paths>

glib:

    <version>
        2.22.2
    </version>

    <headers>
        /usr/local/glib-2.22.2/include/glib-2.0/glib.h
        /usr/local/glib-2.22.2/include/glib-2.0/glib-object.h
        /usr/local/glib-2.22.2/include/glib-2.0/gmodule.h
    </headers>

    <libs>
        /usr/local/glib-2.22.2/lib/
    </libs>

    <include_paths>
        /usr/local/glib-2.22.2/lib/glib-2.0/include/
    </include_paths>

libsoup:

    <version>
        2.28.0
    </version>

    <headers>
        /usr/local/libsoup-2.28.0/include/
    </headers>

    <libs>
        /usr/local/libsoup-2.28.0/lib/
    </libs>

    <include_paths>
        /usr/include/glib-2.0/
        /usr/lib/glib-2.0/include/
    </include_paths>

allegro:

    <version>
        4.9.9.1
    </version>

    <headers>
        /usr/local/include/allegro5/allegro.h
    </headers>

    <libs>
        /usr/local/lib/liballegro-4.9.9.so
    </libs>

mathgl:

    <version>
        1.9.0.1
    </version>

    <headers>
        /usr/local/mathgl-1.9.0.1/include/
    </headers>

    <libs>
        /usr/local/mathgl-1.9.0.1/lib/
    </libs>

    <include_paths>
        /usr/local/gsl-1.9/include/
    </include_paths>

gsl:

    <version>
        1.9
    </version>

    <headers>
        /usr/local/gsl-1.9/include/
    </headers>

    <libs>
        /usr/local/gsl-1.9/lib/
    </libs>

    <include_preamble>
        stdlib.h
    </include_preamble>

libjpeg:

    <version>
        7
    </version>

    <headers>
        /usr/local/libjpeg-7/include/jpeglib.h
    </headers>

    <libs>
        /usr/local/libjpeg-7/lib/
    </libs>

    <include_preamble>
        stdio.h
    </include_preamble>