cmake_minimum_required(VERSION 3.16)
project(ukui-biometric-auth)

# 尝试查找Qt6，如果失败则回退到Qt5
find_package(Qt6 COMPONENTS Core Widgets DBus Svg QUIET)
if(Qt6_FOUND)
    message(STATUS "Using Qt6")
    set(QT_VERSION_MAJOR 6)
    find_package(Qt6LinguistTools REQUIRED)
    set(QT_PREFIX Qt6)
    set(QT_LINGUIST_TOOLS_CMAKE_PACKAGE_NAME Qt6LinguistTools)
else()
    message(STATUS "Qt6 not found, trying Qt5")
    find_package(Qt5 COMPONENTS Core Widgets DBus Svg REQUIRED)
    find_package(Qt5LinguistTools REQUIRED)
    set(QT_VERSION_MAJOR 5)
    set(QT_PREFIX Qt5)
    set(QT_LINGUIST_TOOLS_CMAKE_PACKAGE_NAME Qt5LinguistTools)
endif()

# 设置Qt版本相关的定义
add_definitions(-DQT_VERSION_MAJOR=${QT_VERSION_MAJOR})

# 输出版本信息
message(STATUS "Qt版本: ${QT_VERSION_MAJOR}")
message(STATUS "Qt前缀: ${QT_PREFIX}")
message(STATUS "C++标准: ${CMAKE_CXX_STANDARD}")
find_package(OpenCV REQUIRED)
find_package(PkgConfig)
pkg_check_modules(GIOUNIX2 REQUIRED gio-unix-2.0)
pkg_check_modules(GLIB2 REQUIRED glib-2.0 gio-2.0)

set(UKUI_BIOMETRIC_DIR /usr/share/ukui-biometric)
set(CMAKE_INSTALL_PREFIX /usr)

#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# 根据Qt版本设置C++标准
if(QT_VERSION_MAJOR EQUAL 6)
    set(CMAKE_CXX_STANDARD 17)
else()
    set(CMAKE_CXX_STANDARD 11)
endif()
set (CONDOR_SCRIPT_PERMS OWNER_READ OWNER_WRITE OWNER_EXECUTE
    GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)

add_compile_options(-fPIC)
add_definitions(-DUKUI_BIOMETRIC=${UKUI_BIOMETRIC_DIR})
add_definitions(-DCONFIG_FILE=/etc/biometric-auth/ukui-biometric.conf)


add_subdirectory(bioauth)
add_subdirectory(bioauth-bin)
add_subdirectory(pam-biometric)
add_subdirectory(polkit-agent)
add_subdirectory(uniauth-backend)
add_subdirectory(images)

add_dependencies(bioauth BioAuth)
add_dependencies(polkit-ukui-authentication-agent-1 BioAuthWidgets)
