Kaydet (Commit) 06116bd1 authored tarafından Ashod Nakashian's avatar Ashod Nakashian Kaydeden (comit) Caolán McNamara

Fast PCH generator and optimized PCH files

Ported update_pch.sh to Python with improved performance
and features. The new script is invoked from the same
update_pch.sh which calls it for each library in
parallel, although it can be invoked directly.

The ported script (update_pch) updates all PCH files
in ~15 seconds where the old script took ~4500 seconds.
In addition, the new script supports 3-tiered headers
(system, module, and local) and is very flexible to
support other improvement. It has a per-library
optimal configuration settings that can be updated
using another new scripts (update_pch_autotune.sh)
which finds optimal per-PCH settings.

PCH files have been generated using the new scripts
which builds significantly faster (2-3x, depending
on module and configuration) and the intermediate
binaries are noticably smaller (by several GBs).

The new script stamps each generated PCH file with
the command that generated it to make it trivial
for users to update them, and also adds the command
to invoke another script (update_pch_bisect) that
helps find missing headers or conflicting headers
that may break the build after updating the PCH.

Finally update_pch has built-in unit-tests for
makefile parsing and other core functionality.

Change-Id: Ib933b50e50374d7e2e7e3e95ba8799b0cc8a27fa
Reviewed-on: https://gerrit.libreoffice.org/19965Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 6474336e
...@@ -8,57 +8,76 @@ ...@@ -8,57 +8,76 @@
*/ */
/* /*
This file has been autogenerated by update_pch.sh . It is possible to edit it 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 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 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). also fixes all possible problems, so it's usually better to use it).
Generated on 2015-11-14 14:16:28 using:
./bin/update_pch basegfx basegfx --cutoff=3 --exclude:system --exclude:module --include:local
If after updating build fails, use the following command to locate conflicting headers:
./bin/update_pch_bisect ./basegfx/inc/pch/precompiled_basegfx.hxx "/opt/lo/bin/make basegfx.build" --find-conflicts
*/ */
#include <algorithm> #include <algorithm>
#include <boost/tuple/tuple.hpp> #include <cassert>
#include <boost/noncopyable.hpp> #include <cstddef>
#include <com/sun/star/awt/Point.hpp> #include <cstdlib>
#include <com/sun/star/awt/Rectangle.hpp>
#include <com/sun/star/awt/Size.hpp>
#include <com/sun/star/drawing/DoubleSequence.hpp>
#include <com/sun/star/drawing/FlagSequence.hpp>
#include <com/sun/star/drawing/LineCap.hpp>
#include <com/sun/star/drawing/PointSequence.hpp>
#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
#include <com/sun/star/geometry/AffineMatrix2D.hpp>
#include <com/sun/star/geometry/AffineMatrix3D.hpp>
#include <com/sun/star/geometry/IntegerPoint2D.hpp>
#include <com/sun/star/geometry/IntegerRectangle2D.hpp>
#include <com/sun/star/geometry/IntegerSize2D.hpp>
#include <com/sun/star/geometry/Matrix2D.hpp>
#include <com/sun/star/geometry/RealBezierSegment2D.hpp>
#include <com/sun/star/geometry/RealPoint2D.hpp>
#include <com/sun/star/geometry/RealRectangle2D.hpp>
#include <com/sun/star/geometry/RealRectangle3D.hpp>
#include <com/sun/star/geometry/RealSize2D.hpp>
#include <com/sun/star/rendering/CompositeOperation.hpp>
#include <com/sun/star/rendering/RenderState.hpp>
#include <com/sun/star/rendering/ViewState.hpp>
#include <com/sun/star/rendering/XCanvas.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/XPolyPolygon2D.hpp>
#include <com/sun/star/uno/Sequence.hxx>
#include <comphelper/sequence.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <cstdio>
#include <deque>
#include <functional>
#include <limits> #include <limits>
#include <list>
#include <numeric> #include <numeric>
#include <o3tl/vector_pool.hxx> #include <ostream>
#include <sstream>
#include <string>
#include <vector>
#include <boost/next_prior.hpp>
#include <osl/diagnose.h> #include <osl/diagnose.h>
#include <osl/interlck.h>
#include <rtl/instance.hxx> #include <rtl/instance.hxx>
#include <rtl/math.hxx> #include <rtl/math.hxx>
#include <rtl/ustrbuf.hxx> #include <rtl/ustrbuf.hxx>
#include <rtl/ustring.hxx> #include <sal/config.h>
#include <sal/detail/log.h>
#include <sal/log.hxx> #include <sal/log.hxx>
#include <utility> #include <sal/saldllapi.h>
#include <vector> #include <sal/types.h>
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/uno/Sequence.h>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/uno/genfunc.hxx>
#include <cppu/unotype.hxx>
#include <typelib/typedescription.h>
#include <uno/data.h>
#include <basegfx/basegfxdllapi.h>
#include <basegfx/color/bcolor.hxx>
#include <basegfx/curve/b2dcubicbezier.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <basegfx/matrix/b3dhommatrix.hxx>
#include <basegfx/numeric/ftools.hxx>
#include <basegfx/point/b2dpoint.hxx>
#include <basegfx/point/b2ipoint.hxx>
#include <basegfx/point/b3dpoint.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/polygon/b2dpolygoncutandtouch.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <basegfx/polygon/b2dpolypolygoncutter.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/polygon/b3dpolygon.hxx>
#include <basegfx/polygon/b3dpolypolygon.hxx>
#include <basegfx/range/b2dpolyrange.hxx>
#include <basegfx/range/b2drange.hxx>
#include <basegfx/range/b2drangeclipper.hxx>
#include <basegfx/range/b3drange.hxx>
#include <basegfx/range/basicrange.hxx>
#include <basegfx/tuple/b2dtuple.hxx>
#include <basegfx/tuple/b2i64tuple.hxx>
#include <basegfx/tuple/b2ituple.hxx>
#include <basegfx/tuple/b3dtuple.hxx>
#include <basegfx/tuple/b3ituple.hxx>
#include <basegfx/vector/b2dvector.hxx>
#include <basegfx/vector/b2enums.hxx>
#include <basegfx/vector/b3dvector.hxx>
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -8,78 +8,90 @@ ...@@ -8,78 +8,90 @@
*/ */
/* /*
This file has been autogenerated by update_pch.sh . It is possible to edit it 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 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 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). also fixes all possible problems, so it's usually better to use it).
Generated on 2015-11-14 14:16:28 using:
./bin/update_pch basic sb --cutoff=2 --exclude:system --exclude:module --include:local
If after updating build fails, use the following command to locate conflicting headers:
./bin/update_pch_bisect ./basic/inc/pch/precompiled_sb.hxx "/opt/lo/bin/make basic.build" --find-conflicts
*/ */
#include "math.h" #include <cassert>
#include <boost/optional.hpp>
#include <memory>
#include <com/sun/star/bridge/oleautomation/Decimal.hpp>
#include <com/sun/star/bridge/oleautomation/XAutomationObject.hpp>
#include <com/sun/star/i18n/LocaleCalendar2.hpp>
#include <com/sun/star/lang/Locale.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/script/XErrorQuery.hpp>
#include <com/sun/star/sheet/XFunctionAccess.hpp>
#include <com/sun/star/ucb/SimpleFileAccess.hpp>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/uno/XInterface.hpp>
#include <com/sun/star/util/DateTime.hpp>
#include <comphelper/processfactory.hxx>
#include <comphelper/string.hxx>
#include <config_features.h> #include <config_features.h>
#include <config_version.h>
#include <cstddef> #include <cstddef>
#include <cstdlib>
#include <ctype.h> #include <ctype.h>
#include <errno.h>
#include <float.h>
#include <i18nlangtag/lang.h>
#include <iomanip>
#include <list>
#include <math.h> #include <math.h>
#include <ooo/vba/XHelperInterface.hpp> #include <memory>
#include <new>
#include <ostream>
#include <sstream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <boost/optional.hpp>
#include <osl/file.hxx> #include <osl/file.hxx>
#include <osl/mutex.hxx>
#include <osl/process.h> #include <osl/process.h>
#include <osl/thread.h>
#include <osl/time.h> #include <osl/time.h>
#include <random>
#include <rtl/character.hxx> #include <rtl/character.hxx>
#include <rtl/instance.hxx>
#include <rtl/math.hxx> #include <rtl/math.hxx>
#include <rtl/strbuf.hxx> #include <rtl/strbuf.hxx>
#include <rtl/string.h>
#include <rtl/string.hxx> #include <rtl/string.hxx>
#include <rtl/stringutils.hxx>
#include <rtl/textenc.h>
#include <rtl/ustrbuf.hxx> #include <rtl/ustrbuf.hxx>
#include <rtl/ustring.hxx> #include <rtl/ustring.hxx>
#include <sal/config.h> #include <sal/config.h>
#include <sal/detail/log.h>
#include <sal/log.hxx> #include <sal/log.hxx>
#include <stdio.h> #include <sal/saldllapi.h>
#include <stdlib.h> #include <sal/types.h>
#include <string.h> #include <vcl/dllapi.h>
#include <vcl/mapmod.hxx>
#include <vcl/msgbox.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
#include <basrid.hxx>
#include <com/sun/star/frame/XModel.hpp>
#include <com/sun/star/i18n/KCharacterType.hpp>
#include <com/sun/star/i18n/KParseTokens.hpp>
#include <com/sun/star/i18n/KParseType.hpp>
#include <com/sun/star/i18n/ParseResult.hpp>
#include <com/sun/star/i18n/XCharacterClassification.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/util/DateTime.hpp>
#include <comphelper/processfactory.hxx>
#include <comphelper/string.hxx>
#include <i18nlangtag/lang.h>
#include <i18nlangtag/languagetag.hxx>
#include <sbobjmod.hxx>
#include <sbxbase.hxx>
#include <svl/SfxBroadcaster.hxx> #include <svl/SfxBroadcaster.hxx>
#include <svl/zforlist.hxx> #include <svl/zforlist.hxx>
#include <tools/color.hxx>
#include <tools/date.hxx>
#include <tools/debug.hxx> #include <tools/debug.hxx>
#include <tools/errcode.hxx> #include <tools/errcode.hxx>
#include <tools/fract.hxx> #include <tools/link.hxx>
#include <tools/shl.hxx> #include <tools/mapunit.hxx>
#include <tools/stream.hxx> #include <tools/stream.hxx>
#include <tools/toolsdllapi.h>
#include <tools/urlobj.hxx> #include <tools/urlobj.hxx>
#include <tools/wintypes.hxx>
#include <tools/wldcrd.hxx>
#include <unotools/charclass.hxx> #include <unotools/charclass.hxx>
#include <unotools/syslocale.hxx> #include <unotools/unotoolsdllapi.h>
#include <unotools/ucbstreamhelper.hxx> #include <basic/basicdllapi.h>
#include <vcl/dibtools.hxx> #include <basic/sbuno.hxx>
#include <vcl/jobset.hxx> #include <basic/sbx.hxx>
#include <vcl/mapmod.hxx> #include <basic/sbxfac.hxx>
#include <vcl/msgbox.hxx> #include <basic/sbxform.hxx>
#include <vcl/settings.hxx> #include <basic/sbxobj.hxx>
#include <vcl/sound.hxx> #include <basic/sbxvar.hxx>
#include <vcl/svapp.hxx>
#include <vcl/timer.hxx>
#include <vcl/wrkwin.hxx>
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This diff is collapsed.
...@@ -7,16 +7,18 @@ ...@@ -7,16 +7,18 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
# #
# Usage: update_pch.sh [precompiled_xxx.hxx] # Usage: update_pch.sh [<module>/inc/pch/precompiled_xxx.hxx]
# Usage: update_pch.sh [<module>]
# Invoke: make cmd cmd="./bin/update_pch.sh [..]" # Invoke: make cmd cmd="./bin/update_pch.sh [..]"
root=`dirname $0` root=`dirname $0`
root=`cd $root/.. && pwd` root=`cd $root/.. && pwd`
cd $root
if test -z "$1"; then if test -z "$1"; then
headers=`ls $root/*/inc/pch/precompiled_*.hxx` headers=`ls ./*/inc/pch/precompiled_*.hxx`
else else
headers="$1" headers="$@"
fi fi
# Split the headers into an array. # Split the headers into an array.
...@@ -31,158 +33,18 @@ if [ $hlen -gt 1 ]; then ...@@ -31,158 +33,18 @@ if [ $hlen -gt 1 ]; then
fi fi
for x in $headers; do for x in $headers; do
header=$x if [ -d "$x" ]; then
echo updating `echo $header | sed -e s%$root/%%` # We got a directory, find pch files to update.
module=`readlink -f $header | sed -e s%$root/%% -e s%/.*%%` headers=`find $root/$x/ -type f -iname "precompiled_*.hxx"`
name=`echo $header | sed -e s/.*precompiled_// -e s/\.hxx//` $0 "$headers"
makefile="Library_$name.mk" else
header=$x
tmpfile=`mktemp` echo updating `echo $header | sed -e s%$root/%%`
module=`readlink -f $header | sed -e s%$root/%% -e s%/.*%%`
cat "$root/$module/$makefile" | sed 's#\\$##' | \ libname=`echo $header | sed -e s/.*precompiled_// -e s/\.hxx//`
(
inobjects= ./bin/update_pch "$module" "$libname"
ifstack=0
while read line ; do
if test "$line" = "))" ; then
inobjects=
elif echo $line | grep -q -e add_exception_objects -e add_cxxobject -e add_cxxobjects ; then
inobjects=1
if test $ifstack -ne 0 ; then
echo Sources in a conditional, ignoring for now. >&2
fi
elif echo $line | grep -q ^if ; then
ifstack=$((ifstack + 1))
elif echo $line | grep -q ^endif ; then
ifstack=$((ifstack - 1))
elif test -n "$inobjects" -a $ifstack -eq 0; then
file=$line
if echo $line | grep -q ", "; then
true # $if() probably, or something similar
elif ! test -f "$root/$file".cxx ; then
echo No file $file in $module/$makefile >&2
else
function list_file_includes()
(
ifdepth=0
# filter out only preprocessor lines, get the first and second "words" after the #,
# also replace " with @ (would cause trouble when doing echo of the line)
cat "$1" | grep -E '^\s*#' | sed 's/^\s*#/#/' | sed 's/^\(#\w*\s+\w*\)\s+.*/\1/' | sed 's/"/@/g' | \
while read line; do
# skip everything surrounded by any #if
if echo "$line" | grep -q "#if" ; then
ifdepth=$((ifdepth + 1))
lastif="$line"
elif echo "$line" | grep -q "#endif" ; then
ifdepth=$((ifdepth - 1))
lastif="#if"
elif echo "$line" | grep -q "#include"; then
if test $ifdepth -eq 0; then
echo $line | sed 's/@/"/g'
else
echo "#include in $lastif : $line" | sed 's/@/"/g' >&2
fi
fi
done
)
list_file_includes "$root/$file".cxx | sed 's/\(#include [<@][^>@]*[>@]\).*/\1/' | sed 's#\.\./##g#' >>$tmpfile
fi
fi
done
)
cat >$header <<EOF
/* -*- 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).
*/
EOF
# Library_svx needs this (sendreportw32.cxx)
if test "$makefile" = Library_svx.mk ; then
cat >>$header <<EOF
#ifdef WNT
#define UNICODE
#define _UNICODE
#endif
EOF
fi
function local_file()
(
file="$1"
echo "$file" | grep -q ^"$module"/ && exit 0
# find "$root/$module" -type f | grep -v "$root/$module/inc/" | grep /"$file"'$' && exit 0
find "$root/$module" -type f | grep /"$file"'$' -q && exit 0
if echo "$file" | grep -F . -q; then
find "$root/$module" -type f | grep -q /`echo "$file" | sed 's/\.hxx$/.sdi/'` && exit 0
fi fi
# not local
exit 1
)
function filter_ignore()
(
# - filter out all files that are not normal headers
# - unicode/datefm.h is a icu header, clashes with DateFormat definition
# - gperffasttoken.hxx is not a proper header
# - comphelper/servicedecl.hxx ignore for now
# - sores.hxx provides BMP_PLUGIN, which is redefined
# - some sources play ugly #define tricks with editeng/eeitemid.hxx
# - objbase.h and oledb.h break ado
# - NSS cert.h may need to be mangled by nssrenam.h
# - xmlreader.h breaks cppuhelper
# - jerror.h and jpeglib.h are not self-contained
# - service1.hxx/service2.hxx are inside comments in frameworks/
grep -E -e '\.h[">]$' -e '\.hpp[">]$' -e '\.hdl[">]$' -e '\.hxx[">]$' -e '^[^\.]*>$' | \
grep -v -F -e '#include <vcl/opengl/OpenGLContext.hxx>' | \
grep -v -F -e '#include <unicode/datefmt.h>' | \
grep -v -F -e '#include "gperffasttoken.hxx"' | \
grep -v -F -e '#include <comphelper/servicedecl.hxx>' | \
grep -v -F -e '#include <svtools/sores.hxx>' | \
grep -v -F -e '#include <editeng/eeitemid.hxx>' | \
grep -v -F -e '#include <service1.hxx>' | \
grep -v -F -e '#include <service2.hxx>' | \
grep -v -F -e '#include <objbase.h>' | \
grep -v -F -e '#include <oledb.h>' | \
grep -v -F -e '#include <cert.h>' | \
grep -v -F -e '#include <xmlreader/xmlreader.hxx>' | \
grep -v -e '#include [<"]jerror.h[">]' | \
grep -v -e '#include [<"]jpeglib.h[">]'
)
# " in #include "foo" breaks echo down below, so " -> @
cat $tmpfile | LC_ALL=C sort -u | filter_ignore | sed 's/"/@/g' | \
(
while read line; do
file=`echo $line | sed 's/.*[<"@]\([^>"@]*\)[>"@].*/\1/'`
if ! local_file "$file"; then
echo $line | sed 's/@/"/g' >>$header
fi
done
)
cat >>$header <<EOF
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
EOF
rm $tmpfile
done done
#echo Done. #echo Done.
......
#! /bin/bash
#
# 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/.
#
# Finds the optimal update_pch settings that results in,
# per module and library, the fastest build time and
# smallest intermediate files (.o/.obj) output.
# Usage: update_pch_autotune.sh [<module1> <module2>]
# Invoke: /opt/lo/bin/make cmd cmd="./bin/update_pch_autotune.sh [..]"
# The resulting values may be entered in update_pch
# to be use for generating PCH in the future.
# Run this script after major header changes.
root=`dirname $0`
root=`cd $root/.. && pwd`
cd $root
if test -z "$1"; then
modules=`ls ./*/inc/pch/precompiled_*.hxx | sed -e s%./%% -e s%/.*%% | uniq`
else
modules="$@"
fi
function build()
{
local START=$(date +%s.%N)
/opt/lo/bin/make "$module.build" > /dev/null
status=$?
if [ $status -ne 0 ];
then
# Spurious failures happen.
/opt/lo/bin/make "$module.build" > /dev/null
status=$?
fi
local END=$(date +%s.%N1)
build_time=$(printf %.1f $(echo "$END - $START" | bc))
size="FAILED"
score="FAILED"
if [ $status -eq 0 ];
then
size="$(du -s workdir/CxxObject/$module/ | awk '{print $1}')"
score=$(printf %.2f $(echo "10000 / ($build_time * e($size/1048576))" | bc -l))
fi
}
function run()
{
local msg="$module.$libname, ${@:3}, "
printf "$msg"
./bin/update_pch "$module" "$libname" "${@:3}" --silent
status=$?
if [ $status -eq 0 ];
then
build
summary="$build_time, $size, $score"
if [ $status -eq 0 ];
then
new_best_for_cuttof=$(echo "$score > $best_score_for_cuttof" | bc -l)
if [ $new_best_for_cuttof -eq 1 ];
then
best_score_for_cuttof=$score
fi
new_best=$(echo "$score > $best_score" | bc -l)
if [ $new_best -eq 1 ];
then
best_score=$score
best_args="${@:3}"
best_time=$build_time
best_cutoff=$cutoff
summary="$build_time, $size, $score,*"
fi
fi
else
# Skip if pch is not updated.
summary="0, 0, 0"
fi
echo "$summary"
}
function args_to_table()
{
local sys="EXCLUDE"
local mod="EXCLUDE"
local loc="EXCLUDE"
local cutoff=0
IFS=' ' read -r -a aargs <<< $best_args
for index in "${!aargs[@]}"
do
if [ "${aargs[index]}" = "--include:system" ];
then
sys="INCLUDE"
elif [ "${aargs[index]}" = "--exclude:system" ];
then
sys="EXCLUDE"
elif [ "${aargs[index]}" = "--include:module" ];
then
mod="INCLUDE"
elif [ "${aargs[index]}" = "--exclude:module" ];
then
mod="EXCLUDE"
elif [ "${aargs[index]}" = "--include:local" ];
then
loc="INCLUDE"
elif [ "${aargs[index]}" = "--exclude:local" ];
then
loc="EXCLUDE"
elif [[ "${aargs[index]}" == *"cutoff"* ]]
then
cutoff=$(echo "${aargs[index]}" | grep -Po '\-\-cutoff\=\K\d+')
fi
done
local key=$(printf "'%s.%s'" $module $libname)
echo "$(printf " %-36s: (%2d, %s, %s, %s), # %5.1f" $key $cutoff $sys $mod $loc $best_time)"
}
for module in $modules; do
# Build without pch includes as sanity check.
#run "$root" "$module" --cutoff=999
# Build before updating pch.
/opt/lo/bin/make "$module.build" > /dev/null
if [ $? -ne 0 ];
then
# Build with dependencies before updating pch.
echo "Failed to build $module, building known state with dependencies..."
./bin/update_pch.sh "$module" > /dev/null
/opt/lo/bin/make "$module.clean" > /dev/null
/opt/lo/bin/make "$module.all" > /dev/null
if [ $? -ne 0 ];
then
# Build all!
echo "Failed to build $module with dependencies, building all..."
/opt/lo/bin/make build-nocheck > /dev/null
if [ $? -ne 0 ];
then
>&2 echo "Broken build. Please revert changes and try again."
exit 1
fi
fi
fi
# Find pch files in the module to update.
headers=`find $root/$module/ -type f -iname "precompiled_*.hxx"`
# Each pch belongs to a library.
for header in $headers; do
libname=`echo $header | sed -e s/.*precompiled_// -e s/\.hxx//`
#TODO: Backup the header and restore when last tune fails.
# Force update on first try below.
echo "Autotuning $module.$libname..."
./bin/update_pch "$module" "$libname" --cutoff=999 --silent --force
best_score=0
best_args=""
best_time=0
best_cutoff=0
for i in {1..16}; do
cutoff=$i
best_score_for_cuttof=0
#run "$root" "$module" "--cutoff=$i" --include:system --exclude:module --exclude:local
run "$root" "$module" "--cutoff=$i" --exclude:system --exclude:module --exclude:local
#run "$root" "$module" "--cutoff=$i" --include:system --include:module --exclude:local
run "$root" "$module" "--cutoff=$i" --exclude:system --include:module --exclude:local
#run "$root" "$module" "--cutoff=$i" --include:system --exclude:module --include:local
run "$root" "$module" "--cutoff=$i" --exclude:system --exclude:module --include:local
#run "$root" "$module" "--cutoff=$i" --include:system --include:module --include:local
run "$root" "$module" "--cutoff=$i" --exclude:system --include:module --include:local
if [ $i -gt $((best_cutoff+2)) ];
then
score_too_low=$(echo "$best_score_for_cuttof < $best_score / 1.10" | bc -l)
if [ $score_too_low -eq 1 ];
then
echo "Score hit low of $best_score_for_cuttof, well bellow overall best of $best_score. Stopping."
break;
fi
fi
done
./bin/update_pch "$module" "$libname" $best_args --force --silent
echo "> $module.$libname, $best_args, $best_time, $size, $score"
echo
table+=$'\n'
table+="$(args_to_table)"
done
done
echo "Update the relevant lines in ./bin/update_pch script:"
>&2 echo "$table"
exit 0
...@@ -23,9 +23,6 @@ header that compiles fine, however, ...@@ -23,9 +23,6 @@ header that compiles fine, however,
it contains one or more required it contains one or more required
include without which it wouldn't include without which it wouldn't
compile, which it identifies. compile, which it identifies.
This mode is used to find source
files that miss one or more includes
and rely on pch file to compile.
Usage: ./bin/update_pch_bisect ./vcl/inc/pch/precompiled_vcl.hxx "/opt/lo/bin/make vcl.build" --find-required --verbose Usage: ./bin/update_pch_bisect ./vcl/inc/pch/precompiled_vcl.hxx "/opt/lo/bin/make vcl.build" --find-required --verbose
""" """
...@@ -99,11 +96,11 @@ def bisect(lines, marks, min, max, update, command): ...@@ -99,11 +96,11 @@ def bisect(lines, marks, min, max, update, command):
marks[min] = TEST_ON marks[min] = TEST_ON
update(lines, marks) update(lines, marks)
if command(): if command():
log(' Found #{}: {}'.format(min+1, lines[min].strip('\n'))) log(' Found @{}: {}'.format(min+1, lines[min].strip('\n')))
marks[min] = GOOD marks[min] = GOOD
return marks return marks
else: else:
log(' Found #{}: {}'.format(min+1, lines[min].strip('\n'))) log(' Found @{}: {}'.format(min+1, lines[min].strip('\n')))
# Either way, this one is irrelevant. # Either way, this one is irrelevant.
marks[min] = BAD marks[min] = BAD
return marks return marks
...@@ -233,7 +230,7 @@ def main(): ...@@ -233,7 +230,7 @@ def main():
if __name__ == '__main__': if __name__ == '__main__':
if len(sys.argv) in (3, 5): if len(sys.argv) in (3, 4, 5):
status = main() status = main()
sys.exit(status) sys.exit(status)
......
...@@ -8,58 +8,28 @@ ...@@ -8,58 +8,28 @@
*/ */
/* /*
This file has been autogenerated by update_pch.sh . It is possible to edit it 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 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 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). also fixes all possible problems, so it's usually better to use it).
Generated on 2015-11-14 14:16:28 using:
./bin/update_pch chart2 chartopengl --cutoff=12 --exclude:system --exclude:module --exclude:local
If after updating build fails, use the following command to locate conflicting headers:
./bin/update_pch_bisect ./chart2/inc/pch/precompiled_chartopengl.hxx "/opt/lo/bin/make chart2.build" --find-conflicts
*/ */
#include <GL/glew.h> #include <osl/interlck.h>
#include <algorithm> #include <osl/mutex.hxx>
#include <basegfx/matrix/b3dhommatrix.hxx> #include <osl/thread.hxx>
#include <basegfx/point/b2dpoint.hxx> #include <rtl/instance.hxx>
#include <com/sun/star/awt/XBitmap.hpp>
#include <com/sun/star/beans/Property.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/drawing/CircleKind.hpp>
#include <com/sun/star/drawing/DoubleSequence.hpp>
#include <com/sun/star/drawing/FillStyle.hpp>
#include <com/sun/star/drawing/FlagSequence.hpp>
#include <com/sun/star/drawing/LineStyle.hpp>
#include <com/sun/star/drawing/NormalsKind.hpp>
#include <com/sun/star/drawing/PointSequence.hpp>
#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
#include <com/sun/star/drawing/PolygonKind.hpp>
#include <com/sun/star/drawing/ProjectionMode.hpp>
#include <com/sun/star/drawing/ShadeMode.hpp>
#include <com/sun/star/drawing/TextFitToSizeType.hpp>
#include <com/sun/star/drawing/TextureProjectionMode.hpp>
#include <com/sun/star/graphic/XGraphic.hpp>
#include <com/sun/star/text/XText.hpp>
#include <com/sun/star/uno/Any.hxx>
#include <comphelper/InlineContainer.hxx>
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <editeng/unoprnms.hxx>
#include <fstream>
#include <iostream>
#include <rtl/math.hxx> #include <rtl/math.hxx>
#include <rtl/ustring.hxx> #include <rtl/ref.hxx>
#include <stdlib.h> #include <rtl/stringutils.hxx>
#include <string.h> #include <rtl/textenc.h>
#include <string> #include <rtl/ustring.h>
#include <svx/svdocirc.hxx> #include <sal/config.h>
#include <svx/svdopath.hxx> #include <sal/log.hxx>
#include <svx/unoshape.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <tools/gen.hxx>
#include <vcl/dibtools.hxx>
#include <vcl/graph.hxx>
#include <vcl/opengl/OpenGLHelper.hxx>
#include <vcl/openglwin.hxx>
#include <vcl/svapp.hxx>
#include <vcl/virdev.hxx>
#include <vcl/window.hxx>
#include <vector>
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -8,137 +8,70 @@ ...@@ -8,137 +8,70 @@
*/ */
/* /*
This file has been autogenerated by update_pch.sh . It is possible to edit it 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 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 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). also fixes all possible problems, so it's usually better to use it).
Generated on 2015-11-14 14:16:28 using:
./bin/update_pch configmgr configmgr --cutoff=6 --exclude:system --include:module --include:local
If after updating build fails, use the following command to locate conflicting headers:
./bin/update_pch_bisect ./configmgr/inc/pch/precompiled_configmgr.hxx "/opt/lo/bin/make configmgr.build" --find-conflicts
*/ */
#include <algorithm>
#include <cassert> #include <cassert>
#include <climits>
#include <com/sun/star/beans/NamedValue.hpp>
#include <com/sun/star/beans/Optional.hpp>
#include <com/sun/star/beans/Property.hpp>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/beans/PropertyChangeEvent.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/beans/PropertyVetoException.hpp>
#include <com/sun/star/beans/UnknownPropertyException.hpp>
#include <com/sun/star/beans/XExactName.hpp>
#include <com/sun/star/beans/XHierarchicalPropertySet.hpp>
#include <com/sun/star/beans/XHierarchicalPropertySetInfo.hpp>
#include <com/sun/star/beans/XMultiHierarchicalPropertySet.hpp>
#include <com/sun/star/beans/XMultiPropertySet.hpp>
#include <com/sun/star/beans/XPropertiesChangeListener.hpp>
#include <com/sun/star/beans/XProperty.hpp>
#include <com/sun/star/beans/XPropertyChangeListener.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/XPropertySetInfo.hpp>
#include <com/sun/star/beans/XVetoableChangeListener.hpp>
#include <com/sun/star/configuration/XReadWriteAccess.hpp>
#include <com/sun/star/configuration/XUpdate.hpp>
#include <com/sun/star/configuration/theDefaultProvider.hpp>
#include <com/sun/star/container/ContainerEvent.hpp>
#include <com/sun/star/container/NoSuchElementException.hpp>
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/container/XContainer.hpp>
#include <com/sun/star/container/XContainerListener.hpp>
#include <com/sun/star/container/XElementAccess.hpp>
#include <com/sun/star/container/XHierarchicalName.hpp>
#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
#include <com/sun/star/container/XHierarchicalNameReplace.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/container/XNameContainer.hpp>
#include <com/sun/star/container/XNamed.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/lang/EventObject.hpp>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/lang/Locale.hpp>
#include <com/sun/star/lang/NoSupportException.hpp>
#include <com/sun/star/lang/NotInitializedException.hpp>
#include <com/sun/star/lang/WrappedTargetException.hpp>
#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XEventListener.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/XLocalizable.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XSingleComponentFactory.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <com/sun/star/registry/InvalidRegistryException.hpp>
#include <com/sun/star/registry/InvalidValueException.hpp>
#include <com/sun/star/registry/MergeConflictException.hpp>
#include <com/sun/star/registry/RegistryKeyType.hpp>
#include <com/sun/star/registry/RegistryValueType.hpp>
#include <com/sun/star/registry/XRegistryKey.hpp>
#include <com/sun/star/registry/XSimpleRegistry.hpp>
#include <com/sun/star/uno/Any.hxx>
#include <com/sun/star/uno/DeploymentException.hpp>
#include <com/sun/star/uno/Exception.hpp>
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/uno/RuntimeException.hpp>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/uno/Type.hxx>
#include <com/sun/star/uno/TypeClass.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/uno/XInterface.hpp>
#include <com/sun/star/uno/XWeak.hpp>
#include <com/sun/star/util/ChangesEvent.hpp>
#include <com/sun/star/util/ChangesSet.hpp>
#include <com/sun/star/util/ElementChange.hpp>
#include <com/sun/star/util/XChangesBatch.hpp>
#include <com/sun/star/util/XChangesListener.hpp>
#include <com/sun/star/util/XChangesNotifier.hpp>
#include <com/sun/star/util/XFlushListener.hpp>
#include <com/sun/star/util/XFlushable.hpp>
#include <com/sun/star/util/XRefreshListener.hpp>
#include <com/sun/star/util/XRefreshable.hpp>
#include <comphelper/servicehelper.hxx>
#include <config_folders.h>
#include <cppu/unotype.hxx>
#include <cppuhelper/basemutex.hxx>
#include <cppuhelper/compbase.hxx>
#include <cppuhelper/exc_hlp.hxx>
#include <cppuhelper/factory.hxx>
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/implementationentry.hxx>
#include <cppuhelper/interfacecontainer.hxx>
#include <cppuhelper/queryinterface.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <cppuhelper/weak.hxx>
#include <cstddef> #include <cstddef>
#include <functional> #include <new>
#include <i18nlangtag/languagetag.hxx> #include <set>
#include <list> #include <utility>
#include <map> #include <vector>
#include <memory>
#include <osl/conditn.hxx> #include <osl/conditn.hxx>
#include <osl/file.h> #include <osl/diagnose.h>
#include <osl/file.hxx> #include <osl/file.hxx>
#include <osl/interlck.h> #include <osl/interlck.h>
#include <osl/mutex.hxx> #include <osl/mutex.hxx>
#include <osl/thread.h>
#include <osl/time.h>
#include <rtl/alloc.h>
#include <rtl/bootstrap.hxx> #include <rtl/bootstrap.hxx>
#include <rtl/instance.hxx> #include <rtl/byteseq.h>
#include <rtl/character.hxx>
#include <rtl/ref.hxx> #include <rtl/ref.hxx>
#include <rtl/strbuf.hxx> #include <rtl/strbuf.hxx>
#include <rtl/string.h> #include <rtl/string.h>
#include <rtl/string.hxx>
#include <rtl/textcvt.h> #include <rtl/textcvt.h>
#include <rtl/textenc.h> #include <rtl/textenc.h>
#include <rtl/unload.h>
#include <rtl/ustrbuf.hxx> #include <rtl/ustrbuf.hxx>
#include <rtl/ustring.h> #include <rtl/ustring.h>
#include <rtl/ustring.hxx> #include <rtl/ustring.hxx>
#include <rtl/uuid.h>
#include <sal/config.h> #include <sal/config.h>
#include <sal/detail/log.h>
#include <sal/log.hxx> #include <sal/log.hxx>
#include <sal/saldllapi.h>
#include <sal/types.h> #include <sal/types.h>
#include <salhelper/thread.hxx> #include <salhelper/thread.hxx>
#include <set> #include <com/sun/star/container/NoSuchElementException.hpp>
#include <stack> #include <com/sun/star/uno/Any.hxx>
#include <vector> #include <com/sun/star/uno/Exception.hpp>
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/uno/RuntimeException.hpp>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/uno/TypeClass.hdl>
#include <com/sun/star/uno/XAggregation.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/uno/XInterface.hpp>
#include <cppu/cppudllapi.h>
#include <cppu/unotype.hxx>
#include <cppuhelper/cppuhelperdllapi.h>
#include <cppuhelper/weak.hxx>
#include <cppuhelper/weakref.hxx>
#include <typelib/typeclass.h>
#include <typelib/typedescription.h>
#include <typelib/uik.h>
#include <xmlreader/span.hxx> #include <xmlreader/span.hxx>
#include <xmlreader/xmlreader.hxx>
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -8,19 +8,37 @@ ...@@ -8,19 +8,37 @@
*/ */
/* /*
This file has been autogenerated by update_pch.sh . It is possible to edit it 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 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 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). also fixes all possible problems, so it's usually better to use it).
Generated on 2015-11-14 14:16:28 using:
./bin/update_pch connectivity ado --cutoff=2 --exclude:system --exclude:module --exclude:local
If after updating build fails, use the following command to locate conflicting headers:
./bin/update_pch_bisect ./connectivity/inc/pch/precompiled_ado.hxx "/opt/lo/bin/make connectivity.build" --find-conflicts
*/ */
#include <algorithm> #include <algorithm>
#include <com/sun/star/beans/PropertyAttribute.hpp> #include <cassert>
#include <com/sun/star/bridge/oleautomation/Currency.hpp> #include <cstddef>
#include <com/sun/star/bridge/oleautomation/Date.hpp> #include <oledb.h>
#include <com/sun/star/bridge/oleautomation/Decimal.hpp> #include <string.h>
#include <com/sun/star/bridge/oleautomation/SCode.hpp> #include <osl/diagnose.h>
#include <osl/file.hxx>
#include <osl/mutex.hxx>
#include <osl/thread.h>
#include <osl/time.h>
#include <rtl/alloc.h>
#include <rtl/unload.h>
#include <rtl/ustrbuf.hxx>
#include <rtl/ustring.hxx>
#include <sal/config.h>
#include <sal/macros.h>
#include <salhelper/singletonref.hxx>
#include <com/sun/star/lang/DisposedException.hpp> #include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/sdbc/ColumnValue.hpp> #include <com/sun/star/sdbc/ColumnValue.hpp>
#include <com/sun/star/sdbc/DataType.hpp> #include <com/sun/star/sdbc/DataType.hpp>
#include <com/sun/star/sdbc/FetchDirection.hpp> #include <com/sun/star/sdbc/FetchDirection.hpp>
...@@ -29,34 +47,30 @@ ...@@ -29,34 +47,30 @@
#include <com/sun/star/sdbc/ProcedureResult.hpp> #include <com/sun/star/sdbc/ProcedureResult.hpp>
#include <com/sun/star/sdbc/ResultSetConcurrency.hpp> #include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
#include <com/sun/star/sdbc/ResultSetType.hpp> #include <com/sun/star/sdbc/ResultSetType.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
#include <com/sun/star/sdbc/TransactionIsolation.hpp> #include <com/sun/star/sdbc/TransactionIsolation.hpp>
#include <com/sun/star/sdbc/XResultSet.hpp> #include <com/sun/star/sdbc/XResultSet.hpp>
#include <com/sun/star/sdbc/XRow.hpp> #include <com/sun/star/sdbc/XRow.hpp>
#include <com/sun/star/sdbcx/KeyType.hpp> #include <com/sun/star/sdbcx/KeyType.hpp>
#include <com/sun/star/sdbcx/Privilege.hpp>
#include <com/sun/star/sdbcx/PrivilegeObject.hpp> #include <com/sun/star/sdbcx/PrivilegeObject.hpp>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/util/Date.hpp> #include <com/sun/star/util/Date.hpp>
#include <com/sun/star/util/DateTime.hpp>
#include <com/sun/star/util/Time.hpp>
#include <comphelper/extract.hxx> #include <comphelper/extract.hxx>
#include <comphelper/processfactory.hxx>
#include <comphelper/property.hxx> #include <comphelper/property.hxx>
#include <comphelper/seqstream.hxx> #include <comphelper/seqstream.hxx>
#include <comphelper/sequence.hxx> #include <comphelper/sequence.hxx>
#include <comphelper/types.hxx> #include <comphelper/types.hxx>
#include <comphelper/uno3.hxx> #include <cppuhelper/cppuhelperdllapi.h>
#include <cppuhelper/factory.hxx>
#include <cppuhelper/interfacecontainer.h>
#include <cppuhelper/queryinterface.hxx> #include <cppuhelper/queryinterface.hxx>
#include <cppuhelper/supportsservice.hxx> #include <cppuhelper/supportsservice.hxx>
#include <cppuhelper/typeprovider.hxx> #include <cppuhelper/typeprovider.hxx>
#include <limits> #include <connectivity/dbexception.hxx>
#include <memory> #include <connectivity/dbtools.hxx>
#include <osl/diagnose.h> #include <connectivity/dbtoolsdllapi.hxx>
#include <osl/file.hxx> #include <connectivity/sdbcx/IRefreshable.hxx>
#include <osl/thread.h>
#include <rtl/ustrbuf.hxx> // Prevent windows header macro pollution.
#include <sal/macros.h> #undef OPTIONAL
#undef DELETE
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -8,54 +8,56 @@ ...@@ -8,54 +8,56 @@
*/ */
/* /*
This file has been autogenerated by update_pch.sh . It is possible to edit it 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 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 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). also fixes all possible problems, so it's usually better to use it).
Generated on 2015-11-14 14:16:28 using:
./bin/update_pch connectivity calc --cutoff=2 --exclude:system --exclude:module --exclude:local
If after updating build fails, use the following command to locate conflicting headers:
./bin/update_pch_bisect ./connectivity/inc/pch/precompiled_calc.hxx "/opt/lo/bin/make connectivity.build" --find-conflicts
*/ */
#include <com/sun/star/beans/XPropertySet.hpp> #include <cassert>
#include <com/sun/star/frame/Desktop.hpp> #include <cstddef>
#include <com/sun/star/frame/XComponentLoader.hpp> #include <memory>
#include <stdlib.h>
#include <string.h>
#include <osl/thread.h>
#include <rtl/math.hxx>
#include <rtl/string.h>
#include <rtl/stringutils.hxx>
#include <rtl/textenc.h>
#include <rtl/unload.h>
#include <rtl/ustrbuf.h>
#include <rtl/ustrbuf.hxx>
#include <rtl/ustring.hxx>
#include <sal/config.h>
#include <sal/types.h>
#include <com/sun/star/lang/DisposedException.hpp> #include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/lang/XUnoTunnel.hpp> #include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/sdbc/ColumnValue.hpp> #include <com/sun/star/sdbc/ColumnValue.hpp>
#include <com/sun/star/sdbc/DataType.hpp> #include <com/sun/star/sdbc/DataType.hpp>
#include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
#include <com/sun/star/sdbc/ResultSetType.hpp>
#include <com/sun/star/sdbc/XResultSet.hpp>
#include <com/sun/star/sdbc/XRow.hpp> #include <com/sun/star/sdbc/XRow.hpp>
#include <com/sun/star/sdbcx/CompareBookmark.hpp>
#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
#include <com/sun/star/sdbcx/XIndexesSupplier.hpp>
#include <com/sun/star/sheet/CellFlags.hpp>
#include <com/sun/star/sheet/FormulaResult.hpp>
#include <com/sun/star/sheet/XCellRangeAddressable.hpp> #include <com/sun/star/sheet/XCellRangeAddressable.hpp>
#include <com/sun/star/sheet/XCellRangeReferrer.hpp>
#include <com/sun/star/sheet/XCellRangesQuery.hpp> #include <com/sun/star/sheet/XCellRangesQuery.hpp>
#include <com/sun/star/sheet/XDatabaseRange.hpp> #include <com/sun/star/sheet/XDatabaseRange.hpp>
#include <com/sun/star/sheet/XDatabaseRanges.hpp> #include <com/sun/star/sheet/XDatabaseRanges.hpp>
#include <com/sun/star/sheet/XSpreadsheet.hpp> #include <com/sun/star/sheet/XSpreadsheet.hpp>
#include <com/sun/star/sheet/XSpreadsheetDocument.hpp> #include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
#include <com/sun/star/sheet/XUsedAreaCursor.hpp> #include <com/sun/star/uno/Any.hxx>
#include <com/sun/star/text/XText.hpp> #include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/uno/Type.hxx>
#include <com/sun/star/util/NumberFormat.hpp> #include <com/sun/star/util/NumberFormat.hpp>
#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
#include <comphelper/extract.hxx>
#include <comphelper/processfactory.hxx> #include <comphelper/processfactory.hxx>
#include <comphelper/sequence.hxx> #include <comphelper/sequence.hxx>
#include <comphelper/types.hxx> #include <comphelper/types.hxx>
#include <cppuhelper/exc_hlp.hxx> #include <cppuhelper/cppuhelperdllapi.h>
#include <cppuhelper/factory.hxx> #include <svl/svldllapi.h>
#include <cppuhelper/queryinterface.hxx> #include <unotools/unotoolsdllapi.h>
#include <cppuhelper/supportsservice.hxx> #include <connectivity/dbexception.hxx>
#include <osl/thread.h> #include <connectivity/sdbcx/VColumn.hxx>
#include <rtl/math.hxx>
#include <rtl/ustrbuf.hxx>
#include <sal/config.h>
#include <svl/converter.hxx>
#include <svl/zforlist.hxx>
#include <tools/urlobj.hxx>
#include <unotools/pathoptions.hxx>
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This diff is collapsed.
...@@ -8,14 +8,22 @@ ...@@ -8,14 +8,22 @@
*/ */
/* /*
This file has been autogenerated by update_pch.sh . It is possible to edit it 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 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 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). also fixes all possible problems, so it's usually better to use it).
Generated on 2015-11-14 14:16:29 using:
./bin/update_pch dbaccess sdbt --cutoff=1 --exclude:system --include:module --exclude:local
If after updating build fails, use the following command to locate conflicting headers:
./bin/update_pch_bisect ./dbaccess/inc/pch/precompiled_sdbt.hxx "/opt/lo/bin/make dbaccess.build" --find-conflicts
*/ */
#include <algorithm> #include <algorithm>
#include <memory>
#include <boost/noncopyable.hpp> #include <boost/noncopyable.hpp>
#include <rtl/ustrbuf.hxx>
#include <com/sun/star/lang/NullPointerException.hpp> #include <com/sun/star/lang/NullPointerException.hpp>
#include <com/sun/star/sdb/CommandType.hpp> #include <com/sun/star/sdb/CommandType.hpp>
#include <com/sun/star/sdb/ErrorCondition.hpp> #include <com/sun/star/sdb/ErrorCondition.hpp>
...@@ -29,7 +37,6 @@ ...@@ -29,7 +37,6 @@
#include <connectivity/statementcomposer.hxx> #include <connectivity/statementcomposer.hxx>
#include <cppuhelper/exc_hlp.hxx> #include <cppuhelper/exc_hlp.hxx>
#include <cppuhelper/supportsservice.hxx> #include <cppuhelper/supportsservice.hxx>
#include <rtl/ustrbuf.hxx>
#include <tools/diagnose_ex.h> #include <tools/diagnose_ex.h>
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment