Specify module dependency in the srcs list
* "srcs" list contains one main Rust source file, followed by optional dependent modules. * A dependent module included in the "srcs" list is the module name prefixed with ":". * Add a simple test. Bug: 160331255 Test: make and manual test build dependencies on genrule modules Change-Id: I4f079138c2599158810b6412fce81b612a3f64a4
This commit is contained in:
@@ -253,10 +253,24 @@ func (compiler *baseCompiler) relativeInstallPath() string {
|
||||
return String(compiler.Properties.Relative_install_path)
|
||||
}
|
||||
|
||||
func srcPathFromModuleSrcs(ctx ModuleContext, srcs []string) android.Path {
|
||||
srcPaths := android.PathsForModuleSrc(ctx, srcs)
|
||||
if len(srcPaths) != 1 {
|
||||
ctx.PropertyErrorf("srcs", "srcs can only contain one path for rust modules")
|
||||
func srcPathFromModuleSrcs(ctx ModuleContext, srcs []string) (android.Path, android.Paths) {
|
||||
// The srcs can contain strings with prefix ":".
|
||||
// They are dependent modules of this module, with android.SourceDepTag.
|
||||
// They are not the main source file compiled by rustc.
|
||||
numSrcs := 0
|
||||
srcIndex := 0
|
||||
for i, s := range srcs {
|
||||
if android.SrcIsModule(s) == "" {
|
||||
numSrcs++
|
||||
srcIndex = i
|
||||
}
|
||||
}
|
||||
return srcPaths[0]
|
||||
if numSrcs != 1 {
|
||||
ctx.PropertyErrorf("srcs", "srcs can only contain one path for a rust file")
|
||||
}
|
||||
if srcIndex != 0 {
|
||||
ctx.PropertyErrorf("srcs", "main source file must be the first in srcs")
|
||||
}
|
||||
paths := android.PathsForModuleSrc(ctx, srcs)
|
||||
return paths[srcIndex], paths
|
||||
}
|
||||
|
Reference in New Issue
Block a user