diff options
author | Jeff Moguillansky <jmoguillansky@gopro.com> | 2021-02-04 10:07:12 -0800 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2021-02-04 13:05:17 -0800 |
commit | 9226a92fe0111bf84bdad0964e0381c31e5a2379 (patch) | |
tree | 1d56255a86ffa6eeb3ae34de844253abdd7841f7 | |
parent | 7fd69cb4c4452b0dcaad7c2bb96f1e69188865e8 (diff) | |
download | meson-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.py | 11 | ||||
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 11 | ||||
-rw-r--r-- | mesonbuild/backend/xcodebackend.py | 10 |
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 |