[Libreoffice-commits] core.git: 2 commits - bin/update_pch bin/update_pch.sh external/pdfium

Luboš Luňák (via logerrit) logerrit at kemper.freedesktop.org
Sun May 19 07:48:06 UTC 2019


 bin/update_pch                                 |   21 +
 bin/update_pch.sh                              |    3 
 external/pdfium/Library_pdfium.mk              |    3 
 external/pdfium/inc/pch/precompiled_pdfium.cxx |   12 
 external/pdfium/inc/pch/precompiled_pdfium.hxx |  472 +++++++++++++++++++++++++
 5 files changed, 509 insertions(+), 2 deletions(-)

New commits:
commit 34ebd0af8152549c88b0b1fc2e02740de7ffcb77
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Sat May 18 11:43:28 2019 +0200
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Sun May 19 09:47:33 2019 +0200

    add PCH for pdfium
    
    It's an external library, but it's a large C++ lib and it's built
    using gbuild, so this helps too. Here with Clang it cuts build
    time from ~2:40 to ~1:25 (and about halves the CPU user time).
    Hopefully it also helps to reduce the build time for Windows gerrit builds.
    
    Change-Id: Ieef0ea28e0fe1fd216592fca70410075d95ddc54
    Reviewed-on: https://gerrit.libreoffice.org/72517
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>

diff --git a/bin/update_pch b/bin/update_pch
index 372867393c93..ab9ca868381e 100755
--- a/bin/update_pch
+++ b/bin/update_pch
@@ -423,6 +423,10 @@ def filter_ignore(line, module):
             'xmlsec/*',
             'xmlsecurity/xmlsec-wrapper.h',
             ]
+    if module == 'external/pdfium':
+        ignore_list += [
+            'third_party/freetype/include/pstables.h',
+            ]
 
     for i in ignore_list:
         if line.startswith(i):
diff --git a/external/pdfium/Library_pdfium.mk b/external/pdfium/Library_pdfium.mk
index 2bfa8210676d..d96da860d543 100644
--- a/external/pdfium/Library_pdfium.mk
+++ b/external/pdfium/Library_pdfium.mk
@@ -13,9 +13,12 @@ $(eval $(call gb_Library_use_unpacked,pdfium,pdfium))
 
 $(eval $(call gb_Library_set_warnings_not_errors,pdfium))
 
+$(eval $(call gb_Library_set_precompiled_header,pdfium,$(SRCDIR)/external/pdfium/inc/pch/precompiled_pdfium))
+
 $(eval $(call gb_Library_set_include,pdfium,\
     -I$(call gb_UnpackedTarball_get_dir,pdfium) \
     -I$(call gb_UnpackedTarball_get_dir,pdfium)/third_party \
+    -I$(call gb_UnpackedTarball_get_dir,pdfium)/third_party/agg23 \
     $$(INCLUDE) \
 ))
 
diff --git a/external/pdfium/inc/pch/precompiled_pdfium.cxx b/external/pdfium/inc/pch/precompiled_pdfium.cxx
new file mode 100644
index 000000000000..063660fe2152
--- /dev/null
+++ b/external/pdfium/inc/pch/precompiled_pdfium.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "precompiled_pdfium.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/pdfium/inc/pch/precompiled_pdfium.hxx b/external/pdfium/inc/pch/precompiled_pdfium.hxx
new file mode 100644
index 000000000000..282c2a508060
--- /dev/null
+++ b/external/pdfium/inc/pch/precompiled_pdfium.hxx
@@ -0,0 +1,472 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+/*
+ This file has been autogenerated by update_pch.sh. It is possible to edit it
+ manually (such as when an include file has been moved/renamed/removed). All such
+ manual changes will be rewritten by the next run of update_pch.sh (which presumably
+ also fixes all possible problems, so it's usually better to use it).
+
+ Generated on 2019-05-18 14:23:38 using:
+ ./bin/update_pch external/pdfium pdfium --cutoff=1 --exclude:system --include:module --include:local
+
+ If after updating build fails, use the following command to locate conflicting headers:
+ ./bin/update_pch_bisect ./external/pdfium/inc/pch/precompiled_pdfium.hxx "make external/pdfium.build" --find-conflicts
+*/
+
+#if PCH_LEVEL >= 1
+#include <agg_curves.h>
+#include <agg_math.h>
+#include <agg_path_storage.h>
+#include <agg_rasterizer_scanline_aa.h>
+#include <agg_shorten_path.h>
+#include <agg_vcgen_dash.h>
+#include <agg_vcgen_stroke.h>
+#include <algorithm>
+#include <array>
+#include <atomic>
+#include <cassert>
+#include <cctype>
+#include <cfloat>
+#include <climits>
+#include <cmath>
+#include <cstring>
+#include <cwchar>
+#include <cwctype>
+#include <functional>
+#include <iterator>
+#include <limits.h>
+#include <limits>
+#include <list>
+#include <map>
+#include <memory>
+#include <numeric>
+#include <set>
+#include <setjmp.h>
+#include <sstream>
+#include <stack>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <string>
+#include <time.h>
+#include <tuple>
+#include <type_traits>
+#include <utility>
+#include <vector>
+#endif // PCH_LEVEL >= 1
+#if PCH_LEVEL >= 2
+#endif // PCH_LEVEL >= 2
+#if PCH_LEVEL >= 3
+#include <build/build_config.h>
+#include <constants/annotation_common.h>
+#include <constants/annotation_flags.h>
+#include <constants/form_fields.h>
+#include <constants/form_flags.h>
+#include <constants/page_object.h>
+#include <constants/stream_dict_common.h>
+#include <constants/transparency.h>
+#include <core/fdrm/fx_crypt.h>
+#include <core/fpdfapi/cmaps/CNS1/cmaps_cns1.h>
+#include <core/fpdfapi/cmaps/GB1/cmaps_gb1.h>
+#include <core/fpdfapi/cmaps/Japan1/cmaps_japan1.h>
+#include <core/fpdfapi/cmaps/Korea1/cmaps_korea1.h>
+#include <core/fpdfapi/cmaps/cmap_int.h>
+#include <core/fpdfapi/cpdf_modulemgr.h>
+#include <core/fpdfapi/cpdf_pagerendercontext.h>
+#include <core/fpdfapi/edit/cpdf_creator.h>
+#include <core/fpdfapi/edit/cpdf_pagecontentgenerator.h>
+#include <core/fpdfapi/edit/cpdf_pagecontentmanager.h>
+#include <core/fpdfapi/edit/cpdf_stringarchivestream.h>
+#include <core/fpdfapi/font/cfx_cttgsubtable.h>
+#include <core/fpdfapi/font/cfx_stockfontarray.h>
+#include <core/fpdfapi/font/cpdf_cid2unicodemap.h>
+#include <core/fpdfapi/font/cpdf_cidfont.h>
+#include <core/fpdfapi/font/cpdf_cmap.h>
+#include <core/fpdfapi/font/cpdf_cmapmanager.h>
+#include <core/fpdfapi/font/cpdf_cmapparser.h>
+#include <core/fpdfapi/font/cpdf_font.h>
+#include <core/fpdfapi/font/cpdf_fontencoding.h>
+#include <core/fpdfapi/font/cpdf_fontglobals.h>
+#include <core/fpdfapi/font/cpdf_simplefont.h>
+#include <core/fpdfapi/font/cpdf_tounicodemap.h>
+#include <core/fpdfapi/font/cpdf_truetypefont.h>
+#include <core/fpdfapi/font/cpdf_type1font.h>
+#include <core/fpdfapi/font/cpdf_type3char.h>
+#include <core/fpdfapi/font/cpdf_type3font.h>
+#include <core/fpdfapi/page/cpdf_allstates.h>
+#include <core/fpdfapi/page/cpdf_clippath.h>
+#include <core/fpdfapi/page/cpdf_color.h>
+#include <core/fpdfapi/page/cpdf_colorspace.h>
+#include <core/fpdfapi/page/cpdf_colorstate.h>
+#include <core/fpdfapi/page/cpdf_contentmarkitem.h>
+#include <core/fpdfapi/page/cpdf_contentmarks.h>
+#include <core/fpdfapi/page/cpdf_contentparser.h>
+#include <core/fpdfapi/page/cpdf_devicecs.h>
+#include <core/fpdfapi/page/cpdf_docpagedata.h>
+#include <core/fpdfapi/page/cpdf_expintfunc.h>
+#include <core/fpdfapi/page/cpdf_form.h>
+#include <core/fpdfapi/page/cpdf_formobject.h>
+#include <core/fpdfapi/page/cpdf_function.h>
+#include <core/fpdfapi/page/cpdf_generalstate.h>
+#include <core/fpdfapi/page/cpdf_graphicstates.h>
+#include <core/fpdfapi/page/cpdf_iccprofile.h>
+#include <core/fpdfapi/page/cpdf_image.h>
+#include <core/fpdfapi/page/cpdf_imageobject.h>
+#include <core/fpdfapi/page/cpdf_meshstream.h>
+#include <core/fpdfapi/page/cpdf_page.h>
+#include <core/fpdfapi/page/cpdf_pagemodule.h>
+#include <core/fpdfapi/page/cpdf_pageobject.h>
+#include <core/fpdfapi/page/cpdf_pageobjectholder.h>
+#include <core/fpdfapi/page/cpdf_pageobjectlist.h>
+#include <core/fpdfapi/page/cpdf_path.h>
+#include <core/fpdfapi/page/cpdf_pathobject.h>
+#include <core/fpdfapi/page/cpdf_pattern.h>
+#include <core/fpdfapi/page/cpdf_patterncs.h>
+#include <core/fpdfapi/page/cpdf_psengine.h>
+#include <core/fpdfapi/page/cpdf_psfunc.h>
+#include <core/fpdfapi/page/cpdf_sampledfunc.h>
+#include <core/fpdfapi/page/cpdf_shadingobject.h>
+#include <core/fpdfapi/page/cpdf_shadingpattern.h>
+#include <core/fpdfapi/page/cpdf_stitchfunc.h>
+#include <core/fpdfapi/page/cpdf_streamcontentparser.h>
+#include <core/fpdfapi/page/cpdf_streamparser.h>
+#include <core/fpdfapi/page/cpdf_textobject.h>
+#include <core/fpdfapi/page/cpdf_textstate.h>
+#include <core/fpdfapi/page/cpdf_tilingpattern.h>
+#include <core/fpdfapi/parser/cfdf_document.h>
+#include <core/fpdfapi/parser/cpdf_array.h>
+#include <core/fpdfapi/parser/cpdf_boolean.h>
+#include <core/fpdfapi/parser/cpdf_cross_ref_avail.h>
+#include <core/fpdfapi/parser/cpdf_cross_ref_table.h>
+#include <core/fpdfapi/parser/cpdf_crypto_handler.h>
+#include <core/fpdfapi/parser/cpdf_data_avail.h>
+#include <core/fpdfapi/parser/cpdf_dictionary.h>
+#include <core/fpdfapi/parser/cpdf_document.h>
+#include <core/fpdfapi/parser/cpdf_encryptor.h>
+#include <core/fpdfapi/parser/cpdf_flateencoder.h>
+#include <core/fpdfapi/parser/cpdf_hint_tables.h>
+#include <core/fpdfapi/parser/cpdf_indirect_object_holder.h>
+#include <core/fpdfapi/parser/cpdf_linearized_header.h>
+#include <core/fpdfapi/parser/cpdf_name.h>
+#include <core/fpdfapi/parser/cpdf_null.h>
+#include <core/fpdfapi/parser/cpdf_number.h>
+#include <core/fpdfapi/parser/cpdf_object.h>
+#include <core/fpdfapi/parser/cpdf_object_avail.h>
+#include <core/fpdfapi/parser/cpdf_object_stream.h>
+#include <core/fpdfapi/parser/cpdf_object_walker.h>
+#include <core/fpdfapi/parser/cpdf_page_object_avail.h>
+#include <core/fpdfapi/parser/cpdf_parser.h>
+#include <core/fpdfapi/parser/cpdf_read_validator.h>
+#include <core/fpdfapi/parser/cpdf_reference.h>
+#include <core/fpdfapi/parser/cpdf_security_handler.h>
+#include <core/fpdfapi/parser/cpdf_simple_parser.h>
+#include <core/fpdfapi/parser/cpdf_stream.h>
+#include <core/fpdfapi/parser/cpdf_stream_acc.h>
+#include <core/fpdfapi/parser/cpdf_string.h>
+#include <core/fpdfapi/parser/cpdf_syntax_parser.h>
+#include <core/fpdfapi/parser/fpdf_parser_decode.h>
+#include <core/fpdfapi/parser/fpdf_parser_utility.h>
+#include <core/fpdfapi/render/cpdf_charposlist.h>
+#include <core/fpdfapi/render/cpdf_devicebuffer.h>
+#include <core/fpdfapi/render/cpdf_dibbase.h>
+#include <core/fpdfapi/render/cpdf_dibtransferfunc.h>
+#include <core/fpdfapi/render/cpdf_docrenderdata.h>
+#include <core/fpdfapi/render/cpdf_imagecacheentry.h>
+#include <core/fpdfapi/render/cpdf_imageloader.h>
+#include <core/fpdfapi/render/cpdf_imagerenderer.h>
+#include <core/fpdfapi/render/cpdf_pagerendercache.h>
+#include <core/fpdfapi/render/cpdf_progressiverenderer.h>
+#include <core/fpdfapi/render/cpdf_rendercontext.h>
+#include <core/fpdfapi/render/cpdf_renderoptions.h>
+#include <core/fpdfapi/render/cpdf_renderstatus.h>
+#include <core/fpdfapi/render/cpdf_scaledrenderbuffer.h>
+#include <core/fpdfapi/render/cpdf_textrenderer.h>
+#include <core/fpdfapi/render/cpdf_transferfunc.h>
+#include <core/fpdfapi/render/cpdf_transparency.h>
+#include <core/fpdfapi/render/cpdf_type3cache.h>
+#include <core/fpdfapi/render/cpdf_type3glyphs.h>
+#include <core/fpdfdoc/cline.h>
+#include <core/fpdfdoc/cpdf_aaction.h>
+#include <core/fpdfdoc/cpdf_action.h>
+#include <core/fpdfdoc/cpdf_actionfields.h>
+#include <core/fpdfdoc/cpdf_annot.h>
+#include <core/fpdfdoc/cpdf_annotlist.h>
+#include <core/fpdfdoc/cpdf_apsettings.h>
+#include <core/fpdfdoc/cpdf_bookmark.h>
+#include <core/fpdfdoc/cpdf_bookmarktree.h>
+#include <core/fpdfdoc/cpdf_defaultappearance.h>
+#include <core/fpdfdoc/cpdf_dest.h>
+#include <core/fpdfdoc/cpdf_docjsactions.h>
+#include <core/fpdfdoc/cpdf_filespec.h>
+#include <core/fpdfdoc/cpdf_formcontrol.h>
+#include <core/fpdfdoc/cpdf_formfield.h>
+#include <core/fpdfdoc/cpdf_iconfit.h>
+#include <core/fpdfdoc/cpdf_interactiveform.h>
+#include <core/fpdfdoc/cpdf_link.h>
+#include <core/fpdfdoc/cpdf_linklist.h>
+#include <core/fpdfdoc/cpdf_metadata.h>
+#include <core/fpdfdoc/cpdf_nametree.h>
+#include <core/fpdfdoc/cpdf_numbertree.h>
+#include <core/fpdfdoc/cpdf_occontext.h>
+#include <core/fpdfdoc/cpdf_pagelabel.h>
+#include <core/fpdfdoc/cpdf_structelement.h>
+#include <core/fpdfdoc/cpdf_structtree.h>
+#include <core/fpdfdoc/cpdf_variabletext.h>
+#include <core/fpdfdoc/cpdf_viewerpreferences.h>
+#include <core/fpdfdoc/cpvt_fontmap.h>
+#include <core/fpdfdoc/cpvt_generateap.h>
+#include <core/fpdfdoc/cpvt_word.h>
+#include <core/fpdfdoc/cpvt_wordinfo.h>
+#include <core/fpdfdoc/csection.h>
+#include <core/fpdfdoc/ctypeset.h>
+#include <core/fpdfdoc/ipvt_fontmap.h>
+#include <core/fpdftext/cpdf_linkextract.h>
+#include <core/fpdftext/cpdf_textpage.h>
+#include <core/fpdftext/cpdf_textpagefind.h>
+#include <core/fpdftext/unicodenormalizationdata.h>
+#include <core/fxcodec/JBig2_DocumentContext.h>
+#include <core/fxcodec/bmp/fx_bmp.h>
+#include <core/fxcodec/codec/ccodec_basicmodule.h>
+#include <core/fxcodec/codec/ccodec_faxmodule.h>
+#include <core/fxcodec/codec/ccodec_flatemodule.h>
+#include <core/fxcodec/codec/ccodec_gifmodule.h>
+#include <core/fxcodec/codec/ccodec_iccmodule.h>
+#include <core/fxcodec/codec/ccodec_jbig2module.h>
+#include <core/fxcodec/codec/ccodec_jpegmodule.h>
+#include <core/fxcodec/codec/ccodec_jpxmodule.h>
+#include <core/fxcodec/codec/ccodec_scanlinedecoder.h>
+#include <core/fxcodec/codec/cfx_codec_memory.h>
+#include <core/fxcodec/codec/cjpx_decoder.h>
+#include <core/fxcodec/codec/codec_int.h>
+#include <core/fxcodec/fx_codec.h>
+#include <core/fxcodec/gif/cfx_gif.h>
+#include <core/fxcodec/gif/cfx_gifcontext.h>
+#include <core/fxcodec/gif/cfx_lzwdecompressor.h>
+#include <core/fxcodec/jbig2/JBig2_ArithDecoder.h>
+#include <core/fxcodec/jbig2/JBig2_ArithIntDecoder.h>
+#include <core/fxcodec/jbig2/JBig2_BitStream.h>
+#include <core/fxcodec/jbig2/JBig2_Context.h>
+#include <core/fxcodec/jbig2/JBig2_Define.h>
+#include <core/fxcodec/jbig2/JBig2_GrdProc.h>
+#include <core/fxcodec/jbig2/JBig2_GrrdProc.h>
+#include <core/fxcodec/jbig2/JBig2_HtrdProc.h>
+#include <core/fxcodec/jbig2/JBig2_HuffmanDecoder.h>
+#include <core/fxcodec/jbig2/JBig2_HuffmanTable.h>
+#include <core/fxcodec/jbig2/JBig2_Image.h>
+#include <core/fxcodec/jbig2/JBig2_PatternDict.h>
+#include <core/fxcodec/jbig2/JBig2_PddProc.h>
+#include <core/fxcodec/jbig2/JBig2_SddProc.h>
+#include <core/fxcodec/jbig2/JBig2_Segment.h>
+#include <core/fxcodec/jbig2/JBig2_SymbolDict.h>
+#include <core/fxcodec/jbig2/JBig2_TrdProc.h>
+#include <core/fxcrt/autorestorer.h>
+#include <core/fxcrt/bytestring.h>
+#include <core/fxcrt/cfx_binarybuf.h>
+#include <core/fxcrt/cfx_bitstream.h>
+#include <core/fxcrt/cfx_datetime.h>
+#include <core/fxcrt/cfx_fixedbufgrow.h>
+#include <core/fxcrt/cfx_memorystream.h>
+#include <core/fxcrt/cfx_readonlymemorystream.h>
+#include <core/fxcrt/cfx_seekablemultistream.h>
+#include <core/fxcrt/cfx_seekablestreamproxy.h>
+#include <core/fxcrt/cfx_utf8decoder.h>
+#include <core/fxcrt/cfx_utf8encoder.h>
+#include <core/fxcrt/cfx_widetextbuf.h>
+#include <core/fxcrt/css/cfx_css.h>
+#include <core/fxcrt/css/cfx_csscolorvalue.h>
+#include <core/fxcrt/css/cfx_csscomputedstyle.h>
+#include <core/fxcrt/css/cfx_csscustomproperty.h>
+#include <core/fxcrt/css/cfx_cssdata.h>
+#include <core/fxcrt/css/cfx_cssdeclaration.h>
+#include <core/fxcrt/css/cfx_cssenumvalue.h>
+#include <core/fxcrt/css/cfx_cssexttextbuf.h>
+#include <core/fxcrt/css/cfx_cssnumbervalue.h>
+#include <core/fxcrt/css/cfx_csspropertyholder.h>
+#include <core/fxcrt/css/cfx_cssrulecollection.h>
+#include <core/fxcrt/css/cfx_cssselector.h>
+#include <core/fxcrt/css/cfx_cssstringvalue.h>
+#include <core/fxcrt/css/cfx_cssstylerule.h>
+#include <core/fxcrt/css/cfx_cssstyleselector.h>
+#include <core/fxcrt/css/cfx_cssstylesheet.h>
+#include <core/fxcrt/css/cfx_csssyntaxparser.h>
+#include <core/fxcrt/css/cfx_csstextbuf.h>
+#include <core/fxcrt/css/cfx_cssvalue.h>
+#include <core/fxcrt/css/cfx_cssvaluelist.h>
+#include <core/fxcrt/css/cfx_cssvaluelistparser.h>
+#include <core/fxcrt/fileaccess_iface.h>
+#include <core/fxcrt/fx_bidi.h>
+#include <core/fxcrt/fx_codepage.h>
+#include <core/fxcrt/fx_coordinates.h>
+#include <core/fxcrt/fx_extension.h>
+#include <core/fxcrt/fx_memory.h>
+#include <core/fxcrt/fx_number.h>
+#include <core/fxcrt/fx_random.h>
+#include <core/fxcrt/fx_safe_types.h>
+#include <core/fxcrt/fx_stream.h>
+#include <core/fxcrt/fx_string.h>
+#include <core/fxcrt/fx_system.h>
+#include <core/fxcrt/fx_unicode.h>
+#include <core/fxcrt/maybe_owned.h>
+#include <core/fxcrt/pauseindicator_iface.h>
+#include <core/fxcrt/retain_ptr.h>
+#include <core/fxcrt/string_pool_template.h>
+#include <core/fxcrt/unowned_ptr.h>
+#include <core/fxcrt/widestring.h>
+#include <core/fxcrt/xml/cfx_xmlchardata.h>
+#include <core/fxcrt/xml/cfx_xmldocument.h>
+#include <core/fxcrt/xml/cfx_xmlelement.h>
+#include <core/fxcrt/xml/cfx_xmlinstruction.h>
+#include <core/fxcrt/xml/cfx_xmlnode.h>
+#include <core/fxcrt/xml/cfx_xmlparser.h>
+#include <core/fxcrt/xml/cfx_xmltext.h>
+#include <core/fxge/agg/fx_agg_driver.h>
+#include <core/fxge/cfx_cliprgn.h>
+#include <core/fxge/cfx_color.h>
+#include <core/fxge/cfx_defaultrenderdevice.h>
+#include <core/fxge/cfx_facecache.h>
+#include <core/fxge/cfx_folderfontinfo.h>
+#include <core/fxge/cfx_font.h>
+#include <core/fxge/cfx_fontcache.h>
+#include <core/fxge/cfx_fontmapper.h>
+#include <core/fxge/cfx_fontmgr.h>
+#include <core/fxge/cfx_gemodule.h>
+#include <core/fxge/cfx_glyphbitmap.h>
+#include <core/fxge/cfx_graphstate.h>
+#include <core/fxge/cfx_graphstatedata.h>
+#include <core/fxge/cfx_pathdata.h>
+#include <core/fxge/cfx_renderdevice.h>
+#include <core/fxge/cfx_substfont.h>
+#include <core/fxge/cfx_unicodeencoding.h>
+#include <core/fxge/cttfontdesc.h>
+#include <core/fxge/dib/cfx_bitmapcomposer.h>
+#include <core/fxge/dib/cfx_bitmapstorer.h>
+#include <core/fxge/dib/cfx_dibbase.h>
+#include <core/fxge/dib/cfx_dibextractor.h>
+#include <core/fxge/dib/cfx_dibitmap.h>
+#include <core/fxge/dib/cfx_filtereddib.h>
+#include <core/fxge/dib/cfx_imagerenderer.h>
+#include <core/fxge/dib/cfx_imagestretcher.h>
+#include <core/fxge/dib/cfx_imagetransformer.h>
+#include <core/fxge/dib/cfx_scanlinecompositor.h>
+#include <core/fxge/dib/cstretchengine.h>
+#include <core/fxge/dib/scanlinecomposer_iface.h>
+#include <core/fxge/fontdata/chromefontdata/chromefontdata.h>
+#include <core/fxge/fx_dib.h>
+#include <core/fxge/fx_font.h>
+#include <core/fxge/fx_freetype.h>
+#include <core/fxge/renderdevicedriver_iface.h>
+#include <core/fxge/scoped_font_transform.h>
+#include <core/fxge/systemfontinfo_iface.h>
+#include <core/fxge/text_glyph_pos.h>
+#include <fpdfsdk/cfx_systemhandler.h>
+#include <fpdfsdk/cpdf_annotcontext.h>
+#include <fpdfsdk/cpdfsdk_actionhandler.h>
+#include <fpdfsdk/cpdfsdk_annot.h>
+#include <fpdfsdk/cpdfsdk_annothandlermgr.h>
+#include <fpdfsdk/cpdfsdk_annotiteration.h>
+#include <fpdfsdk/cpdfsdk_annotiterator.h>
+#include <fpdfsdk/cpdfsdk_baannot.h>
+#include <fpdfsdk/cpdfsdk_baannothandler.h>
+#include <fpdfsdk/cpdfsdk_customaccess.h>
+#include <fpdfsdk/cpdfsdk_fieldaction.h>
+#include <fpdfsdk/cpdfsdk_filewriteadapter.h>
+#include <fpdfsdk/cpdfsdk_formfillenvironment.h>
+#include <fpdfsdk/cpdfsdk_helpers.h>
+#include <fpdfsdk/cpdfsdk_interactiveform.h>
+#include <fpdfsdk/cpdfsdk_pageview.h>
+#include <fpdfsdk/cpdfsdk_widget.h>
+#include <fpdfsdk/cpdfsdk_widgethandler.h>
+#include <fpdfsdk/formfiller/cba_fontmap.h>
+#include <fpdfsdk/formfiller/cffl_button.h>
+#include <fpdfsdk/formfiller/cffl_checkbox.h>
+#include <fpdfsdk/formfiller/cffl_combobox.h>
+#include <fpdfsdk/formfiller/cffl_formfiller.h>
+#include <fpdfsdk/formfiller/cffl_interactiveformfiller.h>
+#include <fpdfsdk/formfiller/cffl_listbox.h>
+#include <fpdfsdk/formfiller/cffl_pushbutton.h>
+#include <fpdfsdk/formfiller/cffl_radiobutton.h>
+#include <fpdfsdk/formfiller/cffl_textfield.h>
+#include <fpdfsdk/formfiller/cffl_textobject.h>
+#include <fpdfsdk/ipdfsdk_annothandler.h>
+#include <fpdfsdk/ipdfsdk_pauseadapter.h>
+#include <fpdfsdk/pwl/cpwl_appstream.h>
+#include <fpdfsdk/pwl/cpwl_button.h>
+#include <fpdfsdk/pwl/cpwl_caret.h>
+#include <fpdfsdk/pwl/cpwl_combo_box.h>
+#include <fpdfsdk/pwl/cpwl_edit.h>
+#include <fpdfsdk/pwl/cpwl_edit_ctrl.h>
+#include <fpdfsdk/pwl/cpwl_edit_impl.h>
+#include <fpdfsdk/pwl/cpwl_icon.h>
+#include <fpdfsdk/pwl/cpwl_list_box.h>
+#include <fpdfsdk/pwl/cpwl_list_impl.h>
+#include <fpdfsdk/pwl/cpwl_scroll_bar.h>
+#include <fpdfsdk/pwl/cpwl_special_button.h>
+#include <fpdfsdk/pwl/cpwl_timer.h>
+#include <fpdfsdk/pwl/cpwl_timer_handler.h>
+#include <fpdfsdk/pwl/cpwl_wnd.h>
+#include <fxjs/cjs_event_context_stub.h>
+#include <fxjs/cjs_runtimestub.h>
+#include <fxjs/ijs_event_context.h>
+#include <fxjs/ijs_runtime.h>
+#include <public/fpdf_annot.h>
+#include <public/fpdf_attachment.h>
+#include <public/fpdf_catalog.h>
+#include <public/fpdf_dataavail.h>
+#include <public/fpdf_doc.h>
+#include <public/fpdf_edit.h>
+#include <public/fpdf_ext.h>
+#include <public/fpdf_flatten.h>
+#include <public/fpdf_formfill.h>
+#include <public/fpdf_fwlevent.h>
+#include <public/fpdf_progressive.h>
+#include <public/fpdf_save.h>
+#include <public/fpdf_searchex.h>
+#include <public/fpdf_structtree.h>
+#include <public/fpdf_sysfontinfo.h>
+#include <public/fpdf_text.h>
+#include <public/fpdf_transformpage.h>
+#include <public/fpdfview.h>
+#include <third_party/agg23/agg_conv_dash.h>
+#include <third_party/agg23/agg_conv_stroke.h>
+#include <third_party/agg23/agg_curves.h>
+#include <third_party/agg23/agg_path_storage.h>
+#include <third_party/agg23/agg_pixfmt_gray.h>
+#include <third_party/agg23/agg_rasterizer_scanline_aa.h>
+#include <third_party/agg23/agg_renderer_scanline.h>
+#include <third_party/agg23/agg_scanline_u.h>
+#include <third_party/base/allocator/partition_allocator/address_space_randomization.h>
+#include <third_party/base/allocator/partition_allocator/oom.h>
+#include <third_party/base/allocator/partition_allocator/oom_callback.h>
+#include <third_party/base/allocator/partition_allocator/page_allocator.h>
+#include <third_party/base/allocator/partition_allocator/page_allocator_internal.h>
+#include <third_party/base/allocator/partition_allocator/partition_alloc.h>
+#include <third_party/base/allocator/partition_allocator/partition_alloc_constants.h>
+#include <third_party/base/allocator/partition_allocator/partition_bucket.h>
+#include <third_party/base/allocator/partition_allocator/partition_direct_map_extent.h>
+#include <third_party/base/allocator/partition_allocator/partition_oom.h>
+#include <third_party/base/allocator/partition_allocator/partition_page.h>
+#include <third_party/base/allocator/partition_allocator/partition_root_base.h>
+#include <third_party/base/allocator/partition_allocator/spin_lock.h>
+#include <third_party/base/bits.h>
+#include <third_party/base/compiler_specific.h>
+#include <third_party/base/debug/alias.h>
+#include <third_party/base/logging.h>
+#include <third_party/base/numerics/safe_conversions.h>
+#include <third_party/base/numerics/safe_math.h>
+#include <third_party/base/optional.h>
+#include <third_party/base/ptr_util.h>
+#include <third_party/base/span.h>
+#include <third_party/base/stl_util.h>
+#include <third_party/skia_shared/SkFloatToDecimal.h>
+#endif // PCH_LEVEL >= 3
+#if PCH_LEVEL >= 4
+#endif // PCH_LEVEL >= 4
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 74790206e182031bcf01c628622e2b646f699530
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Sat May 18 14:03:24 2019 +0200
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Sun May 19 09:47:20 2019 +0200

    make update_pch also work with libs in external/
    
    Change-Id: I65b3461fd227e7e997b82a84631bbd5d00b28eb6
    Reviewed-on: https://gerrit.libreoffice.org/72520
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>

diff --git a/bin/update_pch b/bin/update_pch
index 0ccf38f347f5..372867393c93 100755
--- a/bin/update_pch
+++ b/bin/update_pch
@@ -520,7 +520,9 @@ def sort_by_category(list, root, module, filter_local):
 def parse_makefile(groups, lines, lineno, lastif, ifstack):
 
     inobjects = False
+    ingeneratedobjects = False
     inelse = False
+    suffix = 'cxx'
     os_cond_re = re.compile('(ifeq|ifneq)\s*\(\$\(OS\)\,(\w*)\)')
 
     line = lines[lineno]
@@ -542,12 +544,21 @@ def parse_makefile(groups, lines, lineno, lastif, ifstack):
 
         if line == '))':
             inobjects = False
+            ingeneratedobjects = False
         elif 'add_exception_objects' in line or \
              'add_cxxobject' in line:
              inobjects = True
              #print('inobjects')
              #if ifstack and not SILENT:
                 #sys.stderr.write('Sources in a conditional, ignoring for now.\n')
+        elif 'add_generated_exception_objects' in line or \
+             'add_generated_cxxobject' in line:
+             ingeneratedobjects = True
+        elif 'set_generated_cxx_suffix' in line:
+            suffix_re = re.compile('.*set_generated_cxx_suffix,[^,]*,([^)]*).*')
+            match = suffix_re.match(line)
+            if match:
+                suffix = match.group(1)
         elif line.startswith('if'):
             lineno = parse_makefile(groups, lines, lineno, line, ifstack+1)
             continue
@@ -557,10 +568,10 @@ def parse_makefile(groups, lines, lineno, lastif, ifstack):
             continue
         elif line.startswith('else'):
             inelse = True
-        elif inobjects:
+        elif inobjects or ingeneratedobjects:
             if EXCLUDE_SYSTEM and ifstack:
                 continue
-            file = line + '.cxx'
+            file = line + '.' + suffix
             if ',' in line or '(' in line or ')' in line:
                 #print('passing: ' + line)
                 pass # $if() probably, or something similar
@@ -582,6 +593,8 @@ def parse_makefile(groups, lines, lineno, lastif, ifstack):
 
                 if osname not in groups:
                     groups[osname] = []
+                if ingeneratedobjects:
+                    file = 'workdir/' + file
                 groups[osname].append(file)
 
     return groups
diff --git a/bin/update_pch.sh b/bin/update_pch.sh
index c4a5f3d6d88a..6ea8eb664cf0 100755
--- a/bin/update_pch.sh
+++ b/bin/update_pch.sh
@@ -42,6 +42,9 @@ for x in $headers; do
         header=$x
         echo updating `echo $header | sed -e s%$root/%%`
         module=`readlink -f $header | sed -e s%$root/%% -e s%/.*%%`
+        if [ "$module" = "external" ]; then
+            module=external/`readlink -f $header | sed -e s%$root/external/%% -e s%/.*%%`
+        fi
         libname=`echo $header | sed -e s/.*precompiled_// -e s/\.hxx//`
 
         ./bin/update_pch "$module" "$libname"


More information about the Libreoffice-commits mailing list