cmake_minimum_required(VERSION 3.24) project(DocViewHeavyPdfValidation LANGUAGES CXX) if(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux") message(FATAL_ERROR "This supplemental harness currently validates Linux only") endif() set(CMAKE_CXX_STANDARD 20) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) get_filename_component(DOCVIEW_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../.." ABSOLUTE) set(DOCVIEW_CANONICAL_BUILD "${DOCVIEW_ROOT}/build" CACHE PATH "Existing tested Release build") find_package(Qt6 6.11.2 EXACT REQUIRED COMPONENTS Core Gui Network Qml Quick QuickControls2 WebEngineQuick Test) find_package(PkgConfig REQUIRED) pkg_check_modules(FONTCONFIG REQUIRED IMPORTED_TARGET fontconfig) pkg_check_modules(SECCOMP REQUIRED IMPORTED_TARGET libseccomp) pkg_check_modules(TOML REQUIRED IMPORTED_TARGET tomlplusplus) foreach(name docview_core docview_common docview_font_broker) if(NOT EXISTS "${DOCVIEW_CANONICAL_BUILD}/lib${name}.a") message(FATAL_ERROR "Build the canonical DocView targets first: ${name}") endif() add_library(${name} STATIC IMPORTED) set_target_properties(${name} PROPERTIES IMPORTED_LOCATION "${DOCVIEW_CANONICAL_BUILD}/lib${name}.a") endforeach() qt_add_executable(test_heavy_pdf test_heavy_pdf.cpp "${DOCVIEW_ROOT}/src/app/controller.cpp" "${DOCVIEW_ROOT}/src/app/pdf_canvas.cpp" "${DOCVIEW_ROOT}/src/web/web_profile.cpp" "${DOCVIEW_ROOT}/resources.qrc") target_include_directories(test_heavy_pdf PRIVATE "${DOCVIEW_ROOT}/src") target_link_libraries(test_heavy_pdf PRIVATE docview_core docview_font_broker docview_common PkgConfig::FONTCONFIG PkgConfig::SECCOMP PkgConfig::TOML Qt6::Core Qt6::Gui Qt6::Network Qt6::Quick Qt6::Qml Qt6::QuickControls2 Qt6::WebEngineQuick Qt6::Test) # Use exactly the recorded canonical workers; do not rebuild parser binaries. foreach(worker docview-pdf-worker docview-archive-worker) add_custom_command(TARGET test_heavy_pdf POST_BUILD COMMAND "${CMAKE_COMMAND}" -E create_symlink "${DOCVIEW_CANONICAL_BUILD}/${worker}" "$/${worker}") endforeach()