diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2023-04-13 20:38:32 +0300 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2023-04-14 06:22:33 -0400 |
commit | c725816c8191ad3235fe3f5f45dddaff429158e2 (patch) | |
tree | 317bf1f21c78eb26461d8f7944c488df713f9adb /mesonbuild/backend/ninjabackend.py | |
parent | 49e62877d14fee68baf854fde3c13f58a97384de (diff) | |
download | meson-c725816c8191ad3235fe3f5f45dddaff429158e2.zip meson-c725816c8191ad3235fe3f5f45dddaff429158e2.tar.gz meson-c725816c8191ad3235fe3f5f45dddaff429158e2.tar.bz2 |
rust: Convert dashes in crate names to underscores
Dashes can't be used as identifiers in Rust and cargo is converting
dashes in crate names to underscores for the same reason.
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 2522b62..d0c63f2 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1908,8 +1908,13 @@ class NinjaBackend(backends.Backend): # specify `extern CRATE_NAME=OUTPUT_FILE` for each Rust # dependency, so that collisions with libraries in rustc's # sysroot don't cause ambiguity - args += ['--extern', '{}={}'.format(d.name, os.path.join(d.subdir, d.filename))] - project_deps.append(RustDep(d.name, self.rust_crates[d.name].order)) + # + # Also convert crate names with dashes to underscores like + # cargo does as dashes can't be used as parts of identifiers + # in Rust + d_name = d.name.replace('-', '_') + args += ['--extern', '{}={}'.format(d_name, os.path.join(d.subdir, d.filename))] + project_deps.append(RustDep(d_name, self.rust_crates[d.name].order)) elif d.typename == 'static library': # Rustc doesn't follow Meson's convention that static libraries # are called .a, and import libraries are .lib, so we have to @@ -1946,8 +1951,13 @@ class NinjaBackend(backends.Backend): # specify `extern CRATE_NAME=OUTPUT_FILE` for each Rust # dependency, so that collisions with libraries in rustc's # sysroot don't cause ambiguity - args += ['--extern', '{}={}'.format(d.name, os.path.join(d.subdir, d.filename))] - project_deps.append(RustDep(d.name, self.rust_crates[d.name].order)) + # + # Also convert crate names with dashes to underscores like + # cargo does as dashes can't be used as parts of identifiers + # in Rust + d_name = d.name.replace('-', '_') + args += ['--extern', '{}={}'.format(d_name, os.path.join(d.subdir, d.filename))] + project_deps.append(RustDep(d_name, self.rust_crates[d.name].order)) else: if rustc.linker.id in {'link', 'lld-link'}: if verbatim: |