aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/modules
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2023-10-16 09:50:34 -0700
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2023-10-17 12:58:09 +0530
commit5fcf3476614a971079b43866c1ba8830ac15ba8c (patch)
treee24de0036834ffad2c4481bf100f41ef6be0ae88 /mesonbuild/modules
parent658fe7243b1415bd4d2d1ae36d9beb3ed33c5e67 (diff)
downloadmeson-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.py8
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')