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.txt260
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)
+