aboutsummaryrefslogtreecommitdiff
path: root/rust/toolchain_library.go
diff options
context:
space:
mode:
authormosimchah <mosimchah@gmail.com>2025-12-02 09:27:38 -0500
committermosimchah <mosimchah@gmail.com>2025-12-02 09:27:38 -0500
commitc7bade461dc55726f62997d13a48582f7c4b4655 (patch)
treeea0588da76060a2038f54f67efd046ca77634b10 /rust/toolchain_library.go
parent0f5414d19317805e8bbbe7c4db5f0fd78769bad5 (diff)
parent89d78cff8b00d3b20a90074635c3fe5a2ee49474 (diff)
Merge branch 'lineage-23.1' of https://github.com/LineageOS/android_build_soong into HEADw16.1
* 'lineage-23.1' of https://github.com/LineageOS/android_build_soong: (528 commits) Revert "install_symlink: Make symlink target configurable" Reapply "Clear as much of cc.Module as possible after GenerateBuildActions" Revert "rust: config: Fix missing CPU variant LD flags in Rust" Rename build-flag in outdir Revert^4 "cipd: Default CIPD proxy server to on, add opt-out" Convert check-vintf-all to phony with actions Create a partial implementation of check-vintf-all for soong-only Configure RBE rust pool based on build variant Revert^3 "Add sdk version check to arr" Add jdk.internal.invoke to the allowlist Make droid always depend on symbols zip Import Device and Odm skus Don't install gob_gen in Soong Remove bazel reference from run_integration_tests.sh Fix bootstrap_test.sh Don't panic in aconfig libraries when AllowMissingDependencies is set Avoid returning nil paths from PathForModuleSrc Revert "Flag controled clang version" Rework module target dependencies on required deps Revert^2 "Add sdk version check to arr" ... Change-Id: I6e9a63fa14fda917a42e426e5dcebbad7f67e1de
Diffstat (limited to 'rust/toolchain_library.go')
-rw-r--r--rust/toolchain_library.go27
1 files changed, 22 insertions, 5 deletions
diff --git a/rust/toolchain_library.go b/rust/toolchain_library.go
index 054104ccc..b174daf28 100644
--- a/rust/toolchain_library.go
+++ b/rust/toolchain_library.go
@@ -52,6 +52,16 @@ type toolchainLibraryDecorator struct {
Properties toolchainLibraryProperties
}
+// toolchainCrateRoot implements toolchainCompiler.
+func (t *toolchainLibraryDecorator) toolchainCrateRoot() *string {
+ return t.Properties.Toolchain_crate_root
+}
+
+// toolchainSrcs implements toolchainCompiler.
+func (t *toolchainLibraryDecorator) toolchainSrcs() []string {
+ return t.Properties.Toolchain_srcs
+}
+
// rust_toolchain_library produces all rust variants.
func rustToolchainLibraryFactory() android.Module {
module, library := NewRustLibrary(android.HostAndDeviceSupported)
@@ -87,12 +97,19 @@ func initToolchainLibrary(module *Module, library *libraryDecorator) android.Mod
return module.Init()
}
+type toolchainCompiler interface {
+ toolchainCrateRoot() *string
+ toolchainSrcs() []string
+}
+
+var _ toolchainCompiler = (*toolchainLibraryDecorator)(nil)
+
func rustSetToolchainSource(ctx android.LoadHookContext) {
- if toolchainLib, ok := ctx.Module().(*Module).compiler.(*toolchainLibraryDecorator); ok {
+ if toolchainLib, ok := ctx.Module().(*Module).compiler.(toolchainCompiler); ok {
prefix := filepath.Join("linux-x86", 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 {
+ versionedCrateRoot := path.Join(prefix, android.String(toolchainLib.toolchainCrateRoot()))
+ versionedSrcs := make([]string, len(toolchainLib.toolchainSrcs()))
+ for i, src := range toolchainLib.toolchainSrcs() {
versionedSrcs[i] = path.Join(prefix, src)
}
@@ -105,7 +122,7 @@ func rustSetToolchainSource(ctx android.LoadHookContext) {
p.Srcs = versionedSrcs
ctx.AppendProperties(p)
} else {
- ctx.ModuleErrorf("Called rustSetToolchainSource on a non-Rust Module.")
+ ctx.ModuleErrorf("Called rustSetToolchainSource on a non-Toolchain Module.")
}
}