summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/update_pch10
-rwxr-xr-xbin/update_pch.sh2
-rw-r--r--external/clucene/Library_clucene.mk2
-rw-r--r--external/clucene/inc/pch/precompiled_clucene.cxx12
-rw-r--r--external/clucene/inc/pch/precompiled_clucene.hxx108
-rw-r--r--external/liborcus/Library_orcus-parser.mk2
-rw-r--r--external/liborcus/Library_orcus.mk2
-rw-r--r--external/liborcus/UnpackedTarball_liborcus.mk1
-rw-r--r--external/liborcus/fix-pch.patch.011
-rw-r--r--external/liborcus/inc/pch/precompiled_orcus-parser.cxx12
-rw-r--r--external/liborcus/inc/pch/precompiled_orcus-parser.hxx88
-rw-r--r--external/liborcus/inc/pch/precompiled_orcus.cxx12
-rw-r--r--external/liborcus/inc/pch/precompiled_orcus.hxx108
-rw-r--r--external/libstaroffice/Library_staroffice.mk2
-rw-r--r--external/libstaroffice/inc/pch/precompiled_staroffice.cxx12
-rw-r--r--external/libstaroffice/inc/pch/precompiled_staroffice.hxx59
-rw-r--r--external/libwpd/Library_wpd.mk3
-rw-r--r--external/libwpd/inc/pch/precompiled_wpd.cxx12
-rw-r--r--external/libwpd/inc/pch/precompiled_wpd.hxx52
-rw-r--r--external/libwps/Library_wps.mk3
-rw-r--r--external/libwps/inc/pch/precompiled_wps.cxx12
-rw-r--r--external/libwps/inc/pch/precompiled_wps.hxx64
22 files changed, 588 insertions, 1 deletions
diff --git a/bin/update_pch b/bin/update_pch
index 0fd06b5bdbd5..62ed9e773779 100755
--- a/bin/update_pch
+++ b/bin/update_pch
@@ -426,6 +426,16 @@ def filter_ignore(line, module):
ignore_list += [
'third_party/freetype/include/pstables.h',
]
+ if module == 'external/clucene':
+ ignore_list += [
+ '_bufferedstream.h',
+ '_condition.h',
+ '_gunichartables.h',
+ '_threads.h',
+ 'error.h',
+ 'CLucene/LuceneThreads.h',
+ 'CLucene/config/_threads.h'
+ ]
for i in ignore_list:
if line.startswith(i):
diff --git a/bin/update_pch.sh b/bin/update_pch.sh
index bc7742ea952e..5299242b9d7c 100755
--- a/bin/update_pch.sh
+++ b/bin/update_pch.sh
@@ -42,7 +42,7 @@ for x in $headers; do
fi
else
header=$x
- local update_msg=`echo $header | sed -e s%$root/%%`
+ update_msg=`echo $header | sed -e s%$root/%%`
module=`readlink -f $header | sed -e s%$root/%% -e s%/.*%%`
if [ "$module" = "pch" ]; then
continue # PCH's in pch/inc/pch/ are handled manually
diff --git a/external/clucene/Library_clucene.mk b/external/clucene/Library_clucene.mk
index a6dc8576f0b1..6f585f6f2bfa 100644
--- a/external/clucene/Library_clucene.mk
+++ b/external/clucene/Library_clucene.mk
@@ -23,6 +23,8 @@ $(eval $(call gb_Library_set_include,clucene,\
$$(INCLUDE) \
))
+$(eval $(call gb_Library_set_precompiled_header,clucene,external/clucene/inc/pch/precompiled_clucene))
+
$(eval $(call gb_Library_add_defs,clucene,\
-Dclucene_shared_EXPORTS \
-Dclucene_core_EXPORTS \
diff --git a/external/clucene/inc/pch/precompiled_clucene.cxx b/external/clucene/inc/pch/precompiled_clucene.cxx
new file mode 100644
index 000000000000..98e81ca8ed41
--- /dev/null
+++ b/external/clucene/inc/pch/precompiled_clucene.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_clucene.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/clucene/inc/pch/precompiled_clucene.hxx b/external/clucene/inc/pch/precompiled_clucene.hxx
new file mode 100644
index 000000000000..f68f71e8754f
--- /dev/null
+++ b/external/clucene/inc/pch/precompiled_clucene.hxx
@@ -0,0 +1,108 @@
+/* -*- 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-10-13 10:16:55 using:
+ ./bin/update_pch external/clucene clucene --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/clucene/inc/pch/precompiled_clucene.hxx "make external/clucene.build" --find-conflicts
+*/
+
+#if PCH_LEVEL >= 1
+#include <algorithm>
+#include <assert.h>
+#include <cctype>
+#include <climits>
+#include <errno.h>
+#include <fcntl.h>
+#include <iostream>
+#include <limits.h>
+#include <map>
+#include <sstream>
+#include <zlib.h>
+#endif // PCH_LEVEL >= 1
+#if PCH_LEVEL >= 2
+#endif // PCH_LEVEL >= 2
+#if PCH_LEVEL >= 3
+#include <CLucene/_ApiHeader.h>
+#include <CLucene/_SharedHeader.h>
+#include <CLucene/analysis/AnalysisHeader.h>
+#include <CLucene/analysis/Analyzers.h>
+#include <CLucene/analysis/cjk/CJKAnalyzer.h>
+#include <CLucene/analysis/standard/StandardFilter.h>
+#include <CLucene/analysis/standard/StandardTokenizer.h>
+#include <CLucene/document/DateField.h>
+#include <CLucene/document/DateTools.h>
+#include <CLucene/document/Document.h>
+#include <CLucene/document/Field.h>
+#include <CLucene/document/FieldSelector.h>
+#include <CLucene/index/IndexReader.h>
+#include <CLucene/index/IndexWriter.h>
+#include <CLucene/index/MergePolicy.h>
+#include <CLucene/index/MultipleTermPositions.h>
+#include <CLucene/index/Term.h>
+#include <CLucene/index/TermVector.h>
+#include <CLucene/index/Terms.h>
+#include <CLucene/index/_IndexFileNameFilter.h>
+#include <CLucene/index/_IndexFileNames.h>
+#include <CLucene/index/_Term.h>
+#include <CLucene/search/BooleanClause.h>
+#include <CLucene/search/BooleanQuery.h>
+#include <CLucene/search/ConstantScoreQuery.h>
+#include <CLucene/search/Explanation.h>
+#include <CLucene/search/FieldCache.h>
+#include <CLucene/search/FieldSortedHitQueue.h>
+#include <CLucene/search/FuzzyQuery.h>
+#include <CLucene/search/IndexSearcher.h>
+#include <CLucene/search/MatchAllDocsQuery.h>
+#include <CLucene/search/MultiPhraseQuery.h>
+#include <CLucene/search/PhraseQuery.h>
+#include <CLucene/search/PrefixQuery.h>
+#include <CLucene/search/Query.h>
+#include <CLucene/search/RangeQuery.h>
+#include <CLucene/search/Scorer.h>
+#include <CLucene/search/SearchHeader.h>
+#include <CLucene/search/Similarity.h>
+#include <CLucene/search/Sort.h>
+#include <CLucene/search/TermQuery.h>
+#include <CLucene/search/WildcardQuery.h>
+#include <CLucene/search/spans/Spans.h>
+#include <CLucene/snowball/SnowballFilter.h>
+#include <CLucene/store/Directory.h>
+#include <CLucene/store/FSDirectory.h>
+#include <CLucene/store/IndexInput.h>
+#include <CLucene/store/IndexOutput.h>
+#include <CLucene/store/Lock.h>
+#include <CLucene/store/LockFactory.h>
+#include <CLucene/store/_Lock.h>
+#include <CLucene/store/_RAMDirectory.h>
+#include <CLucene/util/Array.h>
+#include <CLucene/util/BitSet.h>
+#include <CLucene/util/CLStreams.h>
+#include <CLucene/util/Misc.h>
+#include <CLucene/util/PriorityQueue.h>
+#include <CLucene/util/StringBuffer.h>
+#include <CLucene/util/VoidList.h>
+#include <CLucene/util/_Arrays.h>
+#include <CLucene/util/_FastCharStream.h>
+#include <CLucene/util/_MD5Digester.h>
+#include <CLucene/util/_StringIntern.h>
+#include <CLucene/util/_ThreadLocal.h>
+#include <CLucene/util/dirent.h>
+#endif // PCH_LEVEL >= 3
+#if PCH_LEVEL >= 4
+#endif // PCH_LEVEL >= 4
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/liborcus/Library_orcus-parser.mk b/external/liborcus/Library_orcus-parser.mk
index d25d82163d9a..d3cbddbb8cec 100644
--- a/external/liborcus/Library_orcus-parser.mk
+++ b/external/liborcus/Library_orcus-parser.mk
@@ -21,6 +21,8 @@ $(eval $(call gb_Library_use_externals,orcus-parser,\
$(eval $(call gb_Library_set_warnings_disabled,orcus-parser))
+$(eval $(call gb_Library_set_precompiled_header,orcus-parser,external/liborcus/inc/pch/precompiled_orcus-parser))
+
$(eval $(call gb_Library_set_include,orcus-parser,\
-I$(call gb_UnpackedTarball_get_dir,liborcus)/include \
-I$(call gb_UnpackedTarball_get_dir,liborcus)/src/include \
diff --git a/external/liborcus/Library_orcus.mk b/external/liborcus/Library_orcus.mk
index 3793805c3c00..ea99e7509fbf 100644
--- a/external/liborcus/Library_orcus.mk
+++ b/external/liborcus/Library_orcus.mk
@@ -22,6 +22,8 @@ $(eval $(call gb_Library_use_externals,orcus,\
$(eval $(call gb_Library_set_warnings_disabled,orcus))
+$(eval $(call gb_Library_set_precompiled_header,orcus,external/liborcus/inc/pch/precompiled_orcus))
+
$(eval $(call gb_Library_set_include,orcus,\
-I$(call gb_UnpackedTarball_get_dir,liborcus)/include \
-I$(call gb_UnpackedTarball_get_dir,liborcus)/src/include \
diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk
index f0cbd0db17eb..e5e33b0b1249 100644
--- a/external/liborcus/UnpackedTarball_liborcus.mk
+++ b/external/liborcus/UnpackedTarball_liborcus.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,liborcus,\
external/liborcus/rpath.patch.0 \
external/liborcus/gcc9.patch.0 \
external/liborcus/libtool.patch.0 \
+ external/liborcus/fix-pch.patch.0 \
))
ifeq ($(OS),WNT)
diff --git a/external/liborcus/fix-pch.patch.0 b/external/liborcus/fix-pch.patch.0
new file mode 100644
index 000000000000..42a9d52d99f6
--- /dev/null
+++ b/external/liborcus/fix-pch.patch.0
@@ -0,0 +1,11 @@
+--- src/liborcus/gnumeric_cell_context.cpp.sav 2018-05-27 18:18:56.000000000 +0200
++++ src/liborcus/gnumeric_cell_context.cpp 2019-10-13 10:43:24.587258400 +0200
+@@ -248,7 +248,7 @@
+ range.last.column = col + mp_cell_data->array_cols - 1;
+ range.last.row = row + mp_cell_data->array_rows - 1;
+
+- iface::import_array_formula* af = mp_sheet->get_array_formula();
++ spreadsheet::iface::import_array_formula* af = mp_sheet->get_array_formula();
+ if (af)
+ {
+ af->set_range(range);
diff --git a/external/liborcus/inc/pch/precompiled_orcus-parser.cxx b/external/liborcus/inc/pch/precompiled_orcus-parser.cxx
new file mode 100644
index 000000000000..b93db182c32e
--- /dev/null
+++ b/external/liborcus/inc/pch/precompiled_orcus-parser.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_orcus-parser.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/liborcus/inc/pch/precompiled_orcus-parser.hxx b/external/liborcus/inc/pch/precompiled_orcus-parser.hxx
new file mode 100644
index 000000000000..9c16a973584e
--- /dev/null
+++ b/external/liborcus/inc/pch/precompiled_orcus-parser.hxx
@@ -0,0 +1,88 @@
+/* -*- 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-10-13 10:38:02 using:
+ ./bin/update_pch external/liborcus orcus-parser --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/liborcus/inc/pch/precompiled_orcus-parser.hxx "make external/liborcus.build" --find-conflicts
+*/
+
+#if PCH_LEVEL >= 1
+#include <algorithm>
+#include <cassert>
+#include <cctype>
+#include <cmath>
+#include <codecvt>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <deque>
+#include <fstream>
+#include <iostream>
+#include <limits>
+#include <locale>
+#include <memory>
+#include <sstream>
+#include <tuple>
+#include <unordered_map>
+#include <unordered_set>
+#include <vector>
+#include <zconf.h>
+#include <zlib.h>
+#include <boost/archive/iterators/base64_from_binary.hpp>
+#include <boost/archive/iterators/binary_from_base64.hpp>
+#include <boost/archive/iterators/transform_width.hpp>
+#include <boost/filesystem.hpp>
+#include <boost/interprocess/file_mapping.hpp>
+#include <boost/interprocess/mapped_region.hpp>
+#include <boost/pool/object_pool.hpp>
+#endif // PCH_LEVEL >= 1
+#if PCH_LEVEL >= 2
+#endif // PCH_LEVEL >= 2
+#if PCH_LEVEL >= 3
+#include <mdds/global.hpp>
+#include <mdds/sorted_string_map.hpp>
+#include <orcus/base64.hpp>
+#include <orcus/cell_buffer.hpp>
+#include <orcus/css_parser_base.hpp>
+#include <orcus/css_types.hpp>
+#include <orcus/csv_parser_base.hpp>
+#include <orcus/detail/parser_token_buffer.hpp>
+#include <orcus/exception.hpp>
+#include <orcus/global.hpp>
+#include <orcus/json_global.hpp>
+#include <orcus/json_parser.hpp>
+#include <orcus/json_parser_base.hpp>
+#include <orcus/json_parser_thread.hpp>
+#include <orcus/parser_base.hpp>
+#include <orcus/parser_global.hpp>
+#include <orcus/pstring.hpp>
+#include <orcus/sax_parser_base.hpp>
+#include <orcus/sax_token_parser.hpp>
+#include <orcus/sax_token_parser_thread.hpp>
+#include <orcus/stream.hpp>
+#include <orcus/string_pool.hpp>
+#include <orcus/tokens.hpp>
+#include <orcus/types.hpp>
+#include <orcus/xml_namespace.hpp>
+#include <orcus/yaml_parser_base.hpp>
+#include <orcus/zip_archive.hpp>
+#include <orcus/zip_archive_stream.hpp>
+#endif // PCH_LEVEL >= 3
+#if PCH_LEVEL >= 4
+#endif // PCH_LEVEL >= 4
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/liborcus/inc/pch/precompiled_orcus.cxx b/external/liborcus/inc/pch/precompiled_orcus.cxx
new file mode 100644
index 000000000000..03b0cdf029ce
--- /dev/null
+++ b/external/liborcus/inc/pch/precompiled_orcus.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_orcus.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/liborcus/inc/pch/precompiled_orcus.hxx b/external/liborcus/inc/pch/precompiled_orcus.hxx
new file mode 100644
index 000000000000..7d306f161404
--- /dev/null
+++ b/external/liborcus/inc/pch/precompiled_orcus.hxx
@@ -0,0 +1,108 @@
+/* -*- 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-10-13 10:38:03 using:
+ ./bin/update_pch external/liborcus orcus --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/liborcus/inc/pch/precompiled_orcus.hxx "make external/liborcus.build" --find-conflicts
+*/
+
+#if PCH_LEVEL >= 1
+#include <algorithm>
+#include <cassert>
+#include <codecvt>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <deque>
+#include <fstream>
+#include <functional>
+#include <iostream>
+#include <iterator>
+#include <limits>
+#include <locale>
+#include <map>
+#include <memory>
+#include <ostream>
+#include <sstream>
+#include <string>
+#include <unordered_map>
+#include <unordered_set>
+#include <vector>
+#include <boost/current_function.hpp>
+#include <boost/filesystem.hpp>
+#include <boost/iostreams/filter/gzip.hpp>
+#include <boost/iostreams/filtering_stream.hpp>
+#include <boost/optional.hpp>
+#include <boost/pool/object_pool.hpp>
+#endif // PCH_LEVEL >= 1
+#if PCH_LEVEL >= 2
+#endif // PCH_LEVEL >= 2
+#if PCH_LEVEL >= 3
+#include <mdds/global.hpp>
+#include <mdds/sorted_string_map.hpp>
+#include <orcus/config.hpp>
+#include <orcus/css_document_tree.hpp>
+#include <orcus/css_parser.hpp>
+#include <orcus/css_selector.hpp>
+#include <orcus/csv_parser.hpp>
+#include <orcus/dom_tree.hpp>
+#include <orcus/exception.hpp>
+#include <orcus/format_detection.hpp>
+#include <orcus/global.hpp>
+#include <orcus/info.hpp>
+#include <orcus/json_document_tree.hpp>
+#include <orcus/json_global.hpp>
+#include <orcus/json_parser.hpp>
+#include <orcus/json_structure_tree.hpp>
+#include <orcus/measurement.hpp>
+#include <orcus/orcus_csv.hpp>
+#include <orcus/orcus_gnumeric.hpp>
+#include <orcus/orcus_import_ods.hpp>
+#include <orcus/orcus_import_xlsx.hpp>
+#include <orcus/orcus_json.hpp>
+#include <orcus/orcus_ods.hpp>
+#include <orcus/orcus_xls_xml.hpp>
+#include <orcus/orcus_xlsx.hpp>
+#include <orcus/orcus_xml.hpp>
+#include <orcus/parser_base.hpp>
+#include <orcus/parser_global.hpp>
+#include <orcus/pstring.hpp>
+#include <orcus/sax_ns_parser.hpp>
+#include <orcus/sax_parser.hpp>
+#include <orcus/sax_parser_base.hpp>
+#include <orcus/sax_token_parser.hpp>
+#include <orcus/spreadsheet/export_interface.hpp>
+#include <orcus/spreadsheet/import_interface.hpp>
+#include <orcus/spreadsheet/import_interface_pivot.hpp>
+#include <orcus/spreadsheet/import_interface_view.hpp>
+#include <orcus/spreadsheet/styles.hpp>
+#include <orcus/spreadsheet/types.hpp>
+#include <orcus/stream.hpp>
+#include <orcus/string_pool.hpp>
+#include <orcus/threaded_sax_token_parser.hpp>
+#include <orcus/tokens.hpp>
+#include <orcus/xml_namespace.hpp>
+#include <orcus/xml_structure_tree.hpp>
+#include <orcus/yaml_document_tree.hpp>
+#include <orcus/yaml_parser.hpp>
+#include <orcus/zip_archive.hpp>
+#include <orcus/zip_archive_stream.hpp>
+#endif // PCH_LEVEL >= 3
+#if PCH_LEVEL >= 4
+#endif // PCH_LEVEL >= 4
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/libstaroffice/Library_staroffice.mk b/external/libstaroffice/Library_staroffice.mk
index 506ec45f53e2..66b35501d19a 100644
--- a/external/libstaroffice/Library_staroffice.mk
+++ b/external/libstaroffice/Library_staroffice.mk
@@ -17,6 +17,8 @@ $(eval $(call gb_Library_use_externals,staroffice,\
$(eval $(call gb_Library_set_warnings_disabled,staroffice))
+$(eval $(call gb_Library_set_precompiled_header,staroffice,external/libstaroffice/inc/pch/precompiled_staroffice))
+
$(eval $(call gb_Library_set_include,staroffice,\
-I$(call gb_UnpackedTarball_get_dir,libstaroffice)/inc \
-I$(call gb_UnpackedTarball_get_dir,libstaroffice)/src/lib \
diff --git a/external/libstaroffice/inc/pch/precompiled_staroffice.cxx b/external/libstaroffice/inc/pch/precompiled_staroffice.cxx
new file mode 100644
index 000000000000..5e5bfdb729f1
--- /dev/null
+++ b/external/libstaroffice/inc/pch/precompiled_staroffice.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_staroffice.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/libstaroffice/inc/pch/precompiled_staroffice.hxx b/external/libstaroffice/inc/pch/precompiled_staroffice.hxx
new file mode 100644
index 000000000000..1ad24c0058d7
--- /dev/null
+++ b/external/libstaroffice/inc/pch/precompiled_staroffice.hxx
@@ -0,0 +1,59 @@
+/* -*- 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-10-13 10:27:57 using:
+ ./bin/update_pch external/libstaroffice staroffice --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/libstaroffice/inc/pch/precompiled_staroffice.hxx "make external/libstaroffice.build" --find-conflicts
+*/
+
+#if PCH_LEVEL >= 1
+#include <algorithm>
+#include <cctype>
+#include <cmath>
+#include <cstdarg>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctype.h>
+#include <functional>
+#include <iomanip>
+#include <iostream>
+#include <limits>
+#include <locale.h>
+#include <map>
+#include <math.h>
+#include <memory>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <string.h>
+#include <string>
+#include <time.h>
+#include <utility>
+#include <vector>
+#endif // PCH_LEVEL >= 1
+#if PCH_LEVEL >= 2
+#endif // PCH_LEVEL >= 2
+#if PCH_LEVEL >= 3
+#include <librevenge-stream/librevenge-stream.h>
+#include <librevenge/librevenge.h>
+#include <libstaroffice/libstaroffice.hxx>
+#endif // PCH_LEVEL >= 3
+#if PCH_LEVEL >= 4
+#endif // PCH_LEVEL >= 4
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/libwpd/Library_wpd.mk b/external/libwpd/Library_wpd.mk
index 0307b374fc3c..6b14f424d988 100644
--- a/external/libwpd/Library_wpd.mk
+++ b/external/libwpd/Library_wpd.mk
@@ -20,9 +20,12 @@ $(eval $(call gb_Library_set_warnings_disabled,wpd))
$(eval $(call gb_Library_set_include,wpd,\
-I$(call gb_UnpackedTarball_get_dir,libwpd)/inc \
+ -I$(call gb_UnpackedTarball_get_dir,libwpd)/src/lib \
$$(INCLUDE) \
))
+$(eval $(call gb_Library_set_precompiled_header,wpd,external/libwpd/inc/pch/precompiled_wpd))
+
$(eval $(call gb_Library_add_defs,wpd,\
-DBOOST_ALL_NO_LIB \
-DDLL_EXPORT \
diff --git a/external/libwpd/inc/pch/precompiled_wpd.cxx b/external/libwpd/inc/pch/precompiled_wpd.cxx
new file mode 100644
index 000000000000..32c492c12148
--- /dev/null
+++ b/external/libwpd/inc/pch/precompiled_wpd.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_wpd.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/libwpd/inc/pch/precompiled_wpd.hxx b/external/libwpd/inc/pch/precompiled_wpd.hxx
new file mode 100644
index 000000000000..8c62c61ec149
--- /dev/null
+++ b/external/libwpd/inc/pch/precompiled_wpd.hxx
@@ -0,0 +1,52 @@
+/* -*- 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-10-13 09:48:15 using:
+ ./bin/update_pch external/libwpd wpd --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/libwpd/inc/pch/precompiled_wpd.hxx "make external/libwpd.build" --find-conflicts
+*/
+
+#if PCH_LEVEL >= 1
+#include <algorithm>
+#include <assert.h>
+#include <cstdarg>
+#include <cstdio>
+#include <ctype.h>
+#include <libwpd_internal.h>
+#include <libwpd_math.h>
+#include <limits>
+#include <locale.h>
+#include <math.h>
+#include <memory>
+#include <set>
+#include <sstream>
+#include <string.h>
+#include <string>
+#include <time.h>
+#include <vector>
+#include <boost/spirit/include/qi.hpp>
+#endif // PCH_LEVEL >= 1
+#if PCH_LEVEL >= 2
+#endif // PCH_LEVEL >= 2
+#if PCH_LEVEL >= 3
+#include <librevenge-stream/librevenge-stream.h>
+#include <librevenge/librevenge.h>
+#endif // PCH_LEVEL >= 3
+#if PCH_LEVEL >= 4
+#endif // PCH_LEVEL >= 4
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/libwps/Library_wps.mk b/external/libwps/Library_wps.mk
index 08b0caa9a7fe..500a9ab196b2 100644
--- a/external/libwps/Library_wps.mk
+++ b/external/libwps/Library_wps.mk
@@ -19,9 +19,12 @@ $(eval $(call gb_Library_set_warnings_disabled,wps))
$(eval $(call gb_Library_set_include,wps,\
-I$(call gb_UnpackedTarball_get_dir,libwps)/inc \
+ -I$(call gb_UnpackedTarball_get_dir,libwps)/src/lib \
$$(INCLUDE) \
))
+$(eval $(call gb_Library_set_precompiled_header,wps,external/libwps/inc/pch/precompiled_wps))
+
$(eval $(call gb_Library_add_defs,wps,\
-DBUILD_WPS\
-DDLL_EXPORT \
diff --git a/external/libwps/inc/pch/precompiled_wps.cxx b/external/libwps/inc/pch/precompiled_wps.cxx
new file mode 100644
index 000000000000..9cbc329adbea
--- /dev/null
+++ b/external/libwps/inc/pch/precompiled_wps.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_wps.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/libwps/inc/pch/precompiled_wps.hxx b/external/libwps/inc/pch/precompiled_wps.hxx
new file mode 100644
index 000000000000..77d92f7615b6
--- /dev/null
+++ b/external/libwps/inc/pch/precompiled_wps.hxx
@@ -0,0 +1,64 @@
+/* -*- 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-10-13 10:00:18 using:
+ ./bin/update_pch external/libwps wps --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/libwps/inc/pch/precompiled_wps.hxx "make external/libwps.build" --find-conflicts
+*/
+
+#if PCH_LEVEL >= 1
+#include <algorithm>
+#include <cassert>
+#include <cctype>
+#include <cmath>
+#include <cstdarg>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctype.h>
+#include <iomanip>
+#include <iostream>
+#include <iterator>
+#include <libwps_internal.h>
+#include <libwps_tools_win.h>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <regex>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <string>
+#include <time.h>
+#include <utility>
+#include <vector>
+#endif // PCH_LEVEL >= 1
+#if PCH_LEVEL >= 2
+#endif // PCH_LEVEL >= 2
+#if PCH_LEVEL >= 3
+#include <librevenge-stream/librevenge-stream.h>
+#include <librevenge/librevenge.h>
+#include <libwps/libwps.h>
+#endif // PCH_LEVEL >= 3
+#if PCH_LEVEL >= 4
+#endif // PCH_LEVEL >= 4
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */