platform_build_blueprint/Android.bp
Cole Faust ad00dd50bf Return an Optional[T] from Configurable.Get()
Previously, Configurable.Get() copied the value in the property,
because it needed to return a pointer in order to indicate whether
the property was set or not. Now, it returns a ConfigurableOptional[T],
which is the same as the pointer, but it prevents users from altering
the pointed-to value, so we don't need to copy it.

There are still copies for slice properties, because those are also
pointers. In the future we may want to consider making an ImmutableList
type to use instead.

Bug: 323382414
Test: m nothing --no-skip-soong-tests
Change-Id: Ic9ed5ba269d10158e3eac1fea272555c9fa5c0e8
2024-05-21 14:48:39 -07:00

252 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/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"],
}