4.16. Building Against FACE Conformance Libraries

4.16.1. Introduction to RTI Connext DDS Micro Support for FACE

This section describes how to build RTI Connext DDS Micro using the FACE conformance test tools.

4.16.2. Requirements

4.16.2.1. Connext DDS Micro Source Code

The Connext DDS Micro source code is available from RTI’s support portal.

4.16.2.2. FACE Conformance Tools

RTI does not distribute the FACE conformance tools.

4.16.2.3. CMake

The Connext DDS Micro source is distributed with a CMakeList.txt project files. CMake is an easy to use tool that generates makefiles or project files for various build-tools, such has UNIX makefiles, Microsoft Visual Studio project files, and Xcode.

CMake can be downloaded from www.cmake.org.

4.16.3. FACE Golden Libraries

The FACE conformance tools uses a set of golden libraries. There are different golden libraries for difference FACE services, languages and profiles. Connext DDS Micro only confirms to the safetyExt and safety profile of OSS using the C language.

4.16.3.1. Building the FACE Golden Libraries

The FACE conformance tools ships with its own set of tools to build the golden libraries. Please follow the instructions provided by FACE. In order to build the FACE golden libraries it is necessary to port to the required platform. RTI has only tested Connext DDS Micro on Linux 2.6 with GCC 4.4.5. For completeness, the complete list of all the files modified by RTI are included below in source form.

4.16.4. Building the Connext DDS Micro Source

The following is step by step instructions on how to built the RTI Connext DDS Micro source:

  • Extract the source-code. Please note that the remaining instructions assume that only a single platform is built from the source.

  • In the top-level source directory enter the following:

    shell> cmake-gui .
    

    This will start up the CMake GUI where all build configuration takes place.

  • Click the “Configure” button.

  • Select UNIX Makefiles from the drop-down list.

  • Select “Use default compilers” or “Specify native compilers” as required. Press done.

  • Click “Configure” again. There should not be any red lines. If there are, click configure again.

    NOTE: A red line means that a variable has not been configured. Some options could add new variables. Thus, if you change an option a new red lines may appear. In this case configure the variable and press configure.

  • Expand the CMAKE and RTIMICRO options and configure how to build Connext DDS Micro:

    CMAKE_BUILD_TYPE: Debug or blank. If Debug is used the RTI Connext DDS Micro debug
                      libraries are built.
    
    RTIMICRO_BUILD_API: C or C++
       C   - Include the C API. For FACE only C is supported
       C++ - Include the C++ API.
    
    RTIMICRO_BUILD_DISCOVERY_MODULE: Dynamic | Static | Both
       Dynamic - Include the dynamic discovery module.
       Static  - Include the static discovery module.
       Both    - Include both discovery modules.
    
    RTIMICRO_BUILD_LIBRARY_BUILD:
       Single    - Build a single library.
       RTI style - Build the same libraries RTI normally ships. This is useful
                   if RTI libraries are already being used and you want to use
                   the librarires build from source.
    
    RTIMICRO_BUILD_LIBRARY_TYPE:
        Static -  Build static libraries.
        Shared -  Build shared libraries.
    
    RTIMICRO_BUILD_LIBRARY_PLATFORM_MODULE: POSIX
    
    RTIMICRO_BUILD_LIBRARY_TARGET_NAME: <target name>
       Enter a string as the name of the target. This is also used as the
       name of the directory where the built libraries are placed.
       If you are building libraries to replace the libraries shipped by RTI
       you can use the RTI target name here. It is then possible to set
       RTIMEHOME to the source tree (if RTI style is selected for
       RTIMICRO_BUILD_LIBRARY_BUILD).
    
    RTIMICRO_BUILD_ENABLE_FACE_COMPLIANCE: Select level of FACE compliance
        None            - No compliance required
        General         - Build for compliance with the FACE general profile
        Safety Extended - Build for compliance with the FACE safety extended profile
        Safety          - Build for compliance with the FACE safety profile
    
    RTIMICRO_BUILD_LINK_FACE_GOLDEBLIBS:
        Check if linking against the static FACE conformance test libraries.
        NOTE: This check-box is only available if FACE compliance is different
        from "None".
    
    RTIMICRO_BUILD_LINK_FACE_GOLDEBLIBS:
        If the  RTIMICRO_BUILD_LINK_FACE_GOLDEBLIBS is checked the path to the
        top-level FACE root must be specified here.
    
  • Click “Configure”.

  • Click “Generate”.

  • Build the generated project.

  • Libraries are placed in lib/<RTIMICRO_BUILD_LIBRARY_TARGET_NAME>.