Library Descriptor

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

Contents

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>

Extra Sections (API Sanity Checker)

 <test_include_preamble>
     /* The list of header files that should be
        included in each test case before other
        headers, one per line */
 </test_include_preamble>
 
 <test_defines>
     /* Add defines to test cases */
 </test_defines>

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>
  • libQtCore
 <version>
     4.6.0
 </version>
 
 <headers>
     /usr/local/Qt-4.6.0/include/QtCore/QtCore
 </headers>
 
 <libs>
     /usr/local/Qt-4.6.0/lib/libQtCore.so.4
 </libs>
 
 <include_paths>
     /usr/local/Qt-4.6.0/include/
 </include_paths>
 
 <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
    -DQT3_SUPPORT
 </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>