diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2021-04-05 15:50:54 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-04-05 15:50:54 +0300 |
commit | 3c3146195bb4aee67f813c299dac9d43af5203e2 (patch) | |
tree | 25125f388695a0f1cfd82f0489e04f6d8d735223 /mesonbuild/backend/xcodebackend.py | |
parent | 82f7f6393277bb7dc4356963014d1bd40a7c1ff0 (diff) | |
download | meson-3c3146195bb4aee67f813c299dac9d43af5203e2.zip meson-3c3146195bb4aee67f813c299dac9d43af5203e2.tar.gz meson-3c3146195bb4aee67f813c299dac9d43af5203e2.tar.bz2 |
Use warning args in the Xcode backend.
Diffstat (limited to 'mesonbuild/backend/xcodebackend.py')
-rw-r--r-- | mesonbuild/backend/xcodebackend.py | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py index f108e65..4b6e047 100644 --- a/mesonbuild/backend/xcodebackend.py +++ b/mesonbuild/backend/xcodebackend.py @@ -159,6 +159,9 @@ class PbxDict: ofile.write(indent_level*INDENT + f'{i.key} = ') i.value.write(ofile, indent_level) else: + print(i) + print(i.key) + print(i.value) raise RuntimeError('missing code') else: print(i) @@ -751,10 +754,8 @@ class XCodeBackend(backends.Backend): settings_dict.add_item('SYMROOT', '"%s"' % self.environment.get_build_dir()) settings_dict.add_item('USE_HEADERMAP', 'NO') warn_array = PbxArray() + warn_array.add_item('"$(inherited)"') settings_dict.add_item('WARNING_CFLAGS', warn_array) - warn_array.add_item('"-Wmost"') - warn_array.add_item('"-Wno-four-char-constants"') - warn_array.add_item('"-Wno-unknown-pragmas"') bt_dict.add_item('name', f'"{buildtype}"') @@ -779,9 +780,7 @@ class XCodeBackend(backends.Backend): settings_dict.add_item('USE_HEADERMAP', 'NO') warn_array = PbxArray() settings_dict.add_item('WARNING_CFLAGS', warn_array) - warn_array.add_item('"-Wmost"') - warn_array.add_item('"-Wno-four-char-constants"') - warn_array.add_item('"-Wno-unknown-pragmas"') + warn_array.add_item('"$(inherited)"') bt_dict.add_item('name', f'"{buildtype}"') # Now finally targets. @@ -833,16 +832,18 @@ class XCodeBackend(backends.Backend): for lang in self.environment.coredata.compilers[target.for_machine]: if lang not in LANGNAMEMAP: continue + compiler = target.compilers.get(lang) + # Start with warning args + warn_args = compiler.get_warn_args(self.get_option_for_target(OptionKey('warning_level'), target)) # Add compile args added using add_project_arguments() pargs = self.build.projects_args[target.for_machine].get(target.subproject, {}).get(lang, []) # Add compile args added using add_global_arguments() # These override per-project arguments gargs = self.build.global_args[target.for_machine].get(lang, []) targs = target.get_extra_args(lang) - args = pargs + gargs + targs + args = warn_args + pargs + gargs + targs if args: - langname = langnamemap[lang] - compiler = target.compilers.get(lang) + langname = LANGNAMEMAP[lang] lang_cargs = cargs if compiler and target.implicit_include_directories: lang_cargs += self.get_build_dir_include_args(target, compiler) @@ -888,8 +889,7 @@ class XCodeBackend(backends.Backend): settings_dict.add_item('LIBRARY_SEARCH_PATHS', '""') if isinstance(target, build.SharedLibrary): settings_dict.add_item('LIBRARY_STYLE', 'DYNAMIC') - for langname, args in langargs.items(): - settings_dict.add_item(f'OTHER_{langname}FLAGS', args) + self.add_otterargs(settings_dict, langargs) settings_dict.add_item('OTHER_LDFLAGS', f'"{ldstr}"') settings_dict.add_item('OTHER_REZFLAGS', '""') settings_dict.add_item('PRODUCT_NAME', product_name) @@ -899,11 +899,15 @@ class XCodeBackend(backends.Backend): settings_dict.add_item('USE_HEADERMAP', 'NO') warn_array = PbxArray() settings_dict.add_item('WARNING_CFLAGS', warn_array) - warn_array.add_item('"-Wmost"') - warn_array.add_item('"-Wno-four-char-constants"') - warn_array.add_item('"-Wno-unknown-pragmas"') + warn_array.add_item('"$(inherited)"') bt_dict.add_item('name', buildtype) + def add_otterargs(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) + '"') + def generate_xc_configurationList(self, objects_dict): # FIXME: sort items conf_dict = PbxDict() |