diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2023-10-16 09:50:34 -0700 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2023-10-17 12:58:09 +0530 |
commit | 5fcf3476614a971079b43866c1ba8830ac15ba8c (patch) | |
tree | e24de0036834ffad2c4481bf100f41ef6be0ae88 /mesonbuild/modules | |
parent | 658fe7243b1415bd4d2d1ae36d9beb3ed33c5e67 (diff) | |
download | meson-5fcf3476614a971079b43866c1ba8830ac15ba8c.zip meson-5fcf3476614a971079b43866c1ba8830ac15ba8c.tar.gz meson-5fcf3476614a971079b43866c1ba8830ac15ba8c.tar.bz2 |
modules/rust: only use include and define args from global/project args
Diffstat (limited to 'mesonbuild/modules')
-rw-r--r-- | mesonbuild/modules/rust.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/mesonbuild/modules/rust.py b/mesonbuild/modules/rust.py index 0781b32..3d0bdd5 100644 --- a/mesonbuild/modules/rust.py +++ b/mesonbuild/modules/rust.py @@ -12,8 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. from __future__ import annotations +import itertools import os import typing as T + from mesonbuild.interpreterbase.decorators import FeatureNew from . import ExtensionModule, ModuleReturnValue, ModuleInfo @@ -238,11 +240,13 @@ class RustModule(ExtensionModule): elif isinstance(s, CustomTarget): depends.append(s) - clang_args.extend(state.global_args.get('c', [])) - clang_args.extend(state.project_args.get('c', [])) + # We only want include directories and defines, other things may not be valid cargs = state.get_option('args', state.subproject, lang='c') assert isinstance(cargs, list), 'for mypy' clang_args.extend(cargs) + for a in itertools.chain(state.global_args.get('c', []), state.project_args.get('c', []), cargs): + if a.startswith(('-I', '/I', '-D', '/D', '-U', '/U')): + clang_args.append(a) if self._bindgen_bin is None: self._bindgen_bin = state.find_program('bindgen') |