diff options
Diffstat (limited to 'src/pdf/CMakeLists.txt')
-rw-r--r-- | src/pdf/CMakeLists.txt | 260 |
1 files changed, 136 insertions, 124 deletions
diff --git a/src/pdf/CMakeLists.txt b/src/pdf/CMakeLists.txt index 12f01a73f..da1aa93ff 100644 --- a/src/pdf/CMakeLists.txt +++ b/src/pdf/CMakeLists.txt @@ -1,14 +1,19 @@ -if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR) - get_filename_component(WEBENGINE_ROOT_SOURCE_DIR - "${CMAKE_CURRENT_LIST_DIR}/../.." REALPATH - ) +cmake_minimum_required(VERSION 3.19) +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(${CMAKE_CURRENT_BINARY_DIR}) 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}") +set(buildDir "${CMAKE_CURRENT_BINARY_DIR}") add_subdirectory(plugins/imageformats/pdf) +## +# PDF MODULE +## + qt_internal_add_module(Pdf SOURCES qpdfbookmarkmodel.cpp qpdfbookmarkmodel.h @@ -36,128 +41,135 @@ qt_internal_add_module(Pdf Qt::Gui ) -make_config_for_gn(Pdf gn_config) -make_install_only(Pdf) +## +# PDF DOCS +## + qt_internal_add_docs(Pdf doc/qtpdf.qdocconf ) + ## -# REPO BUILD +# TOOLCHAIN SETUP ## -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}/$<CONFIG>/${arch}/gen) - add_gn_build_aritfacts_to_target(Pdf QtPdf ${buildDir}) +if(LINUX) + setup_toolchains() endif() + +## +# GN BUILD SETUP +## + +addSyncTargets(pdf) + +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 MOC_PATH RSP_PREFIX + ) + resolve_target_includes(gnIncludes Pdf) + get_forward_declaration_macro(forwardDeclarationMacro) + + extend_gn_target(${buildGn} + MOC_PATH + ${mocFilePath} + RSP_PREFIX + src/pdf/${config}/${arch} + INCLUDES + ${gnIncludes} + ) + + ## + # 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 + ) + + add_gn_command( + CMAKE_TARGET Pdf + NINJA_TARGETS QtPdf + GN_TARGET ${buildGn} + GN_ARGS "${gnArgArg}" + BUILDDIR ${buildDir}/${config}/${arch} + MODULE pdf + ) + + endforeach() + create_cxx_configs(Pdf ${arch}) +endforeach() + + +## +# PDF SETUP +## + +set(arch ${CMAKE_SYSTEM_PROCESSOR}) +target_include_directories(Pdf PRIVATE ${buildDir}/$<CONFIG>/${arch}/gen) +add_gn_build_aritfacts_to_target(Pdf QtPdf pdf ${buildDir}) +add_dependencies(Pdf run_pdf_NinjaDone) + |