Files
chicken-counting-sukawarna-det/cpp/CMakeLists.txt
T
2026-07-22 00:03:02 +07:00

58 lines
1.6 KiB
CMake

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)