diff options
author | Goncalo Carvalho <glslang@gmail.com> | 2017-06-25 21:36:11 +0100 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-06-29 11:04:57 -0400 |
commit | bcb2556c69eddd3e34fbe89f36a23ae8821c682d (patch) | |
tree | 45267cfa29542173e82bb9bb7320f1d101701d7d /mesonbuild/backend/ninjabackend.py | |
parent | f12ece4547f7882027e7ebd916a5e5de13129ce8 (diff) | |
download | meson-bcb2556c69eddd3e34fbe89f36a23ae8821c682d.zip meson-bcb2556c69eddd3e34fbe89f36a23ae8821c682d.tar.gz meson-bcb2556c69eddd3e34fbe89f36a23ae8821c682d.tar.bz2 |
add project/global args and include_dirs (useful for module maps) to swift targets
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 61b5f18..7f974ee 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1290,7 +1290,21 @@ int dummy; os.makedirs(self.get_target_private_dir_abs(target), exist_ok=True) compile_args = swiftc.get_compile_only_args() compile_args += swiftc.get_module_args(module_name) + compile_args += self.build.get_project_args(swiftc, target.subproject) + compile_args += self.build.get_global_args(swiftc) + for i in reversed(target.get_include_dirs()): + basedir = i.get_curdir() + for d in i.get_incdirs(): + if d not in ('', '.'): + expdir = os.path.join(basedir, d) + else: + expdir = basedir + srctreedir = os.path.normpath(os.path.join(self.environment.get_build_dir(), self.build_to_src, expdir)) + sargs = swiftc.get_include_args(srctreedir) + compile_args += sargs link_args = swiftc.get_output_args(os.path.join(self.environment.get_build_dir(), self.get_target_filename(target))) + link_args += self.build.get_project_link_args(swiftc, target.subproject) + link_args += self.build.get_global_link_args(swiftc) rundir = self.get_target_private_dir(target) out_module_name = self.swift_module_file_name(target) in_module_files = self.determine_swift_dep_modules(target) @@ -1300,6 +1314,11 @@ int dummy; module_includes += swiftc.get_include_args(x) link_deps = self.get_swift_link_deps(target) abs_link_deps = [os.path.join(self.environment.get_build_dir(), x) for x in link_deps] + for d in target.link_targets: + reldir = self.get_target_dir(d) + if reldir == '': + reldir = '.' + link_args += ['-L', os.path.normpath(os.path.join(self.environment.get_build_dir(), reldir))] (rel_generated, _) = self.split_swift_generated_sources(target) abs_generated = [os.path.join(self.environment.get_build_dir(), x) for x in rel_generated] # We need absolute paths because swiftc needs to be invoked in a subdir |