Skip to content

Tích hợp CMake

Dự án dùng SDK trực tiếp

cmake
cmake_minimum_required(VERSION 3.16)
project(my_app)

set(CMAKE_CXX_STANDARD 17)

# Trỏ tới SDK
set(CVEDIX_SDK_DIR "$ENV{CVEDIX_SDK_DIR}" CACHE PATH "CVEDIX SDK directory")

find_package(OpenCV REQUIRED)

add_executable(my_app main.cpp)

target_include_directories(my_app PRIVATE
    ${CVEDIX_SDK_DIR}/include
    ${OpenCV_INCLUDE_DIRS})

target_link_directories(my_app PRIVATE
    ${CVEDIX_SDK_DIR}/lib/x86_64)

target_link_libraries(my_app PRIVATE
    cvedix_core
    ${OpenCV_LIBS})

Build:

bash
cmake -B build -DCVEDIX_SDK_DIR=$CVEDIX_SDK_DIR
cmake --build build -j$(nproc)

Dùng find_package

Nếu đã cài .deb package hoặc muốn dùng CMake config trong cmake/:

cmake
list(APPEND CMAKE_PREFIX_PATH "$ENV{CVEDIX_SDK_DIR}/cmake")
find_package(cvedix REQUIRED)

add_executable(my_app main.cpp)
target_link_libraries(my_app PRIVATE cvedix::cvedix_instance_sdk)

Runtime path

Có 2 cách để executable tìm được .so lúc chạy:

Cách 1 — LD_LIBRARY_PATH (đơn giản):

bash
export LD_LIBRARY_PATH=$CVEDIX_SDK_DIR/lib/x86_64:$LD_LIBRARY_PATH
./my_app

Cách 2 — RPATH (đóng gói sản phẩm):

cmake
set_target_properties(my_app PROPERTIES
    INSTALL_RPATH "$ORIGIN/../lib"
    BUILD_WITH_INSTALL_RPATH ON)

Ứng dụng C (dùng C API)

cmake
add_executable(my_c_app main.c)
target_include_directories(my_c_app PRIVATE ${CVEDIX_SDK_DIR}/include)
target_link_directories(my_c_app PRIVATE ${CVEDIX_SDK_DIR}/lib/x86_64)
target_link_libraries(my_c_app PRIVATE cvedix_capi)

Chỉ cần link cvedix_capi — nó tự kéo cvedix_core theo.

Phần mềm độc quyền — CVEDIX