cmake_minimum_required(VERSION 3.16) project(chicken_counter VERSION 0.1.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) find_package(OpenCV 4.0 REQUIRED COMPONENTS core imgproc video videoio highgui imgcodecs dnn) find_package(nlohmann_json 3.0 REQUIRED) find_package(yaml-cpp REQUIRED) find_package(CUDAToolkit REQUIRED) find_library(NVINFER_LIB nvinfer PATHS /usr/lib/aarch64-linux-gnu REQUIRED) find_library(NVONNX_LIB nvonnxparser PATHS /usr/lib/aarch64-linux-gnu REQUIRED) set(COMMON_LIBS opencv_core opencv_imgproc opencv_video opencv_videoio opencv_highgui opencv_imgcodecs opencv_dnn nlohmann_json::nlohmann_json yaml-cpp CUDA::cudart ${NVINFER_LIB} ${NVONNX_LIB} ) add_library(chicken_counter_lib STATIC src/pipeline.cpp src/batch_runner.cpp ) target_include_directories(chicken_counter_lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include /usr/include/aarch64-linux-gnu ) target_link_libraries(chicken_counter_lib PUBLIC ${COMMON_LIBS}) add_executable(chicken_counter_cli src/main.cpp ) target_link_libraries(chicken_counter_cli PRIVATE chicken_counter_lib) add_executable(test_config tests/test_config.cpp ) target_link_libraries(test_config PRIVATE chicken_counter_lib) add_executable(test_modules tests/test_modules.cpp ) target_link_libraries(test_modules PRIVATE chicken_counter_lib) add_executable(chicken_counter_dashboard src/dashboard.cpp ) target_link_libraries(chicken_counter_dashboard PRIVATE pthread) enable_testing() add_test(NAME config COMMAND test_config) add_test(NAME modules COMMAND test_modules)