ADTF Plugin Description Generator

This guide covers how to integrate your code into ADTF. After reading this guide, you will know:

What is the ADTF Plugin Description?

The Plugin Description Generator (PDGen) extracts meta information from an ADTF plugin and stores it in an XML file. Tools such as the ADTF Configuration Editor use the extracted information to provide plugin related functionality without having to load the actual plugin.

To extract information such as any provided and/or required interfaces the PDGen has to actually load the plugin DLL and instantiate the contained ADTF Services and Filters. In some cases it may be necessary to include information which is not provided by the plugin at runtime. To achieve this you can provide an additional plugin description file to be merged with the generated file.

The Plugin Description Generator (PDGen) is located in <ADTF_DIR>/bin/ and <ADTF_DIR>/bin/debug respectively.

For a more technical explanation please follow this link

Extension points

To connect your code with ADTF you can choose from one of these interfaces:

Turn your code into a plugin

We recommend to integrate the plugin description generation into your toolchain as post-build step using the provided CMake support as described and demonstrated in all our programming examples and tutorial here as well. There is no need to use the ADTF Plugin Description Generator as command line tool standalone. See also Best Practice Tooling. All additional information in this guide and listed command line options are just to provide you a deeper understanding.

All begins with a plugin. The SDK provides the ADTF_PLUGIN macro to connect your code with the ADTF world. The macro requires two parameters. The first parameter is the name of your new plugin. The second parameter is the name of the new class representing the plugin. The macro is used like this:

After compiling your project, there will be a file called *.adtfplugin that represents your code as a shared library which ADTF can load at runtime. To make your new plugin available inside the Configuration Editor, you need an XML based description, which the Plugindescription Generator can create for you: And this is what a *.plugindescription looks like:

The content of a plugindescription

CMake Support

This is the recommended way to call the ADTF Plugin Description Generator using our CMake function adtf_create_plugindescription.

For further reference see the function definition and documentation in <ADTF_DIR>/ADTFMacros.cmake and Generate Plugin Description.

Basic

This function takes care of calling the PDGen as part of the build.

Example usage:

3rd Party dependencies

If your adtfplugin requires addtional shared libraries for plugindescription generation, you can specify the dependencies by using DEPENDENT_DYNAMIC_LIBS.

Example usage:

If your adtfplugin requires addtional shared libraries for runtime, you can specify the dependencies by using PLATFORM_DEPENDENCIES, PLATFORM_DEPENDENCIES_RELEASE and/or PLATFORM_DEPENDENCIES_DEBUG.

Example usage:

Unfortunately CMake will always resolve any macros specified with $. As you can see here, we created a workaround to store a library in ADTF macro syntax like $(SOME_DIR)/libray.ddl. To do so please use =(SOME_DIR)/libray.ddl and the ADTF Plugin Description Generator will automatically replace the '=' with '$' and store the path as specifed without resolving.

Command line support

Please see the output of a call with --help for all available command line options.

We recommend to integrate the plugin description generation into your toolchain as post-build step using the provided CMake support as described and demonstrated in all our programming examples and tutorial here as well. There is no need to use the ADTF Plugin Description Generator as command line tool standalone. See also Best Practice Tooling. All additional information in this guide and listed command line options are just to provide you a deeper understanding.

Where to go next?

Now you know a lot about setting up an ADTF Session but what about manipulating it without UI ? Let's have a look at ADTF Config Tool.