Put internal include dirs at the beginning so they override ones coming from the system. Closes #372.

pull/381/head
Jussi Pakkanen 9 years ago
parent 9496637a70
commit 4b3c43649e
  1. 28
      mesonbuild/backend/ninjabackend.py

@ -1435,6 +1435,23 @@ rule FORTRAN_DEP_HACK
if curdir == '':
curdir = '.'
commands += compiler.get_include_args(curdir, False)
# -I args work differently than other ones. In them the
# first found directory is used whereas for other flags
# (such as -ffoo -fno-foo) the latest one is used.
# Therefore put the internal include directories here
# at the beginning so they override args coming from
# e.g. pkg-config.
for i in target.get_include_dirs():
basedir = i.get_curdir()
for d in i.get_incdirs():
expdir = os.path.join(basedir, d)
srctreedir = os.path.join(self.build_to_src, expdir)
bargs = compiler.get_include_args(expdir, i.is_system)
sargs = compiler.get_include_args(srctreedir, i.is_system)
commands += bargs
commands += sargs
for d in i.get_extra_build_dirs():
commands += compiler.get_include_args(d, i.is_system)
for d in target.external_deps:
if d.need_threads():
commands += compiler.thread_flags()
@ -1476,17 +1493,6 @@ rule FORTRAN_DEP_HACK
i = os.path.join(self.get_target_private_dir(target), compiler.get_pch_name(pchlist[0]))
arr.append(i)
pch_dep = arr
for i in target.get_include_dirs():
basedir = i.get_curdir()
for d in i.get_incdirs():
expdir = os.path.join(basedir, d)
srctreedir = os.path.join(self.build_to_src, expdir)
bargs = compiler.get_include_args(expdir, i.is_system)
sargs = compiler.get_include_args(srctreedir, i.is_system)
commands += bargs
commands += sargs
for d in i.get_extra_build_dirs():
commands += compiler.get_include_args(d, i.is_system)
custom_target_include_dirs = []
for i in target.generated:
if isinstance(i, build.CustomTarget):

Loading…
Cancel
Save