Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52a3e36c authored by Ivan Lozano's avatar Ivan Lozano Committed by Gerrit Code Review
Browse files

Merge "rust: Support new rust_stdlib_prebuilt_host type"

parents 94e8a651 fba2aa25
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ func (library *libraryDecorator) AndroidMk(ctx AndroidMkContext, ret *android.An
			}
		})
}

func (procMacro *procMacroDecorator) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkEntries) {
	ctx.SubAndroidMk(ret, procMacro.baseCompiler)

+2 −2
Original line number Diff line number Diff line
@@ -363,9 +363,9 @@ func (compiler *baseCompiler) compilerDeps(ctx DepsContext, deps Deps) Deps {

	if !Bool(compiler.Properties.No_stdlibs) {
		for _, stdlib := range config.Stdlibs {
			// If we're building for the primary arch of the build host, use the compiler's stdlibs
			// If we're building for the build host, use the prebuilt stdlibs
			if ctx.Target().Os == ctx.Config().BuildOS {
				stdlib = stdlib + "_" + ctx.toolchain().RustTriple()
				stdlib = "prebuilt_" + stdlib
			}
			deps.Stdlibs = append(deps.Stdlibs, stdlib)
		}
+22 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ type PrebuiltProperties struct {
}

type prebuiltLibraryDecorator struct {
	android.Prebuilt

	*libraryDecorator
	Properties PrebuiltProperties
}
@@ -54,6 +56,13 @@ func PrebuiltRlibFactory() android.Module {
	return module.Init()
}

func addSrcSupplier(module android.PrebuiltInterface, prebuilt *prebuiltLibraryDecorator) {
	srcsSupplier := func(_ android.BaseModuleContext, _ android.Module) []string {
		return prebuilt.prebuiltSrcs()
	}
	android.InitPrebuiltModuleWithSrcSupplier(module, srcsSupplier, "srcs")
}

func NewPrebuiltLibrary(hod android.HostOrDeviceSupported) (*Module, *prebuiltLibraryDecorator) {
	module, library := NewRustLibrary(hod)
	library.BuildOnlyRust()
@@ -62,6 +71,9 @@ func NewPrebuiltLibrary(hod android.HostOrDeviceSupported) (*Module, *prebuiltLi
		libraryDecorator: library,
	}
	module.compiler = prebuilt

	addSrcSupplier(module, prebuilt)

	return module, prebuilt
}

@@ -73,6 +85,9 @@ func NewPrebuiltDylib(hod android.HostOrDeviceSupported) (*Module, *prebuiltLibr
		libraryDecorator: library,
	}
	module.compiler = prebuilt

	addSrcSupplier(module, prebuilt)

	return module, prebuilt
}

@@ -84,6 +99,9 @@ func NewPrebuiltRlib(hod android.HostOrDeviceSupported) (*Module, *prebuiltLibra
		libraryDecorator: library,
	}
	module.compiler = prebuilt

	addSrcSupplier(module, prebuilt)

	return module, prebuilt
}

@@ -130,3 +148,7 @@ func (prebuilt *prebuiltLibraryDecorator) prebuiltSrcs() []string {

	return srcs
}

func (prebuilt *prebuiltLibraryDecorator) prebuilt() *android.Prebuilt {
	return &prebuilt.Prebuilt
}
+7 −0
Original line number Diff line number Diff line
@@ -1019,6 +1019,13 @@ func (mod *Module) begin(ctx BaseModuleContext) {
	}
}

func (mod *Module) Prebuilt() *android.Prebuilt {
	if p, ok := mod.compiler.(*prebuiltLibraryDecorator); ok {
		return p.prebuilt()
	}
	return nil
}

func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
	var depPaths PathDeps

+8 −68
Original line number Diff line number Diff line
@@ -53,55 +53,7 @@ var PrepareForTestWithRustIncludeVndk = android.GroupFixturePreparers(
func GatherRequiredDepsForTest() string {
	bp := `
		rust_prebuilt_library {
				name: "libstd_x86_64-unknown-linux-gnu",
                                crate_name: "std",
                                rlib: {
                                    srcs: ["libstd.rlib"],
                                },
                                dylib: {
                                    srcs: ["libstd.so"],
                                },
				host_supported: true,
				sysroot: true,
		}
		rust_prebuilt_library {
				name: "libtest_x86_64-unknown-linux-gnu",
                                crate_name: "test",
                                rlib: {
                                    srcs: ["libtest.rlib"],
                                },
                                dylib: {
                                    srcs: ["libtest.so"],
                                },
				host_supported: true,
				sysroot: true,
		}
		rust_prebuilt_library {
				name: "libstd_i686-unknown-linux-gnu",
                                crate_name: "std",
                                rlib: {
                                    srcs: ["libstd.rlib"],
                                },
                                dylib: {
                                    srcs: ["libstd.so"],
                                },
				host_supported: true,
				sysroot: true,
		}
		rust_prebuilt_library {
				name: "libtest_i686-unknown-linux-gnu",
                                crate_name: "test",
                                rlib: {
                                    srcs: ["libtest.rlib"],
                                },
                                dylib: {
                                    srcs: ["libtest.so"],
                                },
				host_supported: true,
				sysroot: true,
		}
		rust_prebuilt_library {
				name: "libstd_x86_64-apple-darwin",
				name: "libstd",
				crate_name: "std",
				rlib: {
					srcs: ["libstd.rlib"],
@@ -112,18 +64,6 @@ func GatherRequiredDepsForTest() string {
				host_supported: true,
				sysroot: true,
		}
		rust_prebuilt_library {
				name: "libtest_x86_64-apple-darwin",
                                crate_name: "test",
                                rlib: {
                                    srcs: ["libtest.rlib"],
                                },
                                dylib: {
                                    srcs: ["libtest.so"],
                                },
				host_supported: true,
				sysroot: true,
		}
		//////////////////////////////
		// Device module requirements