diff options
Diffstat (limited to 'src/pdf/CMakeLists.txt')
-rw-r--r-- | src/pdf/CMakeLists.txt | 134 |
1 files changed, 111 insertions, 23 deletions
diff --git a/src/pdf/CMakeLists.txt b/src/pdf/CMakeLists.txt index 9e4004adf..4a54b816e 100644 --- a/src/pdf/CMakeLists.txt +++ b/src/pdf/CMakeLists.txt @@ -1,14 +1,15 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + 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(Nodejs 14.19 REQUIRED) find_package(PkgConfig) if(PkgConfig_FOUND) create_pkg_config_host_wrapper(${CMAKE_CURRENT_BINARY_DIR}) endif() set(buildDir "${CMAKE_CURRENT_BINARY_DIR}") -add_subdirectory(plugins/imageformats/pdf) ## # PDF MODULE @@ -17,30 +18,35 @@ 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 + qpdffile.cpp qpdffile_p.h + qpdflink.cpp qpdflink.h qpdflink_p.h + qpdflinkmodel.cpp qpdflinkmodel.h qpdflinkmodel_p.h + qpdfpagenavigator.cpp qpdfpagenavigator.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 + GENERATE_CPP_EXPORTS ) +add_subdirectory(plugins/imageformats/pdf) + +get_install_config(config) +get_architectures(archs) +list(GET archs 0 arch) + ## # PDF DOCS ## @@ -49,12 +55,22 @@ qt_internal_add_docs(Pdf doc/qtpdf.qdocconf ) +add_code_attributions_target( + TARGET generate_pdf_attributions + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pdf_attributions.qdoc + GN_TARGET :QtPdf + FILE_TEMPLATE doc/about_credits.tmpl + ENTRY_TEMPLATE doc/about_credits_entry.tmpl + BUILDDIR ${buildDir}/${config}/${arch} +) +add_dependencies(generate_pdf_attributions run_pdf_GnDone) +add_dependencies(prepare_docs_Pdf generate_pdf_attributions) ## # TOOLCHAIN SETUP ## -if(LINUX) +if(LINUX OR MINGW OR ANDROID) setup_toolchains() endif() @@ -66,7 +82,6 @@ addSyncTargets(pdf) get_configs(configs) get_architectures(archs) - foreach(arch ${archs}) foreach(config ${configs}) @@ -76,7 +91,9 @@ foreach(arch ${archs}) set(buildGn pdf_${config}_${arch}) add_gn_target(${buildGn} ${config} ${arch} - SOURCES DEFINES CXX_COMPILE_OPTIONS C_COMPILE_OPTIONS INCLUDES MOC_PATH + SOURCES DEFINES CXX_COMPILE_OPTIONS C_COMPILE_OPTIONS + INCLUDES MOC_PATH PNG_INCLUDES JPEG_INCLUDES HARFBUZZ_INCLUDES + FREETYPE_INCLUDES ZLIB_INCLUDES ) resolve_target_includes(gnIncludes Pdf) get_forward_declaration_macro(forwardDeclarationMacro) @@ -99,27 +116,62 @@ foreach(arch ${archs}) list(APPEND gnArgArg qtwebengine_target="${buildDir}/${config}/${arch}:QtPdf" + qt_libpng_config="${buildDir}/${config}/${arch}:qt_libpng_config" + qt_libjpeg_config="${buildDir}/${config}/${arch}:qt_libjpeg_config" + qt_harfbuzz_config="${buildDir}/${config}/${arch}:qt_harfbuzz_config" + qt_freetype_config="${buildDir}/${config}/${arch}:qt_freetype_config" + enable_swiftshader=false + enable_swiftshader_vulkan=false + angle_enable_swiftshader=false + dawn_use_swiftshader=false + use_dawn=false + build_dawn_tests=false + enable_ipc_fuzzer=false enable_remoting=false enable_resource_allowlist_generation=false + enable_vr=false enable_web_speech=false chrome_pgo_phase=0 + strip_absolute_paths_from_debug_symbols=false + use_perfetto_client_library=false + v8_enable_webassembly=false ) - if(LINUX) - list(APPEND gnArgArg - use_x11=false - is_cfi=false - ozone_auto_platforms=false - use_gnome_keyring=false) + if(LINUX OR ANDROID) + list(APPEND gnArgArg + is_cfi=false + ozone_auto_platforms=false + enable_arcore=false + use_ml_inliner=false + ) + extend_gn_list(gnArgArg + ARGS use_system_icu + CONDITION QT_FEATURE_webengine_system_icu + ) + extend_gn_list(gnArgArg + ARGS use_system_libopenjpeg2 + CONDITION QT_FEATURE_webengine_system_libopenjpeg2 + ) endif() if(MACOS) - list(APPEND gnArgArg angle_enable_vulkan=false) + list(APPEND gnArgArg angle_enable_vulkan=false) endif() - if(WIN32) + if(IOS) + list(APPEND gnArgArg enable_base_tracing=false) + extend_gn_list(gnArgArg + ARGS enable_ios_bitcode + CONDITION QT_FEATURE_pdf_bitcode + ) + endif() + if(WIN32 OR ANDROID) list(APPEND gnArgArg ninja_use_custom_environment_files=false safe_browsing_mode=0 ) + extend_gn_list(gnArgArg + ARGS qt_uses_static_runtime + CONDITION QT_FEATURE_pdf_static_runtime + ) endif() extend_gn_list(gnArgArg @@ -146,12 +198,40 @@ foreach(arch ${archs}) ARGS pdf_enable_xfa_tiff CONDITION QT_FEATURE_pdf_xfa_tiff ) + extend_gn_list(gnArgArg + ARGS pdfium_use_system_zlib use_system_zlib + CONDITION QT_FEATURE_webengine_system_zlib + ) + extend_gn_list(gnArgArg + ARGS pdfium_use_system_libpng use_system_libpng + CONDITION QT_FEATURE_webengine_system_libpng + ) + extend_gn_list(gnArgArg + ARGS pdfium_use_qt_libpng + CONDITION QT_FEATURE_webengine_qt_libpng + ) + extend_gn_list(gnArgArg + ARGS pdfium_use_system_libtiff + CONDITION QT_FEATURE_webengine_system_libtiff + ) + extend_gn_list(gnArgArg + ARGS use_qt_libjpeg + CONDITION QT_FEATURE_webengine_qt_libjpeg + ) + extend_gn_list(gnArgArg + ARGS use_qt_harfbuzz + CONDITION QT_FEATURE_webengine_qt_harfbuzz + ) + extend_gn_list(gnArgArg + ARGS use_qt_freetype + CONDITION QT_FEATURE_webengine_qt_freetype + ) add_gn_command( CMAKE_TARGET Pdf NINJA_TARGETS QtPdf GN_TARGET ${buildGn} - GN_ARGS "${gnArgArg}" + GN_ARGS ${gnArgArg} BUILDDIR ${buildDir}/${config}/${arch} MODULE pdf ) @@ -165,8 +245,16 @@ endforeach() # PDF SETUP ## -set(arch ${CMAKE_SYSTEM_PROCESSOR}) +get_architectures(archs) +list(GET archs 0 arch) target_include_directories(Pdf PRIVATE ${buildDir}/$<CONFIG>/${arch}/gen) -add_gn_build_aritfacts_to_target(Pdf QtPdf pdf ${buildDir}) +add_gn_build_artifacts_to_target( + CMAKE_TARGET Pdf + NINJA_TARGET QtPdf + MODULE pdf + BUILDDIR ${buildDir} + COMPLETE_STATIC TRUE + NINJA_STAMP QtPdf.stamp +) add_dependencies(Pdf run_pdf_NinjaDone) |