summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/ninjabackend.py4
-rw-r--r--test cases/rust/27 objects/lib1-dylib.rs3
-rw-r--r--test cases/rust/27 objects/meson.build5
3 files changed, 10 insertions, 2 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 7413ee39c..dd37bb4be 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -29,7 +29,7 @@ from ..compilers import Compiler
from ..linkers import ArLikeLinker, RSPFileSyntax
from ..mesonlib import (
File, LibType, MachineChoice, MesonBugException, MesonException, OrderedSet, PerMachine,
- ProgressBar, quote_arg
+ ProgressBar, quote_arg, unique_list
)
from ..mesonlib import get_compiler_for_source, has_path_sep, is_parent_path
from ..options import OptionKey
@@ -2208,6 +2208,8 @@ class NinjaBackend(backends.Backend):
rustdoc = rustc.get_rustdoc(self.environment)
args = rustdoc.get_exe_args()
args += self.get_rust_compiler_args(target.doctests.target, rustdoc, target.rust_crate_type)
+ o, _ = self.flatten_object_list(target.doctests.target)
+ obj_list = unique_list(obj_list + o)
# Rustc does not add files in the obj_list to Rust rlibs,
# and is added by Meson to all of the dependencies, including here.
_, _, deps_args = self.get_rust_compiler_deps_and_args(target.doctests.target, rustdoc, obj_list)
diff --git a/test cases/rust/27 objects/lib1-dylib.rs b/test cases/rust/27 objects/lib1-dylib.rs
index 858b121f9..b5080e8f5 100644
--- a/test cases/rust/27 objects/lib1-dylib.rs
+++ b/test cases/rust/27 objects/lib1-dylib.rs
@@ -15,7 +15,8 @@ pub extern "C" fn c_func()
}
/// ```
-/// use lib12::rust_func;
+/// #[cfg(not(nodep))] use lib12::rust_func;
+/// #[cfg(nodep)] use lib12_nodep::rust_func;
/// rust_func();
/// ```
pub fn rust_func()
diff --git a/test cases/rust/27 objects/meson.build b/test cases/rust/27 objects/meson.build
index d6732d343..ad9578a6e 100644
--- a/test cases/rust/27 objects/meson.build
+++ b/test cases/rust/27 objects/meson.build
@@ -33,3 +33,8 @@ lib12_rlib = static_library('lib12', 'lib1-dylib.rs',
rust = import('rust')
rust.doctest('rlib with dep', lib12_rlib)
+
+lib12_rlib_nodep = static_library('lib12_nodep', 'lib1-dylib.rs')
+rust.doctest('rlib with dep in tests', lib12_rlib_nodep,
+ rust_args: ['--cfg', 'nodep'],
+ dependencies: dep2)