summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wen-yi Chu <wenyichu@google.com> 2023-09-22 03:58:59 +0000
committer Wen-yi Chu <wenyichu@google.com> 2023-09-22 22:05:54 +0000
commit9c64274b275a00d7753bbe1a15945652521b2044 (patch)
tree2ce76ca4f1fd585328de3d4c6365bb72e89c1a7c
parent789a7e0883d5e142ff98898ac02797f106d38b9c (diff)
Revert^3 "add crate_root property to rust modules"
60375c4adf0753d0e2519ebf1b908d424dd2d466 Change-Id: I356e936139592893a47d4c6b9e747f24470b11f9
-rw-r--r--rust/binary.go9
-rw-r--r--rust/compiler.go11
-rw-r--r--rust/library.go18
-rw-r--r--rust/toolchain_library.go19
4 files changed, 16 insertions, 41 deletions
diff --git a/rust/binary.go b/rust/binary.go
index aee4da699..1408ff17b 100644
--- a/rust/binary.go
+++ b/rust/binary.go
@@ -138,14 +138,9 @@ func (binary *binaryDecorator) preferRlib() bool {
func (binary *binaryDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) buildOutput {
fileName := binary.getStem(ctx) + ctx.toolchain().ExecutableSuffix()
+ srcPath, _ := srcPathFromModuleSrcs(ctx, binary.baseCompiler.Properties.Srcs)
outputFile := android.PathForModuleOut(ctx, fileName)
ret := buildOutput{outputFile: outputFile}
- var crateRootPath android.Path
- if binary.baseCompiler.Properties.Crate_root == nil {
- crateRootPath, _ = srcPathFromModuleSrcs(ctx, binary.baseCompiler.Properties.Srcs)
- } else {
- crateRootPath = android.PathForModuleSrc(ctx, *binary.baseCompiler.Properties.Crate_root)
- }
flags.RustFlags = append(flags.RustFlags, deps.depFlags...)
flags.LinkFlags = append(flags.LinkFlags, deps.depLinkFlags...)
@@ -160,7 +155,7 @@ func (binary *binaryDecorator) compile(ctx ModuleContext, flags Flags, deps Path
}
binary.baseCompiler.unstrippedOutputFile = outputFile
- ret.kytheFile = TransformSrcToBinary(ctx, crateRootPath, deps, flags, outputFile).kytheFile
+ ret.kytheFile = TransformSrcToBinary(ctx, srcPath, deps, flags, outputFile).kytheFile
return ret
}
diff --git a/rust/compiler.go b/rust/compiler.go
index d6c52e8d4..e6a7a9356 100644
--- a/rust/compiler.go
+++ b/rust/compiler.go
@@ -73,15 +73,6 @@ type BaseCompilerProperties struct {
// 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"`
- // Entry point that is passed to rustc to begin the compilation. E.g. main.rs or lib.rs.
- // When this property is set,
- // * sandboxing is enabled for this module, and
- // * the srcs attribute is interpreted as a list of all source files potentially
- // used in compilation, including the entrypoint, and
- // * compile_data can be used to add additional files used in compilation that
- // not directly used as source files.
- Crate_root *string `android:"path,arch_variant"`
-
// name of the lint set that should be used to validate this module.
//
// Possible values are "default" (for using a sensible set of lints
@@ -520,8 +511,6 @@ func srcPathFromModuleSrcs(ctx ModuleContext, srcs []string) (android.Path, andr
ctx.PropertyErrorf("srcs", "only a single generated source module can be defined without a main source file.")
}
- // TODO: b/297264540 - once all modules are sandboxed, we need to select the proper
- // entry point file from Srcs rather than taking the first one
paths := android.PathsForModuleSrc(ctx, srcs)
return paths[srcIndex], paths[1:]
}
diff --git a/rust/library.go b/rust/library.go
index f4a2b5441..035708674 100644
--- a/rust/library.go
+++ b/rust/library.go
@@ -489,7 +489,7 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa
var outputFile android.ModuleOutPath
var ret buildOutput
var fileName string
- crateRootPath := library.crateRootPath(ctx, deps)
+ srcPath := library.srcPath(ctx, deps)
if library.sourceProvider != nil {
deps.srcProviderFiles = append(deps.srcProviderFiles, library.sourceProvider.Srcs()...)
@@ -536,13 +536,13 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa
// Call the appropriate builder for this library type
if library.rlib() {
- ret.kytheFile = TransformSrctoRlib(ctx, crateRootPath, deps, flags, outputFile).kytheFile
+ ret.kytheFile = TransformSrctoRlib(ctx, srcPath, deps, flags, outputFile).kytheFile
} else if library.dylib() {
- ret.kytheFile = TransformSrctoDylib(ctx, crateRootPath, deps, flags, outputFile).kytheFile
+ ret.kytheFile = TransformSrctoDylib(ctx, srcPath, deps, flags, outputFile).kytheFile
} else if library.static() {
- ret.kytheFile = TransformSrctoStatic(ctx, crateRootPath, deps, flags, outputFile).kytheFile
+ ret.kytheFile = TransformSrctoStatic(ctx, srcPath, deps, flags, outputFile).kytheFile
} else if library.shared() {
- ret.kytheFile = TransformSrctoShared(ctx, crateRootPath, deps, flags, outputFile).kytheFile
+ ret.kytheFile = TransformSrctoShared(ctx, srcPath, deps, flags, outputFile).kytheFile
}
if library.rlib() || library.dylib() {
@@ -585,15 +585,13 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa
return ret
}
-func (library *libraryDecorator) crateRootPath(ctx ModuleContext, _ PathDeps) android.Path {
+func (library *libraryDecorator) srcPath(ctx ModuleContext, _ PathDeps) android.Path {
if library.sourceProvider != nil {
// Assume the first source from the source provider is the library entry point.
return library.sourceProvider.Srcs()[0]
- } else if library.baseCompiler.Properties.Crate_root == nil {
+ } else {
path, _ := srcPathFromModuleSrcs(ctx, library.baseCompiler.Properties.Srcs)
return path
- } else {
- return android.PathForModuleSrc(ctx, *library.baseCompiler.Properties.Crate_root)
}
}
@@ -608,7 +606,7 @@ func (library *libraryDecorator) rustdoc(ctx ModuleContext, flags Flags,
return android.OptionalPath{}
}
- return android.OptionalPathForPath(Rustdoc(ctx, library.crateRootPath(ctx, deps),
+ return android.OptionalPathForPath(Rustdoc(ctx, library.srcPath(ctx, deps),
deps, flags))
}
diff --git a/rust/toolchain_library.go b/rust/toolchain_library.go
index cb345a4b6..2b2f88520 100644
--- a/rust/toolchain_library.go
+++ b/rust/toolchain_library.go
@@ -41,10 +41,8 @@ func init() {
}
type toolchainLibraryProperties struct {
- // path to the toolchain crate root, relative to the top of the toolchain source
- Toolchain_crate_root *string `android:"arch_variant"`
- // path to the rest of the toolchain srcs, relative to the top of the toolchain source
- Toolchain_srcs []string `android:"arch_variant"`
+ // path to the toolchain source, relative to the top of the toolchain source
+ Toolchain_src *string `android:"arch_variant"`
}
type toolchainLibraryDecorator struct {
@@ -90,20 +88,15 @@ func initToolchainLibrary(module *Module, library *libraryDecorator) android.Mod
func rustSetToolchainSource(ctx android.LoadHookContext) {
if toolchainLib, ok := ctx.Module().(*Module).compiler.(*toolchainLibraryDecorator); ok {
prefix := filepath.Join(config.HostPrebuiltTag(ctx.Config()), GetRustPrebuiltVersion(ctx))
- versionedCrateRoot := path.Join(prefix, android.String(toolchainLib.Properties.Toolchain_crate_root))
- versionedSrcs := make([]string, len(toolchainLib.Properties.Toolchain_srcs))
- for i, src := range toolchainLib.Properties.Toolchain_srcs {
- versionedSrcs[i] = path.Join(prefix, src)
- }
+ newSrcs := []string{path.Join(prefix, android.String(toolchainLib.Properties.Toolchain_src))}
type props struct {
- Crate_root *string
- Srcs []string
+ Srcs []string
}
p := &props{}
- p.Crate_root = &versionedCrateRoot
- p.Srcs = versionedSrcs
+ p.Srcs = newSrcs
ctx.AppendProperties(p)
+
} else {
ctx.ModuleErrorf("Called rustSetToolchainSource on a non-Rust Module.")
}