summaryrefslogtreecommitdiffstats
path: root/src/pdf/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/pdf/CMakeLists.txt')
-rw-r--r--src/pdf/CMakeLists.txt161
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()