33 lines
1.4 KiB
CMake
33 lines
1.4 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 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)
|
|
target_link_libraries(retrytest PRIVATE Qt6::Core Qt6::Test)
|
|
enable_testing()
|
|
add_test(NAME fingerprint-retry COMMAND retrytest)
|
|
set_tests_properties(fingerprint-retry PROPERTIES TIMEOUT 30)
|