cmake_minimum_required(VERSION 3.16) project(bytetrack-counter LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) find_package(OpenCV REQUIRED COMPONENTS core imgproc videoio highgui imgcodecs) set(Eigen3_DIR /usr/share/eigen3/cmake) find_package(Eigen3 REQUIRED NO_MODULE) find_package(SQLite3 REQUIRED) option(HAS_RKNN "Build with RKNN NPU support" OFF) if(HAS_RKNN) add_definitions(-DHAS_RKNN) include_directories(/usr/local/include/rknn) endif() set(SOURCES src/main.cpp src/kalman_filter.cpp src/bytetrack.cpp src/batch_store.cpp src/csv_logger.cpp src/rknn_yolo.cpp src/config.cpp src/drawing.cpp ) add_executable(bytetrack-counter ${SOURCES}) target_include_directories(bytetrack-counter PRIVATE ${OpenCV_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIR} ${SQLite3_INCLUDE_DIRS} src ) target_link_libraries(bytetrack-counter ${OpenCV_LIBS} ${SQLite3_LIBRARIES} pthread ) if(HAS_RKNN) find_library(RKNN_LIB rknnrt PATHS /usr/lib /usr/local/lib) if(RKNN_LIB) target_link_libraries(bytetrack-counter ${RKNN_LIB}) else() message(WARNING "librknnrt not found — RKNN support disabled") endif() endif() install(TARGETS bytetrack-counter DESTINATION /opt/bytetrack-counter-cpp/bin)