34 lines
1.5 KiB
CMake
34 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.25)
|
|
project(fingerprintRetryTests LANGUAGES CXX)
|
|
|
|
# Compile the actual patched upstream classes, but never use the host's PAM
|
|
# configuration or credentials. The test executable supplies a fake PAM API.
|
|
set(KSCREENLOCKER_SOURCE "" CACHE PATH "Extracted, patched KScreenLocker source")
|
|
if(NOT EXISTS "${KSCREENLOCKER_SOURCE}/greeter/pamauthenticator.cpp")
|
|
message(FATAL_ERROR "Set KSCREENLOCKER_SOURCE to the patched source directory")
|
|
endif()
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_AUTOMOC ON)
|
|
find_package(Qt6 REQUIRED COMPONENTS Core Qml Test)
|
|
find_package(ECM REQUIRED NO_MODULE)
|
|
list(APPEND CMAKE_MODULE_PATH "${ECM_MODULE_PATH}")
|
|
include(ECMQtDeclareLoggingCategory)
|
|
|
|
set(sources retrytest.cpp
|
|
${KSCREENLOCKER_SOURCE}/greeter/pamauthenticator.cpp
|
|
${KSCREENLOCKER_SOURCE}/greeter/pamauthenticators.cpp)
|
|
ecm_qt_declare_logging_category(sources
|
|
HEADER kscreenlocker_greet_logging.h
|
|
IDENTIFIER KSCREENLOCKER_GREET
|
|
CATEGORY_NAME kscreenlocker_greet)
|
|
add_executable(retrytest ${sources})
|
|
target_include_directories(retrytest PRIVATE
|
|
${CMAKE_CURRENT_BINARY_DIR} ${KSCREENLOCKER_SOURCE}/greeter)
|
|
target_compile_definitions(retrytest PRIVATE HAVE_PAM_FAIL_DELAY
|
|
RETRY_QML="${CMAKE_CURRENT_SOURCE_DIR}/../../../plasma-always-show-unlock/FedoraToolsFingerprintRetry.qml")
|
|
target_link_libraries(retrytest PRIVATE Qt6::Core Qt6::Qml Qt6::Test)
|
|
enable_testing()
|
|
add_test(NAME fingerprint-retry COMMAND retrytest)
|
|
set_tests_properties(fingerprint-retry PROPERTIES TIMEOUT 30)
|