diff options
| author | mosimchah <mosimchah@gmail.com> | 2025-12-02 09:27:38 -0500 |
|---|---|---|
| committer | mosimchah <mosimchah@gmail.com> | 2025-12-02 09:27:38 -0500 |
| commit | c7bade461dc55726f62997d13a48582f7c4b4655 (patch) | |
| tree | ea0588da76060a2038f54f67efd046ca77634b10 /android/hooks.go | |
| parent | 0f5414d19317805e8bbbe7c4db5f0fd78769bad5 (diff) | |
| parent | 89d78cff8b00d3b20a90074635c3fe5a2ee49474 (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 'android/hooks.go')
| -rw-r--r-- | android/hooks.go | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/android/hooks.go b/android/hooks.go index 5d509a43e..6c595a3ae 100644 --- a/android/hooks.go +++ b/android/hooks.go @@ -96,6 +96,12 @@ func (l *loadHookContext) AppendProperties(props ...interface{}) { l.appendPrependHelper(props, proptools.AppendMatchingProperties) } +func (l *loadHookContext) Config() Config { + // LoadHookContext cannot be generic, but must read all configuration values + // because it is called before loading module properties. + return l.earlyModuleContext.EarlyModuleContext.Config().(Config) +} + func (l *loadHookContext) PrependProperties(props ...interface{}) { l.appendPrependHelper(props, proptools.PrependMatchingProperties) } @@ -243,6 +249,26 @@ func (x *hooks) runInstallHooks(ctx ModuleContext, srcPath Path, path InstallPat } } +// AddPostGenerateAndroidBuildActionsHook adds a hook that runs immediately after +// the module's GenerateAndroidBuildActions method is called, allowing modules +// to inject custom logic when sharing that method. +func AddPostGenerateAndroidBuildActionsHook(m blueprint.Module, hook func(ctx ModuleContext)) { + h := &m.(Module).base().hooks + h.postGenerateAndroidBuildActions = append(h.postGenerateAndroidBuildActions, hook) +} + +func (x *hooks) runPostGenerateAndroidBuildActionsHooks(ctx ModuleContext) { + if len(x.postGenerateAndroidBuildActions) > 0 { + for _, x := range x.postGenerateAndroidBuildActions { + x(ctx) + if ctx.Failed() { + return + } + } + } +} + type hooks struct { - install []func(InstallHookContext) + install []func(InstallHookContext) + postGenerateAndroidBuildActions []func(ModuleContext) } |
