Skip to content

Commit

Permalink
feat(filegroup): make enableable
Browse files Browse the repository at this point in the history
This commit allows `bob_filegroup` to be
enabled/disabled on Android. This has no
effect on Linux at this time.

Change-Id: I1a9de4ba38d8f95b5c67cd283eb9fbb4141aaf1b
  • Loading branch information
lukokr-aarch64 committed May 28, 2024
1 parent 08eb08e commit fe0cf1e
Show file tree
Hide file tree
Showing 17 changed files with 142 additions and 1 deletion.
3 changes: 3 additions & 0 deletions core/androidbp_filegroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,8 @@ func (g *androidBpGenerator) filegroupActions(m *ModuleFilegroup, ctx blueprint.
utils.Die("%v", err.Error())
}
mod.AddStringList("srcs", m.Properties.Srcs)
if m.Properties.Enabled != nil {
mod.AddBool("enabled", *m.Properties.Enabled)
}
addProvenanceProps(ctx, mod, m)
}
10 changes: 9 additions & 1 deletion core/filegroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ type ModuleFilegroup struct {
SourceProps
TagableProps
Features
EnableableProps
}
}

Expand All @@ -24,10 +25,16 @@ type filegroupInterface interface {
file.Resolver
file.Provider
Tagable
enableable
Featurable
}

var _ filegroupInterface = (*ModuleFilegroup)(nil) // impl check

func (m *ModuleFilegroup) getEnableableProps() *EnableableProps {
return &m.Properties.EnableableProps
}

func (m *ModuleFilegroup) ResolveFiles(ctx blueprint.BaseModuleContext) {
m.Properties.ResolveFiles(ctx)
}
Expand Down Expand Up @@ -56,6 +63,7 @@ func (m *ModuleFilegroup) FeaturableProperties() []interface{} {
return []interface{}{
&m.Properties.SourceProps,
&m.Properties.TagableProps,
&m.Properties.EnableableProps,
}
}

Expand Down Expand Up @@ -85,7 +93,7 @@ func (m *ModuleFilegroup) GetTags() []string {

func filegroupFactory(config *BobConfig) (blueprint.Module, []interface{}) {
module := &ModuleFilegroup{}
module.Properties.Features.Init(&config.Properties, SourceProps{}, TagableProps{})
module.Properties.Features.Init(&config.Properties, SourceProps{}, TagableProps{}, EnableableProps{})
return module, []interface{}{&module.Properties,
&module.SimpleName.Properties}
}
Empty file.
2 changes: 2 additions & 0 deletions gendiffer/tests/filegroup/enable/app/bplist
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
build.bp
nested/build.bp
23 changes: 23 additions & 0 deletions gendiffer/tests/filegroup/enable/app/build.bp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
bob_glob {
name: "glob",
srcs: ["**/main.c"],
allow_empty: false,
}

bob_static_library {
name: "lib",
srcs: [
":all_filegroup",
],
enabled: false,

}

bob_binary {
name: "bin",
enabled: false,
srcs: [
":all_filegroup",
],

}
Empty file.
23 changes: 23 additions & 0 deletions gendiffer/tests/filegroup/enable/app/nested/build.bp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
bob_filegroup {
name: "filegroup",
srcs: ["src/dummy01.c"],
enabled: false,
}

bob_filegroup {
name: "forward_filegroup",
srcs: [":filegroup"],
enabled: false,
}

bob_filegroup {
name: "all_filegroup",
srcs: [
":glob",
":forward_filegroup",
],
// Conditional
builder_android_bp: {
enabled: false,
},
}
Empty file.
33 changes: 33 additions & 0 deletions gendiffer/tests/filegroup/enable/out/android/Android.bp.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@

genrule {
name: "_check_buildbp_updates_redacted",
srcs: [
"build.bp",
"nested/build.bp",
],
out: ["androidbp_up_to_date"],
tool_files: ["scripts/verify_hash.py"],
cmd: "python $(location scripts/verify_hash.py) --hash redacted --out $(out) -- $(in)",
}

filegroup {
name: "all_filegroup",
srcs: [
":glob",
":forward_filegroup",
],
enabled: false,
}

filegroup {
name: "filegroup",
srcs: ["nested/src/dummy01.c"],
enabled: false,
}

filegroup {
name: "forward_filegroup",
srcs: [":filegroup"],
enabled: false,
}

Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0
Empty file.
Empty file.
47 changes: 47 additions & 0 deletions gendiffer/tests/filegroup/enable/out/linux/build.ninja.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# ******************************************************************************
# *** This file is generated and should not be edited ***
# ******************************************************************************
#
# This file contains variables, rules, and pools with name prefixes indicating
# they were generated by the following Go packages:
#
# bootstrap [from Go package github.com/google/blueprint/bootstrap]
#
ninja_required_version = 1.7.0

g.bootstrap.BinDir = redacted/.bootstrap/bin

g.bootstrap.buildDir = redacted

g.bootstrap.ninjaBuildDir = redacted

g.bootstrap.srcDir = redacted

builddir = ${g.bootstrap.ninjaBuildDir}

rule g.bootstrap.cp
command = cp ${in} ${out}
description = cp ${out}

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Singleton: bootstrap
# Factory: github.com/google/blueprint/bootstrap.Main.func4

rule s.bootstrap.bigbpDocs
command = ${g.bootstrap.BinDir}/minibp -p -l redacted/bplist -b ${g.bootstrap.buildDir} --docs ${out} ${g.bootstrap.srcDir}/build.bp
description = minibp docs ${out}

build ${g.bootstrap.buildDir}/bin/minibp: g.bootstrap.cp $
${g.bootstrap.BinDir}/minibp
default ${g.bootstrap.buildDir}/bin/minibp

build ${g.bootstrap.buildDir}/.primary/docs/minibp.html: s.bootstrap.bigbpDocs $
| ${g.bootstrap.BinDir}/minibp
default ${g.bootstrap.buildDir}/.primary/docs/minibp.html

build blueprint_docs: phony ${g.bootstrap.buildDir}/.primary/docs/minibp.html
default blueprint_docs

build blueprint_tools: phony
default blueprint_tools

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0
Empty file.
Empty file.

0 comments on commit fe0cf1e

Please sign in to comment.