Loading rust/builder.go +6 −14 Original line number Diff line number Diff line Loading @@ -43,28 +43,19 @@ func init() { } func TransformSrcToBinary(ctx android.ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags, outputFile android.WritablePath, includeDirs []string) { targetTriple := ctx.(ModuleContext).toolchain().RustTriple() transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "bin", includeDirs, targetTriple) transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "bin", includeDirs) } func TransformSrctoRlib(ctx android.ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags, outputFile android.WritablePath, includeDirs []string) { targetTriple := ctx.(ModuleContext).toolchain().RustTriple() transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "rlib", includeDirs, targetTriple) transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "rlib", includeDirs) } func TransformSrctoDylib(ctx android.ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags, outputFile android.WritablePath, includeDirs []string) { targetTriple := ctx.(ModuleContext).toolchain().RustTriple() transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "dylib", includeDirs, targetTriple) transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "dylib", includeDirs) } func TransformSrctoProcMacro(ctx android.ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags, outputFile android.WritablePath, includeDirs []string) { // Proc macros are compiler plugins, and thus should target the host compiler targetTriple := "" transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "proc-macro", includeDirs, targetTriple) transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "proc-macro", includeDirs) } func rustLibsToPaths(libs RustLibraries) android.Paths { Loading @@ -76,12 +67,13 @@ func rustLibsToPaths(libs RustLibraries) android.Paths { } func transformSrctoCrate(ctx android.ModuleContext, main android.Path, rlibs, dylibs, proc_macros RustLibraries, static_libs, shared_libs android.Paths, flags Flags, outputFile android.WritablePath, crate_type string, includeDirs []string, targetTriple string) { rlibs, dylibs, proc_macros RustLibraries, static_libs, shared_libs android.Paths, flags Flags, outputFile android.WritablePath, crate_type string, includeDirs []string) { var inputs android.Paths var deps android.Paths var libFlags, rustcFlags []string crate_name := ctx.(ModuleContext).CrateName() targetTriple := ctx.(ModuleContext).toolchain().RustTriple() inputs = append(inputs, main) Loading rust/compiler_test.go +0 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,6 @@ func TestEnforceSingleSourceFile(t *testing.T) { rust_proc_macro { name: "foo-bar-proc-macro", srcs: ["foo.rs", "src/bar.rs"], host_supported: true, }`) // Test prebuilts Loading rust/proc_macro.go +1 −1 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ type procMacroInterface interface { var _ compiler = (*procMacroDecorator)(nil) func ProcMacroFactory() android.Module { module, _ := NewProcMacro(android.HostAndDeviceSupported) module, _ := NewProcMacro(android.HostSupportedNoCross) return module.Init() } Loading rust/rust.go +3 −13 Original line number Diff line number Diff line Loading @@ -321,15 +321,6 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps { if rustDep, ok := dep.(*Module); ok { //Handle Rust Modules if rustDep.Target().Os != ctx.Os() { ctx.ModuleErrorf("OS mismatch between %q and %q", ctx.ModuleName(), depName) return } if rustDep.Target().Arch.ArchType != ctx.Arch().ArchType { ctx.ModuleErrorf("Arch mismatch between %q and %q", ctx.ModuleName(), depName) return } linkFile := rustDep.outputFile if !linkFile.Valid() { ctx.ModuleErrorf("Invalid output file when adding dep %q to %q", depName, ctx.ModuleName()) Loading Loading @@ -361,9 +352,6 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps { if lib, ok := rustDep.compiler.(*libraryDecorator); ok { depPaths.linkDirs = append(depPaths.linkDirs, lib.exportedDirs()...) depPaths.depFlags = append(depPaths.depFlags, lib.exportedDepFlags()...) } else if procMacro, ok := rustDep.compiler.(*libraryDecorator); ok { depPaths.linkDirs = append(depPaths.linkDirs, procMacro.exportedDirs()...) depPaths.depFlags = append(depPaths.depFlags, procMacro.exportedDepFlags()...) } // Append this dependencies output to this mod's linkDirs so they can be exported to dependencies Loading Loading @@ -491,7 +479,9 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) { } actx.AddVariationDependencies(append(ccDepVariations, blueprint.Variation{Mutator: "link", Variation: "shared"}), cc.SharedDepTag(), deps.SharedLibs...) actx.AddVariationDependencies(append(ccDepVariations, blueprint.Variation{Mutator: "link", Variation: "static"}), cc.StaticDepTag(), deps.StaticLibs...) actx.AddDependency(mod, procMacroDepTag, deps.ProcMacros...) // proc_macros are compiler plugins, and so we need the host arch variant as a dependendcy. actx.AddFarVariationDependencies([]blueprint.Variation{{Mutator: "arch", Variation: ctx.Config().BuildOsVariant}}, procMacroDepTag, deps.ProcMacros...) } func (mod *Module) Name() string { Loading rust/rust_test.go +0 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,6 @@ func TestDepsTracking(t *testing.T) { rust_proc_macro { name: "libpm", srcs: ["foo.rs"], host_supported: true, } rust_binary_host { name: "fizz-buzz", Loading Loading
rust/builder.go +6 −14 Original line number Diff line number Diff line Loading @@ -43,28 +43,19 @@ func init() { } func TransformSrcToBinary(ctx android.ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags, outputFile android.WritablePath, includeDirs []string) { targetTriple := ctx.(ModuleContext).toolchain().RustTriple() transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "bin", includeDirs, targetTriple) transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "bin", includeDirs) } func TransformSrctoRlib(ctx android.ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags, outputFile android.WritablePath, includeDirs []string) { targetTriple := ctx.(ModuleContext).toolchain().RustTriple() transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "rlib", includeDirs, targetTriple) transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "rlib", includeDirs) } func TransformSrctoDylib(ctx android.ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags, outputFile android.WritablePath, includeDirs []string) { targetTriple := ctx.(ModuleContext).toolchain().RustTriple() transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "dylib", includeDirs, targetTriple) transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "dylib", includeDirs) } func TransformSrctoProcMacro(ctx android.ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags, outputFile android.WritablePath, includeDirs []string) { // Proc macros are compiler plugins, and thus should target the host compiler targetTriple := "" transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "proc-macro", includeDirs, targetTriple) transformSrctoCrate(ctx, mainSrc, deps.RLibs, deps.DyLibs, deps.ProcMacros, deps.StaticLibs, deps.SharedLibs, flags, outputFile, "proc-macro", includeDirs) } func rustLibsToPaths(libs RustLibraries) android.Paths { Loading @@ -76,12 +67,13 @@ func rustLibsToPaths(libs RustLibraries) android.Paths { } func transformSrctoCrate(ctx android.ModuleContext, main android.Path, rlibs, dylibs, proc_macros RustLibraries, static_libs, shared_libs android.Paths, flags Flags, outputFile android.WritablePath, crate_type string, includeDirs []string, targetTriple string) { rlibs, dylibs, proc_macros RustLibraries, static_libs, shared_libs android.Paths, flags Flags, outputFile android.WritablePath, crate_type string, includeDirs []string) { var inputs android.Paths var deps android.Paths var libFlags, rustcFlags []string crate_name := ctx.(ModuleContext).CrateName() targetTriple := ctx.(ModuleContext).toolchain().RustTriple() inputs = append(inputs, main) Loading
rust/compiler_test.go +0 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,6 @@ func TestEnforceSingleSourceFile(t *testing.T) { rust_proc_macro { name: "foo-bar-proc-macro", srcs: ["foo.rs", "src/bar.rs"], host_supported: true, }`) // Test prebuilts Loading
rust/proc_macro.go +1 −1 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ type procMacroInterface interface { var _ compiler = (*procMacroDecorator)(nil) func ProcMacroFactory() android.Module { module, _ := NewProcMacro(android.HostAndDeviceSupported) module, _ := NewProcMacro(android.HostSupportedNoCross) return module.Init() } Loading
rust/rust.go +3 −13 Original line number Diff line number Diff line Loading @@ -321,15 +321,6 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps { if rustDep, ok := dep.(*Module); ok { //Handle Rust Modules if rustDep.Target().Os != ctx.Os() { ctx.ModuleErrorf("OS mismatch between %q and %q", ctx.ModuleName(), depName) return } if rustDep.Target().Arch.ArchType != ctx.Arch().ArchType { ctx.ModuleErrorf("Arch mismatch between %q and %q", ctx.ModuleName(), depName) return } linkFile := rustDep.outputFile if !linkFile.Valid() { ctx.ModuleErrorf("Invalid output file when adding dep %q to %q", depName, ctx.ModuleName()) Loading Loading @@ -361,9 +352,6 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps { if lib, ok := rustDep.compiler.(*libraryDecorator); ok { depPaths.linkDirs = append(depPaths.linkDirs, lib.exportedDirs()...) depPaths.depFlags = append(depPaths.depFlags, lib.exportedDepFlags()...) } else if procMacro, ok := rustDep.compiler.(*libraryDecorator); ok { depPaths.linkDirs = append(depPaths.linkDirs, procMacro.exportedDirs()...) depPaths.depFlags = append(depPaths.depFlags, procMacro.exportedDepFlags()...) } // Append this dependencies output to this mod's linkDirs so they can be exported to dependencies Loading Loading @@ -491,7 +479,9 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) { } actx.AddVariationDependencies(append(ccDepVariations, blueprint.Variation{Mutator: "link", Variation: "shared"}), cc.SharedDepTag(), deps.SharedLibs...) actx.AddVariationDependencies(append(ccDepVariations, blueprint.Variation{Mutator: "link", Variation: "static"}), cc.StaticDepTag(), deps.StaticLibs...) actx.AddDependency(mod, procMacroDepTag, deps.ProcMacros...) // proc_macros are compiler plugins, and so we need the host arch variant as a dependendcy. actx.AddFarVariationDependencies([]blueprint.Variation{{Mutator: "arch", Variation: ctx.Config().BuildOsVariant}}, procMacroDepTag, deps.ProcMacros...) } func (mod *Module) Name() string { Loading
rust/rust_test.go +0 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,6 @@ func TestDepsTracking(t *testing.T) { rust_proc_macro { name: "libpm", srcs: ["foo.rs"], host_supported: true, } rust_binary_host { name: "fizz-buzz", Loading