Files
docview/tests/heavy_pdf/CMakeLists.txt
T
2026-09-21 13:41:40 +09:00

38 lines
2.0 KiB
CMake

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}" "$<TARGET_FILE_DIR:test_heavy_pdf>/${worker}")
endforeach()