CMake Integration
How to use raisin_sdk in CMake-based projects.
CMakeLists.txt Example
cmake_minimum_required(VERSION 3.10)
project(my_robot_controller)
set(CMAKE_CXX_STANDARD 17)
# Set raisin_sdk_install path
set(RAISIN_SDK_PATH "${CMAKE_SOURCE_DIR}/../raisin_sdk_install")
# Include paths
include_directories(
${RAISIN_SDK_PATH}/include
)
# Library paths
link_directories(
${RAISIN_SDK_PATH}/lib
)
# System dependencies
find_package(Eigen3 REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(PCL REQUIRED)
find_package(OpenCV REQUIRED)
# Create executable
add_executable(my_controller src/main.cpp)
target_link_libraries(my_controller
# raisin libraries
raisin_network
raisin_interfaces
nav_msgs
sensor_msgs
geometry_msgs
builtin_interfaces
std_msgs
# System libraries
Eigen3::Eigen
OpenSSL::SSL
OpenSSL::Crypto
${PCL_LIBRARIES}
${OpenCV_LIBS}
pthread
)
# PCL include paths
target_include_directories(my_controller PRIVATE ${PCL_INCLUDE_DIRS})
target_link_directories(my_controller PRIVATE ${PCL_LIBRARY_DIRS})
target_compile_definitions(my_controller PRIVATE ${PCL_DEFINITIONS})
Build Instructions
mkdir build && cd build
cmake ..
make -j$(nproc)
RPATH Configuration (Optional)
If the executable cannot find libraries at runtime:
Method 1: Set LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/path/to/raisin_sdk_install/lib:$LD_LIBRARY_PATH
./my_controller
Method 2: CMake RPATH Setting
# Add to CMakeLists.txt
set(CMAKE_INSTALL_RPATH "${RAISIN_SDK_PATH}/lib")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
Method 3: Add to System Library Path
sudo echo "/path/to/raisin_sdk_install/lib" > /etc/ld.so.conf.d/raisin.conf
sudo ldconfig
Example Project Structure
my_project/
├── CMakeLists.txt
├── src/
│ └── main.cpp
├── include/
│ └── my_controller.hpp
└── ../raisin_sdk_install/ # SDK installation directory
├── include/
└── lib/
Note
Adjust the raisin_sdk_install folder location to match your project structure.
You can also set RAISIN_SDK_PATH to an absolute path.