diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2014-04-02 21:19:34 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2014-04-02 21:19:34 +0300 |
commit | f4261e6976bd801991fbf8fa9dfef0a914e9b3ff (patch) | |
tree | 7b30b3ce67b18e3d599e265aecd96ca738c98bce /xcodebackend.py | |
parent | 65e49716857a78b6b593b5dad0375933f43f9f54 (diff) | |
download | meson-f4261e6976bd801991fbf8fa9dfef0a914e9b3ff.zip meson-f4261e6976bd801991fbf8fa9dfef0a914e9b3ff.tar.gz meson-f4261e6976bd801991fbf8fa9dfef0a914e9b3ff.tar.bz2 |
Handle files in subdirectories. Fancy that.
Diffstat (limited to 'xcodebackend.py')
-rw-r--r-- | xcodebackend.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/xcodebackend.py b/xcodebackend.py index 471d061..bcbe5a5 100644 --- a/xcodebackend.py +++ b/xcodebackend.py @@ -96,6 +96,7 @@ class XCodeBackend(backends.Backend): self.target_filemap = {} for name, t in self.build.targets.items(): for s in t.sources: + s = os.path.join(t.subdir, s) if isinstance(s, str): self.filemap[s] = self.gen_id() self.target_filemap[name] = self.gen_id() @@ -104,6 +105,7 @@ class XCodeBackend(backends.Backend): self.buildmap = {} for t in self.build.targets.values(): for s in t.sources: + s = os.path.join(t.subdir, s) if isinstance(s, str): self.buildmap[s] = self.gen_id() @@ -201,6 +203,7 @@ class XCodeBackend(backends.Backend): templ = '%s /* %s */ = { isa = PBXBuildFile; fileRef = %s /* %s */; settings = { COMPILER_FLAGS = "%s"; }; };\n' for t in self.build.targets.values(): for s in t.sources: + s = os.path.join(t.subdir, s) if isinstance(s, str): idval = self.buildmap[s] fullpath = os.path.join(self.environment.get_source_dir(), s) @@ -332,6 +335,7 @@ class XCodeBackend(backends.Backend): self.write_line('children = (') self.indent_level+=1 for s in self.build.targets[t].sources: + s = os.path.join(self.build.targets[t].subdir, s) if isinstance(s, str): self.write_line('%s /* %s */,' % (self.filemap[s], s)) self.indent_level-=1 @@ -470,6 +474,7 @@ class XCodeBackend(backends.Backend): self.write_line('files = (') self.indent_level+=1 for s in self.build.targets[name].sources: + s = os.path.join(self.build.targets[name].subdir, s) if not self.environment.is_header(s): self.write_line('%s /* %s */,' % (self.buildmap[s], os.path.join(self.environment.get_source_dir(), s))) self.indent_level-=1 @@ -582,12 +587,13 @@ class XCodeBackend(backends.Backend): dep_libs = ['-Wl,-search_paths_first', '-Wl,-headerpad_max_install_names'] + dep_libs if isinstance(target, build.SharedLibrary): ldargs = ['-dynamiclib', '-Wl,-headerpad_max_install_names'] + dep_libs - install_path = os.path.join(self.environment.get_build_dir(), buildtype) + install_path = os.path.join(self.environment.get_build_dir(), target.subdir, buildtype) else: ldargs = dep_libs install_path = '' ldstr = ' '.join(ldargs) valid = self.buildconfmap[target_name][buildtype] + symroot = os.path.join(self.environment.get_build_dir(), target.subdir) self.write_line('%s /* %s */ = {' % (valid, buildtype)) self.indent_level+=1 self.write_line('isa = XCBuildConfiguration;') @@ -614,7 +620,7 @@ class XCodeBackend(backends.Backend): self.write_line('OTHER_REZFLAGS = "";') self.write_line('PRODUCT_NAME = %s;' % target_name) self.write_line('SECTORDER_FLAGS = "";') - self.write_line('SYMROOT = "%s";' % self.environment.get_build_dir()) + self.write_line('SYMROOT = "%s";' % symroot) self.write_line('USE_HEADERMAP = NO;') self.write_line('WARNING_CFLAGS = ("-Wmost", "-Wno-four-char-constants", "-Wno-unknown-pragmas", );') self.indent_level-=1 |