add "system" PCH that contains often used system headers such as STL
The idea is that this PCH will be used as a fallback for linktargets that do not explicitly set their own PCH. Change-Id: If05d3f04893a386e5d991f913e094f49249c8f44 Reviewed-on: https://gerrit.libreoffice.org/79363 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
This commit is contained in:
parent
fd90ad734a
commit
08d02b550a
9 changed files with 171 additions and 1 deletions
|
@ -97,6 +97,7 @@ $(eval $(call gb_Module_add_moduledirs,libreoffice,\
|
|||
oox \
|
||||
$(call gb_Helper_optional,OPENCL,opencl) \
|
||||
package \
|
||||
pch \
|
||||
postprocess \
|
||||
$(call gb_Helper_optional,PYUNO,pyuno) \
|
||||
$(call gb_Helper_optional,QADEVOOO,qadevOOo) \
|
||||
|
|
|
@ -42,8 +42,12 @@ for x in $headers; do
|
|||
fi
|
||||
else
|
||||
header=$x
|
||||
echo updating `echo $header | sed -e s%$root/%%`
|
||||
local 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
|
||||
fi
|
||||
echo updating $update_msg
|
||||
if [ "$module" = "external" ]; then
|
||||
module=external/`readlink -f $header | sed -e s%$root/external/%% -e s%/.*%%`
|
||||
fi
|
||||
|
|
7
pch/Makefile
Normal file
7
pch/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
||||
|
||||
module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||
|
||||
include $(module_directory)/../solenv/gbuild/partial_build.mk
|
||||
|
||||
# vim: set noet sw=4 ts=4:
|
26
pch/Module_pch.mk
Normal file
26
pch/Module_pch.mk
Normal file
|
@ -0,0 +1,26 @@
|
|||
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
||||
#
|
||||
# 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 incorporates work covered by the following license notice:
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed
|
||||
# with this work for additional information regarding copyright
|
||||
# ownership. The ASF licenses this file to you under the Apache
|
||||
# License, Version 2.0 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
#
|
||||
|
||||
$(eval $(call gb_Module_Module,pch))
|
||||
|
||||
$(eval $(call gb_Module_add_targets,pch,\
|
||||
StaticLibrary_precompiled_system \
|
||||
))
|
||||
|
||||
# vim: set noet sw=4 ts=4:
|
3
pch/README
Normal file
3
pch/README
Normal file
|
@ -0,0 +1,3 @@
|
|||
The purpose of this directory is to generate global precompiled headers
|
||||
that can be used by any other gbuild library/executable.
|
||||
The libraries themselves are not used.
|
20
pch/StaticLibrary_precompiled_system.mk
Normal file
20
pch/StaticLibrary_precompiled_system.mk
Normal file
|
@ -0,0 +1,20 @@
|
|||
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
||||
#
|
||||
# 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/.
|
||||
#
|
||||
|
||||
$(eval $(call gb_StaticLibrary_StaticLibrary,precompiled_system))
|
||||
|
||||
$(eval $(call gb_StaticLibrary_set_precompiled_header,precompiled_system,pch/inc/pch/precompiled_system))
|
||||
|
||||
$(eval $(call gb_StaticLibrary_use_external,precompiled_system,boost_headers))
|
||||
|
||||
$(eval $(call gb_StaticLibrary_add_exception_objects,precompiled_system,\
|
||||
pch/system_empty \
|
||||
))
|
||||
|
||||
# vim: set noet sw=4 ts=4:
|
12
pch/inc/pch/precompiled_system.cxx
Normal file
12
pch/inc/pch/precompiled_system.cxx
Normal file
|
@ -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_system.hxx"
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
87
pch/inc/pch/precompiled_system.hxx
Normal file
87
pch/inc/pch/precompiled_system.hxx
Normal file
|
@ -0,0 +1,87 @@
|
|||
/* -*- 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/.
|
||||
*/
|
||||
|
||||
// Unlike other precompiled_* files, this one is (semi-)manually created.
|
||||
// It is based on the output of
|
||||
// (for file in */inc/pch/precompiled_*.hxx; do cat "$file" | grep -A 1000 -F "#if PCH_LEVEL >= 1" | grep -B 1000 -F "#endif // PCH_LEVEL >= 1"; done) | grep "#include" | sort -u
|
||||
// which is then examined and used here.
|
||||
|
||||
#if PCH_LEVEL >= 1
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
#include <assert.h>
|
||||
#include <atomic>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/cast.hpp>
|
||||
#include <boost/circular_buffer.hpp>
|
||||
#include <boost/functional/hash.hpp>
|
||||
#include <boost/intrusive_ptr.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
#include <boost/logic/tribool.hpp>
|
||||
#include <boost/math/special_functions/sinc.hpp>
|
||||
#include <boost/multi_array.hpp>
|
||||
#include <boost/multi_index/composite_key.hpp>
|
||||
#include <boost/multi_index_container.hpp>
|
||||
#include <boost/multi_index/identity.hpp>
|
||||
#include <boost/multi_index/mem_fun.hpp>
|
||||
#include <boost/multi_index/ordered_index.hpp>
|
||||
#include <boost/multi_index/random_access_index.hpp>
|
||||
#include <boost/operators.hpp>
|
||||
#include <boost/optional.hpp>
|
||||
#include <boost/optional/optional.hpp>
|
||||
#include <boost/property_tree/json_parser.hpp>
|
||||
#include <boost/rational.hpp>
|
||||
#include <boost/version.hpp>
|
||||
#include <cassert>
|
||||
#include <climits>
|
||||
#include <cmath>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <deque>
|
||||
#include <errno.h>
|
||||
#include <exception>
|
||||
#include <float.h>
|
||||
#include <functional>
|
||||
#include <initializer_list>
|
||||
#include <iomanip>
|
||||
#include <iostream>
|
||||
#include <iterator>
|
||||
#include <limits>
|
||||
#include <limits.h>
|
||||
#include <list>
|
||||
#include <locale>
|
||||
#include <map>
|
||||
#include <math.h>
|
||||
#include <memory>
|
||||
#include <new>
|
||||
#include <numeric>
|
||||
#include <ostream>
|
||||
#include <queue>
|
||||
#include <set>
|
||||
#include <sstream>
|
||||
#include <stack>
|
||||
#include <stdarg.h>
|
||||
#include <stddef.h>
|
||||
#include <stdexcept>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string>
|
||||
#include <string.h>
|
||||
#include <string_view>
|
||||
#include <time.h>
|
||||
#include <typeinfo>
|
||||
#include <type_traits>
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
#endif // PCH_LEVEL >= 1
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
10
pch/system_empty.cxx
Normal file
10
pch/system_empty.cxx
Normal file
|
@ -0,0 +1,10 @@
|
|||
/* -*- 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/.
|
||||
*/
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
Loading…
Reference in a new issue