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

Commit 9e93d3d6 authored by Spandan Das's avatar Spandan Das
Browse files

Create aliases for stubs in build/bazel/api_surfaces

- Create the alias under the module-libapi directory. This is the
  api_surface that cc_stubs_suite maps to.
- Create the alias only for "current" (atleast for now)
- Create one alias for the stub shared lib, and another for its headers

Test: b build @api_surfaces//... (with aosp/2475091)
Change-Id: Ib004c2c34256f971e74d75317fa5fbbe7273720e
parent abedff0c
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1837,3 +1837,14 @@ func (c *config) LogMixedBuild(ctx BaseModuleContext, useBazel bool) {
		c.mixedBuildDisabledModules[moduleName] = struct{}{}
	}
}

// ApiSurfaces directory returns the source path inside the api_surfaces repo
// (relative to workspace root).
func (c *config) ApiSurfacesDir(s ApiSurface, version string) string {
	return filepath.Join(
		"build",
		"bazel",
		"api_surfaces",
		s.String(),
		version)
}
+15 −0
Original line number Diff line number Diff line
@@ -464,6 +464,21 @@ func createStubsBazelTargetIfNeeded(ctx android.TopDownMutatorContext, m *Module
		ctx.CreateBazelTargetModule(stubSuitesProps,
			android.CommonAttributes{Name: m.Name() + "_stub_libs"},
			stubSuitesAttrs)

		// Add alias for the stub shared_library in @api_surfaces repository
		currentModuleLibApiDir := ctx.Config().ApiSurfacesDir(android.ModuleLibApi, "current")
		actualLabelInMainWorkspace := bazel.Label{
			Label: fmt.Sprintf("@//%s:%s_stub_libs_current", ctx.ModuleDir(), m.Name()),
		}
		ctx.CreateBazelTargetAliasInDir(currentModuleLibApiDir, m.Name(), actualLabelInMainWorkspace)

		// Add alias for headers exported by the stub library
		headerLabelInMainWorkspace := bazel.Label{
			// This label is generated from cc_stub_suite macro
			Label: fmt.Sprintf("@//%s:%s_stub_libs_%s_headers", ctx.ModuleDir(), m.Name(), android.ModuleLibApi.String()),
		}
		headerAlias := m.Name() + "_headers"
		ctx.CreateBazelTargetAliasInDir(currentModuleLibApiDir, headerAlias, headerLabelInMainWorkspace)
	}
}