Add unitest
This commit is contained in:
@@ -1,25 +1,37 @@
|
||||
project(FireNSmokeDetection_Tests LANGUAGES CXX)
|
||||
|
||||
add_executable(${PROJECT_NAME}
|
||||
FireNSmokeDetectionTest.cpp
|
||||
# ============================================================================
|
||||
# Common settings shared by both targets
|
||||
# ============================================================================
|
||||
set(COMMON_INCLUDES
|
||||
${TEST_COMMON_DIR}
|
||||
${ANSLIB_INCLUDE_DIR}
|
||||
${OPENCV_INCLUDE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/ANSCustomFireNSmokeDetection
|
||||
)
|
||||
|
||||
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
|
||||
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
set(COMMON_DEFS
|
||||
WIN32_LEAN_AND_MEAN
|
||||
NOMINMAX
|
||||
$<$<CONFIG:Debug>:_DEBUG>
|
||||
$<$<CONFIG:Release>:NDEBUG>
|
||||
)
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
${TEST_COMMON_DIR}
|
||||
${ANSLIB_INCLUDE_DIR}
|
||||
${OPENCV_INCLUDE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/ANSCustomFireNSmokeDetection
|
||||
# All runtime DLLs (ANSLIB, ANSODEngine, ANSLicensingSystem, ANSMOT, OpenCV, etc.)
|
||||
# live in C:\ProgramData\ANSCENTER\Shared — same directory as the .lib files.
|
||||
# Windows resolves them via the standard DLL search order.
|
||||
|
||||
# ============================================================================
|
||||
# 1. Google Test unit/integration test executable
|
||||
# ============================================================================
|
||||
add_executable(${PROJECT_NAME}
|
||||
FireNSmokeDetectionTest.cpp
|
||||
)
|
||||
|
||||
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE ${COMMON_DEFS})
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${COMMON_INCLUDES})
|
||||
|
||||
target_link_directories(${PROJECT_NAME} PRIVATE
|
||||
${ANSLIB_LIB_DIR}
|
||||
${OPENCV_LIB_DIR}
|
||||
@@ -37,18 +49,31 @@ if(MSVC)
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE /W3 /sdl /permissive-)
|
||||
endif()
|
||||
|
||||
# Copy required DLLs next to the test executable so Windows can find them
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
# ANSLIB.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${ANSLIB_LIB_DIR}/ANSLIB.dll"
|
||||
"$<TARGET_FILE_DIR:${PROJECT_NAME}>"
|
||||
# OpenCV DLL
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${OPENCV_BIN_DIR}/opencv_world4130.dll"
|
||||
"$<TARGET_FILE_DIR:${PROJECT_NAME}>"
|
||||
COMMENT "Copying runtime DLLs for ${PROJECT_NAME}"
|
||||
)
|
||||
|
||||
include(GoogleTest)
|
||||
gtest_discover_tests(${PROJECT_NAME} DISCOVERY_MODE PRE_TEST)
|
||||
|
||||
# ============================================================================
|
||||
# 2. Interactive video demo executable (visual verification with OpenCV window)
|
||||
# ============================================================================
|
||||
add_executable(FireNSmokeDetection_Demo
|
||||
main.cpp
|
||||
)
|
||||
|
||||
target_compile_features(FireNSmokeDetection_Demo PRIVATE cxx_std_17)
|
||||
target_compile_definitions(FireNSmokeDetection_Demo PRIVATE ${COMMON_DEFS})
|
||||
target_include_directories(FireNSmokeDetection_Demo PRIVATE ${COMMON_INCLUDES})
|
||||
|
||||
target_link_directories(FireNSmokeDetection_Demo PRIVATE
|
||||
${ANSLIB_LIB_DIR}
|
||||
${OPENCV_LIB_DIR}
|
||||
)
|
||||
|
||||
target_link_libraries(FireNSmokeDetection_Demo PRIVATE
|
||||
ANSLIB
|
||||
opencv_world4130
|
||||
ANSCustomFireNSmokeDetection
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(FireNSmokeDetection_Demo PRIVATE /W3 /sdl /permissive-)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user