diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2014-03-31 23:03:21 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2014-03-31 23:03:21 +0300 |
commit | 6a435ffd9e0689554a59b1a8286a4319ae41894a (patch) | |
tree | d5dca5f8b6f97a9e0ea7bf26439ff6184d014cb3 /xcodebackend.py | |
parent | a3701daec92a5b4cc60ffeef5b2b5c1d6064296f (diff) | |
download | meson-6a435ffd9e0689554a59b1a8286a4319ae41894a.zip meson-6a435ffd9e0689554a59b1a8286a4319ae41894a.tar.gz meson-6a435ffd9e0689554a59b1a8286a4319ae41894a.tar.bz2 |
Somethign or something else.
Diffstat (limited to 'xcodebackend.py')
-rw-r--r-- | xcodebackend.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/xcodebackend.py b/xcodebackend.py index c9418ed..f167c4f 100644 --- a/xcodebackend.py +++ b/xcodebackend.py @@ -567,11 +567,20 @@ class XCodeBackend(backends.Backend): for target_name, target in self.build.targets.items(): for buildtype in self.buildtypes: dep_libs = [] + links_dylib = False for l in target.link_targets: abs_path = os.path.join(self.environment.get_build_dir(), buildtype, l.get_filename()) dep_libs.append("'%s'" % abs_path) - depstr = ' '.join(dep_libs) + if isinstance(l, build.SharedLibrary): + links_dylib = True + if links_dylib: + 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 + else: + ldargs = dep_libs + ldstr = ' '.join(ldargs) valid = self.buildconfmap[target_name][buildtype] self.write_line('%s /* %s */ = {' % (valid, buildtype)) self.indent_level+=1 @@ -592,8 +601,10 @@ class XCodeBackend(backends.Backend): self.write_line('GCC_SYMBOLS_PRIVATE_EXTERN = NO;') self.write_line('INSTALL_PATH = "";') self.write_line('LIBRARY_SEARCH_PATHS = "";') + if isinstance(target, build.SharedLibrary): + self.write_line('LIBRARY_STYLE = DYNAMIC;') self.write_line('OTHER_CFLAGS = " ";') - self.write_line('OTHER_LDFLAGS = "%s";' % depstr) + self.write_line('OTHER_LDFLAGS = "%s";' % ldstr) self.write_line('OTHER_REZFLAGS = "";') self.write_line('PRODUCT_NAME = %s;' % target_name) self.write_line('SECTORDER_FLAGS = "";') |