diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2021-04-10 22:22:02 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-04-11 23:59:22 +0300 |
commit | 9dfd53dc404c5c2485c11343516135bb3e983e23 (patch) | |
tree | dc77a05fdfd8d671e6c24c1da9c0453e126ce747 /mesonbuild/backend/xcodebackend.py | |
parent | be3efaf1d55b3d0f43aa8a06b23d31364c683029 (diff) | |
download | meson-9dfd53dc404c5c2485c11343516135bb3e983e23.zip meson-9dfd53dc404c5c2485c11343516135bb3e983e23.tar.gz meson-9dfd53dc404c5c2485c11343516135bb3e983e23.tar.bz2 |
Xcode: fix setting up inlude args for source and build dirs.
Diffstat (limited to 'mesonbuild/backend/xcodebackend.py')
-rw-r--r-- | mesonbuild/backend/xcodebackend.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py index 3923c14..2bd6acf 100644 --- a/mesonbuild/backend/xcodebackend.py +++ b/mesonbuild/backend/xcodebackend.py @@ -1030,6 +1030,7 @@ class XCodeBackend(backends.Backend): # add the root build dir to the search path. So add an absolute path instead. # This may break reproducible builds, in which case patches are welcome. lang_cargs += self.get_build_dir_include_args(target, compiler, absolute_path=True) + lang_cargs += self.get_source_dir_include_args(target, compiler, absolute_path=True) langargs[langname] = args langargs[langname] += lang_cargs symroot = os.path.join(self.environment.get_build_dir(), target.subdir) @@ -1080,7 +1081,11 @@ class XCodeBackend(backends.Backend): settings_dict.add_item('PRODUCT_NAME', product_name) settings_dict.add_item('SECTORDER_FLAGS', '""') settings_dict.add_item('SYMROOT', f'"{symroot}"') - settings_dict.add_item('SYSTEM_HEADER_SEARCH_PATHS', '"{}"'.format(self.environment.get_build_dir())) + sysheader_arr = PbxArray() + # XCode will change every -I flag that points inside these directories + # to an -isystem. Thus set nothing in it since we control our own + # include flags. + settings_dict.add_item('SYSTEM_HEADER_SEARCH_PATHS', sysheader_arr) settings_dict.add_item('USE_HEADERMAP', 'NO') warn_array = PbxArray() settings_dict.add_item('WARNING_CFLAGS', warn_array) @@ -1090,8 +1095,12 @@ class XCodeBackend(backends.Backend): def add_otherargs(self, settings_dict, langargs): for langname, args in langargs.items(): if args: - # FIXME, proper quoting - settings_dict.add_item(f'OTHER_{langname}FLAGS', '"' + ' '.join(args) + '"') + quoted_args = [] + for a in args: + if ' ' in a: + a = r'\"' + a + r'\"' + quoted_args.append(a) + settings_dict.add_item(f'OTHER_{langname}FLAGS', '"' + ' '.join(quoted_args) + '"') def generate_xc_configurationList(self, objects_dict): # FIXME: sort items |