aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabrĂ­el ArthĂșr PĂ©tursson <gabriel@system.is>2017-08-06 22:02:45 +0000
committerJussi Pakkanen <jpakkane@gmail.com>2017-08-13 21:24:28 +0300
commit0ad448f89009e87fc3f22a85b0af53de5ebf8355 (patch)
treeba6a32fc69acda2f7ddd2259a7c2fb8d90cab7ed
parent556966003ebd95c275b8d2c889c1d8ac339f3d36 (diff)
downloadmeson-0ad448f89009e87fc3f22a85b0af53de5ebf8355.zip
meson-0ad448f89009e87fc3f22a85b0af53de5ebf8355.tar.gz
meson-0ad448f89009e87fc3f22a85b0af53de5ebf8355.tar.bz2
Pass -fpch-preprocess to GCC when precompiled headers are used
CCache requires this flag when building with precompiled headers. Without it, the preprocessor fails and CCache fallbacks to running the real compiler. Users still need to set 'sloppiness' to 'pch_defines,time_macros' in their ccache.conf file for CCache to cache builds that use precompiled headers. See the CCache manual for more info: https://ccache.samba.org/manual.html#_precompiled_headers
-rw-r--r--mesonbuild/compilers/c.py3
-rw-r--r--mesonbuild/compilers/cpp.py5
2 files changed, 8 insertions, 0 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index 018c353..ec16134 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -777,6 +777,9 @@ class GnuCCompiler(GnuCompiler, CCompiler):
def get_std_shared_lib_link_args(self):
return ['-shared']
+ def get_pch_use_args(self, pch_dir, header):
+ return ['-fpch-preprocess', '-include', os.path.split(header)[-1]]
+
class IntelCCompiler(IntelCompiler, CCompiler):
def __init__(self, exelist, version, icc_type, is_cross, exe_wrapper=None):
diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
index a933f0e..a9093b3 100644
--- a/mesonbuild/compilers/cpp.py
+++ b/mesonbuild/compilers/cpp.py
@@ -12,6 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+import os.path
+
from .. import coredata
from ..mesonlib import version_compare
@@ -126,6 +128,9 @@ class GnuCPPCompiler(GnuCompiler, CPPCompiler):
return options['cpp_winlibs'].value[:]
return []
+ def get_pch_use_args(self, pch_dir, header):
+ return ['-fpch-preprocess', '-include', os.path.split(header)[-1]]
+
class IntelCPPCompiler(IntelCompiler, CPPCompiler):
def __init__(self, exelist, version, icc_type, is_cross, exe_wrap):