# Add thrid party library to voxl-cross

Source: https://forum.modalai.com/topic/4845/add-thrid-party-library-to-voxl-cross
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2025-10-30 13:12:57 UTC by remill
Replies: 3 · Views: 590

## remill · 2025-10-30 13:12:57 UTC

Hi,

I would like to use a third party library to interface my sensor with voxl2, but I don't find the documentation on how to add a new library on voxl-cross. 

I assume to be able to run on voxl2 it need to be compile with voxl-cross. Am I correct ? I also try and build directly on the voxl2 with cmake over adb but the performance are much lower than using voxl-cross (I run a c programme that compute the 50th first pi decimal just for test). 

What would be the best path to make it work ? 

The library I look to use is libcaer for inivation sensor. https://gitlab.com/inivation/dv/libcaer

Thank for your help.

## Reply by Eric Katzfey (ModalAI staff) · 2025-10-30 16:19:27 UTC

@remill Normally what we do is build these libraries and create a Debian package to install them. Then, when building the application that depends on the library it is installed at build time using the install_build_deps.sh script. An example of this is: https://gitlab.com/voxl-public/voxl-sdk/third-party/voxl-jpeg-turbo/-/tree/dev?ref_type=heads which creates a package for the jpeg-turbo library. Then an application that uses it, like voxl-portal, will list that as a dependency in the script: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-portal/-/blob/dev/install_build_deps.sh?ref_type=heads#L16

## Reply by remill · 2025-10-30 17:37:47 UTC (in reply to Eric Katzfey)

@Eric-Katzfey 

Ok thanks for you clarification, I will try it and see how it goes.

## Reply by zauberflote1 (ModalAI staff) · 2025-12-10 19:40:57 UTC (in reply to remill)

@remill 
You can also add a FetchContent CMake declaration that will build your library during compilation. Here is an example for yaml-cpp

```
include(FetchContent)

# Fetch yaml-cpp from GitHub
FetchContent_Declare(
  yaml-cpp
  GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git
  GIT_TAG yaml-cpp-0.6.3
)

# Disable yaml-cpp tests
set(YAML_CPP_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(YAML_BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE) #cross 4.0 quits the chat if building static
FetchContent_MakeAvailable(yaml-cpp)
# Confirm target exists
if (TARGET yaml-cpp)
    add_library(yaml-cpp::yaml-cpp ALIAS yaml-cpp)
endif()

install(FILES
    ${yaml-cpp_BINARY_DIR}/libyaml-cpp.so
    ${yaml-cpp_BINARY_DIR}/libyaml-cpp.so.0.6
    ${yaml-cpp_BINARY_DIR}/libyaml-cpp.so.0.6.3
    DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
```
