38 lines
2.0 KiB
CMake
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()
|