platform_build_blueprint/Android.bp
Cole Faust c472e38ec1
Add PostProcessors to configurable properties
Some module types currently evaluate configurable properties in load
hooks, modify the results, and pass them onto properties of other
modules. Evaluating configurable properties in load hooks is
problematic, it happens so early that we can't decide the configuration
beforehand.

Add a "post processors" mechanism to configurable properties where
the result of evaluating the property will be passed through a post
processing function before being returned from Get(). This essentially
allows you to modify the property without evaluating it.

Bug: 362579941
Test: m nothing --no-skip-soong-tests
Change-Id: Ibddb3f14b3433364ba474b964c701e8915d4dc85
2024-10-24 19:18:21 +02:00

253 lines
6.3 KiB
Text

package {
default_applicable_licenses: ["build_blueprint_license"],
}
// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
name: "build_blueprint_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD",
],
license_text: [
"LICENSE",
],
}
bootstrap_go_package {
name: "blueprint",
deps: [
"blueprint-metrics",
"blueprint-parser",
"blueprint-pathtools",
"blueprint-proptools",
],
pkgPath: "github.com/google/blueprint",
srcs: [
"context.go",
"levenshtein.go",
"glob.go",
"live_tracker.go",
"mangle.go",
"module_ctx.go",
"name_interface.go",
"ninja_defs.go",
"ninja_strings.go",
"ninja_writer.go",
"package_ctx.go",
"provider.go",
"scope.go",
"singleton_ctx.go",
"source_file_provider.go",
"transition.go",
],
testSrcs: [
"context_test.go",
"levenshtein_test.go",
"glob_test.go",
"module_ctx_test.go",
"ninja_strings_test.go",
"ninja_writer_test.go",
"provider_test.go",
"splice_modules_test.go",
"transition_test.go",
"visit_test.go",
],
}
bootstrap_go_package {
name: "blueprint-parser",
pkgPath: "github.com/google/blueprint/parser",
srcs: [
"parser/ast.go",
"parser/modify.go",
"parser/parser.go",
"parser/printer.go",
"parser/sort.go",
],
testSrcs: [
"parser/modify_test.go",
"parser/parser_test.go",
"parser/printer_test.go",
"parser/sort_test.go",
],
}
bootstrap_go_package {
name: "blueprint-deptools",
pkgPath: "github.com/google/blueprint/deptools",
srcs: ["deptools/depfile.go"],
}
bootstrap_go_package {
name: "blueprint-pathtools",
pkgPath: "github.com/google/blueprint/pathtools",
deps: [
"blueprint-deptools",
],
srcs: [
"pathtools/lists.go",
"pathtools/fs.go",
"pathtools/glob.go",
],
testSrcs: [
"pathtools/fs_test.go",
"pathtools/glob_test.go",
"pathtools/lists_test.go",
],
}
bootstrap_go_package {
name: "blueprint-proptools",
pkgPath: "github.com/google/blueprint/proptools",
deps: [
"blueprint-parser",
"blueprint-optional",
],
srcs: [
"proptools/clone.go",
"proptools/configurable.go",
"proptools/escape.go",
"proptools/extend.go",
"proptools/filter.go",
"proptools/hash_provider.go",
"proptools/proptools.go",
"proptools/tag.go",
"proptools/typeequal.go",
"proptools/unpack.go",
"proptools/utils.go",
],
testSrcs: [
"proptools/clone_test.go",
"proptools/configurable_test.go",
"proptools/escape_test.go",
"proptools/extend_test.go",
"proptools/filter_test.go",
"proptools/hash_provider_test.go",
"proptools/tag_test.go",
"proptools/typeequal_test.go",
"proptools/unpack_test.go",
],
}
bootstrap_go_package {
name: "blueprint-optional",
pkgPath: "github.com/google/blueprint/optional",
srcs: [
"optional/optional.go",
],
}
bootstrap_go_package {
name: "blueprint-bootstrap",
deps: [
"blueprint",
"blueprint-deptools",
"blueprint-pathtools",
"blueprint-bootstrap-bpdoc",
],
pkgPath: "github.com/google/blueprint/bootstrap",
srcs: [
"bootstrap/bootstrap.go",
"bootstrap/command.go",
"bootstrap/config.go",
"bootstrap/glob.go",
"bootstrap/writedocs.go",
],
}
bootstrap_go_package {
name: "blueprint-bootstrap-bpdoc",
deps: [
"blueprint",
"blueprint-proptools",
],
pkgPath: "github.com/google/blueprint/bootstrap/bpdoc",
srcs: [
"bootstrap/bpdoc/bpdoc.go",
"bootstrap/bpdoc/properties.go",
"bootstrap/bpdoc/reader.go",
],
testSrcs: [
"bootstrap/bpdoc/bpdoc_test.go",
"bootstrap/bpdoc/properties_test.go",
"bootstrap/bpdoc/reader_test.go",
],
}
blueprint_go_binary {
name: "bpglob",
deps: ["blueprint-pathtools"],
srcs: ["bootstrap/bpglob/bpglob.go"],
}
blueprint_go_binary {
name: "bpfmt",
deps: ["blueprint-parser"],
srcs: ["bpfmt/bpfmt.go"],
}
blueprint_go_binary {
name: "bpmodify",
deps: [
"blueprint-parser",
"blueprint-proptools",
],
srcs: ["bpmodify/bpmodify.go"],
testSrcs: ["bpmodify/bpmodify_test.go"],
}
blueprint_go_binary {
name: "gotestmain",
srcs: ["gotestmain/gotestmain.go"],
}
// gotestmain tests can't be on the gotestmain module because it is an implicit dependency of tests.
// Put the tests in their own package and make it a dependency of minibp to make sure they run.
bootstrap_go_package {
name: "gotestmain-tests",
pkgPath: "github.com/google/blueprint/gotestmain",
srcs: [
"gotestmain/dummy.go",
],
testSrcs: [
"gotestmain/testmain_test.go",
],
}
blueprint_go_binary {
name: "gotestrunner",
srcs: ["gotestrunner/gotestrunner.go"],
}
blueprint_go_binary {
name: "loadplugins",
srcs: ["loadplugins/loadplugins.go"],
}
blueprint_go_binary {
name: "microfactory",
deps: ["blueprint-microfactory"],
srcs: ["microfactory/main/main.go"],
}
bootstrap_go_package {
name: "blueprint-microfactory",
pkgPath: "github.com/google/blueprint/microfactory",
srcs: ["microfactory/microfactory.go"],
testSrcs: ["microfactory/microfactory_test.go"],
}