diff options
Diffstat (limited to 'src/pdf/CMakeLists.txt')
-rw-r--r-- | src/pdf/CMakeLists.txt | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/src/pdf/CMakeLists.txt b/src/pdf/CMakeLists.txt new file mode 100644 index 000000000..b639b1243 --- /dev/null +++ b/src/pdf/CMakeLists.txt @@ -0,0 +1,161 @@ +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) + + ## + # 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}/$<CONFIG>/${arch}/gen) + add_gn_build_aritfacts_to_target(Pdf QtPdf ON ${buildDir}) +endif() |