CMAKE_MINIMUM_REQUIRED(VERSION 3.16)

IF(${CMAKE_VERSION} VERSION_GREATER "3.17.0")
    CMAKE_POLICY(SET CMP0100 NEW)
ENDIF()

# Project properties
PROJECT(fly-ocr)
SET(PACKAGE_NAME fly-ocr)
IF(NOT PACKAGE_VERSION)
    SET(PACKAGE_VERSION 0.0.2)
ENDIF()
SET(CMAKE_CXX_STANDARD 14)
SET(CXX_STANDARD_REQUIRED ON)
SET(CMAKE_CXX_VISIBILITY_PRESET hidden)
SET(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
SET(CMAKE_AUTOMOC ON)
SET(CMAKE_AUTORCC ON)
SET(CMAKE_AUTOUIC OFF)

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /usr/share/cmake-3.7/Modules) #hack for orel-2.12

# Version
STRING(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" FLYOCR_VERSION_MATCH ${PACKAGE_VERSION})
SET(FLYOCR_SOVERSION ${CMAKE_MATCH_1})

# Dependencies
INCLUDE(GNUInstallDirs)
INCLUDE(FindPkgConfig)

FIND_PACKAGE(Qt5 5.11.0 CONFIG REQUIRED COMPONENTS Widgets Concurrent Xml PrintSupport LinguistTools WebEngineWidgets)

SET(PLUGIN_DIR "${CMAKE_INSTALL_LIBDIR}/fly-ocr" CACHE STRING "plugin path")

ADD_DEFINITIONS(-DQT_DISABLE_DEPRECATED_BEFORE=0x050B00 -DQT_DEPRECATED_WARNINGS)
ADD_COMPILE_OPTIONS(-Wall -Wextra -Werror=return-type -Werror=suggest-override -Werror=zero-as-null-pointer-constant)

ADD_SUBDIRECTORY(app)
ADD_SUBDIRECTORY(fly-ocr)
ADD_SUBDIRECTORY(plugins/tesseract)

IF(UNIX)
    ADD_CUSTOM_TARGET(distclean @echo cleaning for source distribution)
    ADD_CUSTOM_COMMAND(
        COMMENT "distribution clean"
        COMMAND make ARGS -C ${CMAKE_CURRENT_BINARY_DIR} clean
        COMMAND find ARGS ${CMAKE_CURRENT_BINARY_DIR} -name "CMakeCache.txt" 
        -o -name "CMakeFiles"
        -o -name "Makefile"
        -o -name ".cmake"
        -o -name \"*.cmake\"
        -o -name "*.txt.prev"
        -o -name "*.qm"
        -o -name "*.pc"
        -o -name "*.depends"
        -o -name "*.cxx_parameters"
        -o -name "moc_*.cpp"
        -o -name "qrc_*.cxx"
        -o -name "*_automoc.cpp"
        -o -name "*.cbp"
        -o -name *_automoc.dir | xargs rm -rf
        COMMAND find ARGS ${CMAKE_CURRENT_SOURCE_DIR} -name "*.qm" | xargs rm -rf
        COMMAND rm ARGS -rf ${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt ${CMAKE_CURRENT_BINARY_DIR}/Testing       
        TARGET  distclean
    )
ENDIF(UNIX)
