Add thrid party library to voxl-cross
-
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.
-
@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
-
Ok thanks for you clarification, I will try it and see how it goes.
-
@remill
You can also add a FetchContent CMake declaration that will build your library during compilation. Here is an example for yaml-cppinclude(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} )