rust: Allow modules to use only generated sources
Removes the need for rust_test modules that test generated source to define a source file that simply calls include()! to pull in the generated source. Bug: 196076408 Test: m libselinux_bindgen_test Change-Id: I600301ab74f6ece861916fa2545b061c81b0d92d
This commit is contained in:
parent
adffbe9166
commit
e4db0036d7
1 changed files with 12 additions and 2 deletions
|
@ -65,7 +65,11 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type BaseCompilerProperties struct {
|
type BaseCompilerProperties struct {
|
||||||
// path to the source file that is the main entry point of the program (e.g. main.rs or lib.rs)
|
// path to the source file that is the main entry point of the program (e.g. main.rs or lib.rs).
|
||||||
|
// Only a single source file can be defined. Modules which generate source can be included by prefixing
|
||||||
|
// the module name with ":", for example ":libfoo_bindgen"
|
||||||
|
//
|
||||||
|
// If no source file is defined, a single generated source module can be defined to be used as the main source.
|
||||||
Srcs []string `android:"path,arch_variant"`
|
Srcs []string `android:"path,arch_variant"`
|
||||||
|
|
||||||
// name of the lint set that should be used to validate this module.
|
// name of the lint set that should be used to validate this module.
|
||||||
|
@ -420,12 +424,18 @@ func srcPathFromModuleSrcs(ctx ModuleContext, srcs []string) (android.Path, andr
|
||||||
srcIndex = i
|
srcIndex = i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if numSrcs != 1 {
|
if numSrcs > 1 {
|
||||||
ctx.PropertyErrorf("srcs", incorrectSourcesError)
|
ctx.PropertyErrorf("srcs", incorrectSourcesError)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If a main source file is not provided we expect only a single SourceProvider module to be defined
|
||||||
|
// within srcs, with the expectation that the first source it provides is the entry point.
|
||||||
if srcIndex != 0 {
|
if srcIndex != 0 {
|
||||||
ctx.PropertyErrorf("srcs", "main source file must be the first in srcs")
|
ctx.PropertyErrorf("srcs", "main source file must be the first in srcs")
|
||||||
|
} else if numSrcs > 1 {
|
||||||
|
ctx.PropertyErrorf("srcs", "only a single generated source module can be defined without a main source file.")
|
||||||
}
|
}
|
||||||
|
|
||||||
paths := android.PathsForModuleSrc(ctx, srcs)
|
paths := android.PathsForModuleSrc(ctx, srcs)
|
||||||
return paths[srcIndex], paths[1:]
|
return paths[srcIndex], paths[1:]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue