diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2023-04-18 15:56:35 +0300 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2023-04-20 13:53:26 +0530 |
commit | e2c454b86e5fcb2dbbabe33199dc4b877dcdb95d (patch) | |
tree | 0a7c19561892b29cff0372cae68157af55524a25 /mesonbuild | |
parent | 3c9817fe7f0602df2d86519682e91fa8faf735ef (diff) | |
download | meson-e2c454b86e5fcb2dbbabe33199dc4b877dcdb95d.zip meson-e2c454b86e5fcb2dbbabe33199dc4b877dcdb95d.tar.gz meson-e2c454b86e5fcb2dbbabe33199dc4b877dcdb95d.tar.bz2 |
rust: Also disallow `.` in Rust library target names
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 4 | ||||
-rw-r--r-- | mesonbuild/build.py | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 54cf07c..81be3a1 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1892,8 +1892,8 @@ class NinjaBackend(backends.Backend): args.extend(rustc.get_linker_always_args()) args += self.generate_basic_compiler_args(target, rustc, False) - # Rustc replaces - with _. spaces are not allowed, so we replace them with underscores - args += ['--crate-name', target.name.replace('-', '_').replace(' ', '_')] + # Rustc replaces - with _. spaces or dots are not allowed, so we replace them with underscores + args += ['--crate-name', target.name.replace('-', '_').replace(' ', '_').replace('.', '_')] depfile = os.path.join(target.subdir, target.name + '.d') args += ['--emit', f'dep-info={depfile}', '--emit', 'link'] args += target.get_extra_args('rust') diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 0a2a617..7e8270c 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -1988,8 +1988,8 @@ class StaticLibrary(BuildTarget): elif self.rust_crate_type not in ['rlib', 'staticlib']: raise InvalidArguments(f'Crate type "{self.rust_crate_type}" invalid for static libraries; must be "rlib" or "staticlib"') # See https://github.com/rust-lang/rust/issues/110460 - if self.rust_crate_type == 'rlib' and any(c in self.name for c in ['-', ' ']): - raise InvalidArguments('Rust crate types "dylib" and "proc-macro" do not allow spaces or dashes in the library name ' + if self.rust_crate_type == 'rlib' and any(c in self.name for c in ['-', ' ', '.']): + raise InvalidArguments('Rust crate type "rlib" does not allow spaces, periods or dashes in the library name ' 'due to a limitation of rustc. Replace them with underscores, for example') # By default a static library is named libfoo.a even on Windows because # MSVC does not have a consistent convention for what static libraries @@ -2082,8 +2082,8 @@ class SharedLibrary(BuildTarget): elif self.rust_crate_type not in ['dylib', 'cdylib', 'proc-macro']: raise InvalidArguments(f'Crate type "{self.rust_crate_type}" invalid for dynamic libraries; must be "dylib", "cdylib", or "proc-macro"') # See https://github.com/rust-lang/rust/issues/110460 - if self.rust_crate_type != 'cdylib' and any(c in self.name for c in ['-', ' ']): - raise InvalidArguments('Rust crate types "dylib" and "proc-macro" do not allow spaces or dashes in the library name ' + if self.rust_crate_type != 'cdylib' and any(c in self.name for c in ['-', ' ', '.']): + raise InvalidArguments('Rust crate types "dylib" and "proc-macro" do not allow spaces, periods or dashes in the library name ' 'due to a limitation of rustc. Replace them with underscores, for example') if not hasattr(self, 'prefix'): |