Handle files in subdirectories. Fancy that.

pull/15/head
Jussi Pakkanen 11 years ago
parent 65e4971685
commit f4261e6976
  1. 10
      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

Loading…
Cancel
Save