if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR) get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../.." REALPATH ) endif() find_package(Qt6 ${PROJECT_VERSION} REQUIRED COMPONENTS Gui Network OpenGL Quick) include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake) set(buildDir "${CMAKE_CURRENT_BINARY_DIR}") add_subdirectory(plugins/imageformats/pdf) qt_internal_add_module(Pdf SOURCES qpdfbookmarkmodel.cpp qpdfbookmarkmodel.h qpdfdestination.cpp qpdfdestination.h qpdfdestination_p.h qpdfdocument.cpp qpdfdocument.h qpdfdocument_p.h qpdfdocumentrenderoptions.h qpdflinkmodel.cpp qpdflinkmodel_p.h qpdflinkmodel_p_p.h qpdfpagenavigation.cpp qpdfpagenavigation.h qpdfpagerenderer.cpp qpdfpagerenderer.h qpdfsearchmodel.cpp qpdfsearchmodel.h qpdfsearchmodel_p.h qpdfsearchresult.cpp qpdfsearchresult.h qpdfsearchresult_p.h qpdfselection.cpp qpdfselection.h qpdfselection_p.h qtpdfglobal.h qpdfnamespace.h INCLUDE_DIRECTORIES ../3rdparty/chromium DEFINES QT_BUILD_PDF_LIB NOMINMAX LIBRARIES Qt::CorePrivate Qt::Network PUBLIC_LIBRARIES Qt::Core Qt::Gui ) make_config_for_gn(Pdf gn_config) make_install_only(Pdf) qt_internal_add_docs(Pdf doc/qtpdf.qdocconf ) ## # REPO BUILD ## if(WEBENGINE_REPO_BUILD) find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) find_package(Gn ${QT_REPO_MODULE_VERSION} EXACT REQUIRED) find_package(Ninja 1.7.2 REQUIRED) find_package(Python2 2.7.5 REQUIRED) find_package(Nodejs 10.19 REQUIRED) find_package(PkgConfig) if(PkgConfig_FOUND) create_pkg_config_host_wrapper() endif() ## # TOOLCHAIN SETUP ## if(LINUX) setup_toolchains() endif() ## # MULTICONFIG SETUP ## get_configs(configs) get_architectures(archs) foreach(arch ${archs}) foreach(config ${configs}) ## # BULID.gn SETUP ## set(buildGn pdf_${config}_${arch}) add_gn_target(${buildGn} ${config} ${arch} SOURCES DEFINES CXX_COMPILE_OPTIONS C_COMPILE_OPTIONS INCLUDES) resolve_target_includes(gnIncludes Pdf) get_forward_declaration_macro(forwardDeclarationMacro) read_gn_target(${buildGn} ${WEBENGINE_ROOT_BUILD_DIR}/src/pdf/${config}/gn_config.cxx.cmake) read_gn_target(${buildGn} ${WEBENGINE_ROOT_BUILD_DIR}/src/pdf/${config}/gn_config.c.cmake) configure_gn_target(${buildGn} ${config} ${WEBENGINE_ROOT_SOURCE_DIR}/src/pdf/configure/BUILD.root.gn.in "${buildDir}/${config}/${arch}/BUILD.gn" pdf/${config}/${arch} ) ## # GN PARAMETERS ## unset(gnArgArg) append_build_type_setup(gnArgArg) append_compiler_linker_sdk_setup(gnArgArg) append_sanitizer_setup(gnArgArg) append_toolchain_setup(gnArgArg) append_pkg_config_setup(gnArgArg) list(APPEND gnArgArg qtwebengine_target="${buildDir}/${config}/${arch}:QtPdf" enable_remoting=false enable_web_speech=false chrome_pgo_phase=0 ) if(LINUX) list(APPEND gnArgArg use_x11=false is_cfi=false ozone_auto_platforms=false use_gnome_keyring=false) endif() if(MACOS) list(APPEND gnArgArg angle_enable_vulkan=false) endif() if(WIN32) list(APPEND gnArgArg ninja_use_custom_environment_files=false safe_browsing_mode=0 ) endif() extend_gn_list(gnArgArg ARGS pdf_enable_v8 CONDITION QT_FEATURE_pdf_v8 ) extend_gn_list(gnArgArg ARGS pdf_enable_xfa CONDITION QT_FEATURE_pdf_xfa ) extend_gn_list(gnArgArg ARGS pdf_enable_xfa_bmp CONDITION QT_FEATURE_pdf_xfa_bmp ) extend_gn_list(gnArgArg ARGS pdf_enable_xfa_gif CONDITION QT_FEATURE_pdf_xfa_gif ) extend_gn_list(gnArgArg ARGS pdf_enable_xfa_png CONDITION QT_FEATURE_pdf_xfa_png ) extend_gn_list(gnArgArg ARGS pdf_enable_xfa_tiff CONDITION QT_FEATURE_pdf_xfa_tiff ) ## # GN CALL ## execute_gn(gnArgArg) endforeach() endforeach() set(arch ${CMAKE_SYSTEM_PROCESSOR}) target_include_directories(Pdf PRIVATE ${buildDir}/$/${arch}/gen) add_gn_build_aritfacts_to_target(Pdf QtPdf ${buildDir}) endif()