mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-03-21 17:34:57 -05:00
79 lines
2.4 KiB
CMake
79 lines
2.4 KiB
CMake
cmake_minimum_required(VERSION 3.14)
|
|
project(advanced-scene-switcher-opencv)
|
|
|
|
# --- Check OpenCV requirements ---
|
|
|
|
get_target_property(ADVSS_SOURCE_DIR advanced-scene-switcher-lib SOURCE_DIR)
|
|
|
|
find_package(OpenCV)
|
|
if(NOT OpenCV_FOUND)
|
|
message(
|
|
WARNING
|
|
"OpenCV not found!\n" "Video condition will be disabled!\n\n"
|
|
"OpenCV sources are available under: ${ADVSS_SOURCE_DIR}/deps/opencv")
|
|
return()
|
|
endif()
|
|
|
|
# --- Check optional OCR dependencies ---
|
|
|
|
find_package(Leptonica QUIET)
|
|
find_package(Tesseract QUIET)
|
|
|
|
if(OS_LINUX AND NOT Leptonica_FOUND)
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
pkg_check_modules(Tesseract IMPORTED_TARGET tesseract lept)
|
|
if(Tesseract_FOUND)
|
|
add_library(Tesseract::libtesseract ALIAS PkgConfig::Tesseract)
|
|
set(Leptonica_FOUND TRUE)
|
|
set(Tesseract_FOUND TRUE)
|
|
endif()
|
|
endif()
|
|
|
|
# --- End of section ---
|
|
|
|
add_library(${PROJECT_NAME} MODULE)
|
|
|
|
if(Leptonica_FOUND AND Tesseract_FOUND)
|
|
target_compile_definitions(${PROJECT_NAME} PRIVATE OCR_SUPPORT)
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE Tesseract::libtesseract
|
|
${Leptonica_LIBRARIES})
|
|
target_include_directories(${PROJECT_NAME} PRIVATE ${Tesseract_INCLUDE_DIRS}
|
|
${Leptonica_INCLUDE_DIRS})
|
|
if(OS_WINDOWS)
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/ignore:4099")
|
|
endif()
|
|
else()
|
|
message(
|
|
WARNING "OCR capabilities of video condition disabled!\n"
|
|
"Leptonica or Tesseract dependencies were not found!\n\n"
|
|
"Sources are available under: ${ADVSS_SOURCE_DIR}/deps/leptonica")
|
|
endif()
|
|
|
|
target_sources(
|
|
${PROJECT_NAME}
|
|
PRIVATE area-selection.cpp
|
|
area-selection.hpp
|
|
macro-condition-video.cpp
|
|
macro-condition-video.hpp
|
|
opencv-helpers.cpp
|
|
opencv-helpers.hpp
|
|
parameter-wrappers.cpp
|
|
parameter-wrappers.hpp
|
|
preview-dialog.cpp
|
|
preview-dialog.hpp
|
|
screenshot-dialog.cpp
|
|
screenshot-dialog.hpp)
|
|
|
|
setup_advss_plugin(${PROJECT_NAME})
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
|
|
|
|
target_include_directories(${PROJECT_NAME} PRIVATE ${OpenCV_INCLUDE_DIRS})
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE ${OpenCV_LIBRARIES})
|
|
|
|
install_advss_plugin(${PROJECT_NAME})
|
|
if(NOT OS_LINUX)
|
|
install_advss_plugin_dependency(TARGET ${PROJECT_NAME} DEPENDENCIES
|
|
${OpenCV_LIBS})
|
|
endif()
|