Skip to content

sogno-platform/libcimpp

libcimpp

libcimpp is a deserialiser library for C++ objects from XML/RDF documents based on the Common Information Model (CIM) standards (i.e. IEC61970/61968/62325) and CGMES for the energy sector. It is part of the CIM++ project. More on CIM++ can be found here.

Supported CIM / CGMES versions:

General information

limcimpp uses arabica as cross platform wrapper around one of the XML parsers listed in the dependencies (see below). It is recommended to use libcimpp as cmake module.

Dependencies

You need following software packages for libcimpp:

  • One of the following XML parsers:
    • libxml2 (usually chosen under Linux and often can be installed as a package of the used distribution)
    • Xerces
    • Microsoft XML Parser (this one is used per default when building with MS Visual Studio)
  • Build system:

Build instructions

UNIX / Linux / MacOS

After getting the Git repository, create a build subdirectory and change into it:

mkdir build
cd build

For building libcimpp with the default CIM version, type:

cmake ..
make -j 4

For building libcimpp with a certain CIM version (e.g. IEC61970_16v29a), type:

cmake .. -DUSE_CIM_VERSION=IEC61970_16v29a
make -j 4

All available CIM versions are listed in the CMakeLists.txt

Windows with MS Visual Studio

  1. After getting the Git repository, create a build subdirectory.
  2. Run the Windows CMake (GUI)
  3. Set the
  • source code directory, e.g.: C:/git/libcimpp
  • build directory, e.g.: C:/git/libcimpp/build
  1. Click on Configure and choose the Visual Studio project version, e.g.: Visual Studio 15 2017
  2. Click on Finish and wait while CMake is configuring the project.
  3. Click on Generate to generate the Visual Studio project files.
  4. Click on Open Project to open the project in Visual Studio.
  5. In Visual Studio's main menu choose Build -> Build Solution. This will build the libcimpp library.

Usage of the libcimpp library

For information on how to use the library please see the cmake based example in examples/cmake. Building the example is just like building the library itself using cmake. The make example is currently not supported due to the lack of an install target for arabica.