aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Moguillansky <jmoguillansky@gopro.com>2021-02-04 10:07:12 -0800
committerDylan Baker <dylan@pnwbakers.com>2021-02-04 13:05:17 -0800
commit9226a92fe0111bf84bdad0964e0381c31e5a2379 (patch)
tree1d56255a86ffa6eeb3ae34de844253abdd7841f7
parent7fd69cb4c4452b0dcaad7c2bb96f1e69188865e8 (diff)
downloadmeson-9226a92fe0111bf84bdad0964e0381c31e5a2379.zip
meson-9226a92fe0111bf84bdad0964e0381c31e5a2379.tar.gz
meson-9226a92fe0111bf84bdad0964e0381c31e5a2379.tar.bz2
xcode-backend: add implicit includes
Move helper functions get_source_dir_include_args and get_build_dir_include_args to backend base class
-rw-r--r--mesonbuild/backend/backends.py11
-rw-r--r--mesonbuild/backend/ninjabackend.py11
-rw-r--r--mesonbuild/backend/xcodebackend.py10
3 files changed, 18 insertions, 14 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index badc2d0..f95ca4d 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -248,6 +248,17 @@ class Backend:
return self.environment.coredata.validate_option_value(option_name, override)
return self.environment.coredata.get_option(option_name.evolve(subproject=target.subproject))
+ def get_source_dir_include_args(self, target, compiler):
+ curdir = target.get_subdir()
+ tmppath = os.path.normpath(os.path.join(self.build_to_src, curdir))
+ return compiler.get_include_args(tmppath, False)
+
+ def get_build_dir_include_args(self, target, compiler):
+ curdir = target.get_subdir()
+ if curdir == '':
+ curdir = '.'
+ return compiler.get_include_args(curdir, False)
+
def get_target_filename_for_linking(self, target):
# On some platforms (msvc for instance), the file that is used for
# dynamic linking is not the same as the dynamic library itself. This
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 36f1fd2..4bf195e 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -2334,17 +2334,6 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485'''))
self.add_build(element)
return (rel_obj, rel_src)
- def get_source_dir_include_args(self, target, compiler):
- curdir = target.get_subdir()
- tmppath = os.path.normpath(os.path.join(self.build_to_src, curdir))
- return compiler.get_include_args(tmppath, False)
-
- def get_build_dir_include_args(self, target, compiler):
- curdir = target.get_subdir()
- if curdir == '':
- curdir = '.'
- return compiler.get_include_args(curdir, False)
-
@lru_cache(maxsize=None)
def get_normpath_target(self, source) -> str:
return os.path.normpath(source)
diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py
index 9deffba..7ee4e80 100644
--- a/mesonbuild/backend/xcodebackend.py
+++ b/mesonbuild/backend/xcodebackend.py
@@ -738,7 +738,6 @@ class XCodeBackend(backends.Backend):
ldargs += self.build.get_project_link_args(linker, target.subproject, target.for_machine)
ldargs += self.build.get_global_link_args(linker, target.for_machine)
cargs = []
- cargs.append('-I.')
for dep in target.get_external_deps():
cargs += dep.get_compile_args()
ldargs += dep.get_link_args()
@@ -756,8 +755,13 @@ class XCodeBackend(backends.Backend):
targs = target.get_extra_args(lang)
args = pargs + gargs + targs
if args:
- langargs[langnamemap[lang]] = args
- langargs[langnamemap[lang]] += cargs
+ langname = langnamemap[lang]
+ compiler = target.compilers.get(lang)
+ lang_cargs = cargs
+ if compiler and target.implicit_include_directories:
+ lang_cargs += self.get_build_dir_include_args(target, compiler)
+ langargs[langname] = args
+ langargs[langname] += lang_cargs
symroot = os.path.join(self.environment.get_build_dir(), target.subdir)
self.write_line('%s /* %s */ = {' % (valid, buildtype))
self.indent_level += 1