Merge changes from topic "revert-2605644-rulebuilder-ninja-vars-OAAWYCDDLT" into main am: 1d3740a274
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2746977 Change-Id: Ie660c5611ea4938afa8abd0e64d1db788a811ae1 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -17,7 +17,7 @@ package android
|
||||
import "path/filepath"
|
||||
|
||||
func init() {
|
||||
RegisterModuleType("prebuilt_build_tool", NewPrebuiltBuildTool)
|
||||
RegisterModuleType("prebuilt_build_tool", prebuiltBuildToolFactory)
|
||||
}
|
||||
|
||||
type prebuiltBuildToolProperties struct {
|
||||
@@ -101,6 +101,10 @@ var _ HostToolProvider = &prebuiltBuildTool{}
|
||||
|
||||
// prebuilt_build_tool is to declare prebuilts to be used during the build, particularly for use
|
||||
// in genrules with the "tools" property.
|
||||
func prebuiltBuildToolFactory() Module {
|
||||
return NewPrebuiltBuildTool()
|
||||
}
|
||||
|
||||
func NewPrebuiltBuildTool() Module {
|
||||
module := &prebuiltBuildTool{}
|
||||
module.AddProperties(&module.properties)
|
||||
|
@@ -35,7 +35,6 @@ func RegisterRequiredBuildComponentsForTest(ctx android.RegistrationContext) {
|
||||
|
||||
multitree.RegisterApiImportsModule(ctx)
|
||||
|
||||
ctx.RegisterModuleType("prebuilt_build_tool", android.NewPrebuiltBuildTool)
|
||||
ctx.RegisterModuleType("cc_benchmark", BenchmarkFactory)
|
||||
ctx.RegisterModuleType("cc_object", ObjectFactory)
|
||||
ctx.RegisterModuleType("cc_genrule", GenRuleFactory)
|
||||
|
@@ -21,8 +21,6 @@ import (
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/rust/config"
|
||||
|
||||
"github.com/google/blueprint/proptools"
|
||||
)
|
||||
|
||||
// This module is used to compile the rust toolchain libraries
|
||||
@@ -35,8 +33,6 @@ func init() {
|
||||
rustToolchainLibraryRlibFactory)
|
||||
android.RegisterModuleType("rust_toolchain_library_dylib",
|
||||
rustToolchainLibraryDylibFactory)
|
||||
android.RegisterModuleType("rust_toolchain_rustc_prebuilt",
|
||||
rustToolchainRustcPrebuiltFactory)
|
||||
}
|
||||
|
||||
type toolchainLibraryProperties struct {
|
||||
@@ -105,47 +101,3 @@ func rustSetToolchainSource(ctx android.LoadHookContext) {
|
||||
func GetRustPrebuiltVersion(ctx android.LoadHookContext) string {
|
||||
return ctx.AConfig().GetenvWithDefault("RUST_PREBUILTS_VERSION", config.RustDefaultVersion)
|
||||
}
|
||||
|
||||
type toolchainRustcPrebuiltProperties struct {
|
||||
// path to rustc prebuilt, relative to the top of the toolchain source
|
||||
Toolchain_prebuilt_src *string
|
||||
// path to deps, relative to the top of the toolchain source
|
||||
Toolchain_deps []string
|
||||
// path to deps, relative to module directory
|
||||
Deps []string
|
||||
}
|
||||
|
||||
func rustToolchainRustcPrebuiltFactory() android.Module {
|
||||
module := android.NewPrebuiltBuildTool()
|
||||
module.AddProperties(&toolchainRustcPrebuiltProperties{})
|
||||
android.AddLoadHook(module, func(ctx android.LoadHookContext) {
|
||||
var toolchainProps *toolchainRustcPrebuiltProperties
|
||||
for _, p := range ctx.Module().GetProperties() {
|
||||
toolchainProperties, ok := p.(*toolchainRustcPrebuiltProperties)
|
||||
if ok {
|
||||
toolchainProps = toolchainProperties
|
||||
}
|
||||
}
|
||||
|
||||
if toolchainProps.Toolchain_prebuilt_src == nil {
|
||||
ctx.PropertyErrorf("toolchain_prebuilt_src", "must set path to rustc prebuilt")
|
||||
}
|
||||
|
||||
prefix := "linux-x86/" + GetRustPrebuiltVersion(ctx)
|
||||
deps := make([]string, 0, len(toolchainProps.Toolchain_deps)+len(toolchainProps.Deps))
|
||||
for _, d := range toolchainProps.Toolchain_deps {
|
||||
deps = append(deps, path.Join(prefix, d))
|
||||
}
|
||||
deps = append(deps, toolchainProps.Deps...)
|
||||
|
||||
props := struct {
|
||||
Src *string
|
||||
Deps []string
|
||||
}{
|
||||
Src: proptools.StringPtr(path.Join(prefix, *toolchainProps.Toolchain_prebuilt_src)),
|
||||
Deps: deps,
|
||||
}
|
||||
ctx.AppendProperties(&props)
|
||||
})
|
||||
return module
|
||||
}
|
||||
|
Reference in New Issue
Block a user