3. Build Connext TSS Libraries

The Connext TSS libraries are shipped as source and must be built before use by a FACE application. This chapter focuses on how to build Connext TSS libraries for an architecture supported by RTI (refer to Platform Support for a list of platforms supported in this release). The following sections must be performed in the order presented.

3.1. Prerequisites

  • Connext Micro must be installed and built for the appropriate target architecture and FACE profile. For instructions, refer to the doc folder in your Connext Micro installation directory. This Connext TSS release supports Connext Micro 2.4.13.1, 2.4.13.4, and 2.4.13.5.

  • Set the JREHOME environment variable to the location of the JRE included with Connext Micro. A JRE is needed to execute rtiddsgen.

  • Download and install CMake. Connext TSS provides and uses CMake scripts to generate the environment to build its libraries and example applications.

3.2. Setting Your Environment

Before building Connext TSS source code, the RTITSSHOME and RTIMEHOME environment variables must be set to the installation paths for Connext TSS and Connext Micro, respectively.

  1. Make sure CMake is in the PATH environment variable.

  2. Set the RTITSSHOME environment variable to point to your Connext TSS installation directory.

    For example, if Connext TSS is installed in /home/user/rti/rti_connext_tss-4.1.0/, set the RTITSSHOME environment variable with this command (in bash):

export RTITSSHOME=/home/user/rti/rti_connext_tss-4.1.0
  1. Set the RTIMEHOME environment variable to point to your Connext Micro installation.

    For example, if Connext Micro is installed in /opt/local/rti/rti_connext_micro.2.4.13.4, then set RTIMEHOME with this command (in bash):

export RTIMEHOME=/opt/local/rti/rti_connext_micro.2.4.13.4

Note

The Connext Micro libraries must be conformant to the FACE profile of the Connext TSS libraries being built. For help configuring and building Connext Micro for FACE, refer to the user’s manual in the doc folder of your Connext Micro installation directory.

3.3. Setting Your Architecture

The architecture identifies the platform on which to run Connext TSS. After setting up your environment, configure the appropriate architecture for your build.

Note

For a list of platforms that have been demonstrated with Connext Micro, refer to Platform Support.

The RTITSSHOME/resource folder includes CMake architecture files for the following platforms:

  • ppce6500Vx653-3.0.1.1gcc4.3.3.cmake

  • ppce6500Vx653-3.0.1.1gcc4.3.3FACE_SB.cmake

  • x64Linux4gcc7.3.0FACE_GP.cmake

  • x64Linux4gcc7.3.0FACE_SB.cmake

  • x64Linux4gcc8.5.0.cmake

  • x64Linux4gcc8.5.0FACE_GP.cmake

  • x64Linux5gcc12.3.0.cmake

  • x64Linux5gcc12.3.0FACE_GP.cmake

  • x64Linux5gcc12.3.0FACE_SB.cmake

  • x64Win64VS2022.cmake

  • x86Lynx1782022.07.1.APEXgcc7.1.0.cmake

  • x86Lynx1782022.07.1.APEXgcc7.1.0FACE_SB.cmake

After choosing an architecture, set the environment variable RTITSSARCH to the selected architecture. For example:

export RTITSSARCH=x64Linux4gcc7.3.0

If compiling Connext TSS for the SafetyBase FACE Profile, you will also need to set the RTIMEARCH environment variable and append the _cert suffix to the architecture name. For example:

export RTITSSARCH=x64Linux4gcc7.3.0
export RTIMEARCH=x64Linux4gcc7.3.0

Note

To use a different architecture from those listed above, refer to the Porting chapter in this manual.

3.4. Building the Libraries

After setting the appropriate architecture, use CMake to create an out-of-source build of Connext TSS.

  1. Create a build directory:

    cd ${RTITSSHOME}
    mkdir build
    
  2. Run CMake with the required definitions, as noted in the following command:

    cd build
    cmake -DRTI_CONNEXT_TYPE=micro -DRTI_TSS_ENABLE_FACE_COMPLIANCE=<your_face_profile> -DCMAKE_BUILD_TYPE=<your_build_type> ../
    

The CMake definitions in the above command are required to successfully build Connext TSS.

  • RTI_CONNEXT_TYPE sets Connext Micro as the RTI product being used.

  • RTI_TSS_ENABLE_FACE_COMPLIANCE sets the FACE OSS (Operating System Segment) profile Connext TSS will conform to:

    • None” (default)

    • GeneralPurpose

    • SafetyExtended

    • SafetyBase

    • Security

Note

While RTI_TSS_ENABLE_FACE_COMPLIANCE can be set to any FACE OSS profile, this release of Connext TSS supports both the GeneralPurpose and SafetyBase profiles with Connext Micro versions 2.4.13.1, 2.4.13.4, and 2.4.13.5. For information about FACE profiles, see the FACE Technical Standard.

  1. Build the Connext TSS libraries:

    cmake --build .
    

Alternatively, you can use the CMake GUI (cmake-gui) instead of the command line to complete the build.

3.4.1. Optional CMake Definitions

The following definitions can be used to customize your build.

  • CMAKE_BUILD_TYPE sets the type of library or executable built:

    • Release” (default)

    • Debug

  • BUILD_TSS enables or disables building TS/TA Library:

    • ON” (default)

    • OFF

  • BUILD_STRINGS_SEQUENCES enables or disables building RTI Strings/Sequences:

    • ON” (default)

    • OFF

  • BUILD_SERIALIZATION enables or disables building Serialization UoC:

    • ON” (default)

    • OFF

  • BUILD_MICRO_TPM enables or disables building RTI Micro TPM:

    • ON” (default)

    • OFF

  • BUILD_PRO_TPM enables or disables building RTI Pro TPM:

    • ON

    • OFF” (default)

    Note

    Connext TSS 4.1.0 is an EAR (Early Access Release) and does not support Connext Professional.

  • LANGUAGE sets the language to build the enabled libraries for:

    • c” (default)

    • cpp””

    Note

    RTI’s C++ API is a wrapper around the C API. When C++ is selected, both C and C++ libraries are built.

  • BUILD_SHARED_LIBS defines whether libraries are built as dynamic or static:

    • ON

    • OFF” (default)

    Note

    This Connext TSS release does not support dynamic libraries in Windows.

3.5. Verify Build

A successful build creates multiple libraries depending on which CMake flags were set. All created libraries are in <RTITSSHOME>/lib/<tss_arch>/<library_name>:

  • librti_tssc(pp): Type Abstraction library.

  • librti_tpm_micro_c(pp): Transport Protocol Module library based on Connext Micro.

  • librti_tss_serialization_c(pp): Serialization support library.

  • librti_tss_strings_sequencesc(pp): Strings and sequences library.