platform_build_blueprint/Blueprints
Dan Willemsen ff092863b3 Allow microfactory to be used as a package
In addition to running with `go run` and creating a microfactory binary,
allow microfactory to be used as a package from other go tools as well.

To allow other packages to use this, it needs to be in a non-main
package, but `go run` requires a main package. So microfactory.bash runs
a sed script before running microfactory with `go run`.

This could also be solved by using a relative import, but neither
blueprint nor microfactory currently support that.

Change-Id: I084163b14720102b3fb93a3c9d44b5d0225ff2c8
2017-08-08 13:19:26 -07:00

188 lines
4.2 KiB
Text

bootstrap_go_package(
name = "blueprint",
deps = [
"blueprint-parser",
"blueprint-pathtools",
"blueprint-proptools",
],
pkgPath = "github.com/google/blueprint",
srcs = [
"context.go",
"glob.go",
"live_tracker.go",
"mangle.go",
"module_ctx.go",
"ninja_defs.go",
"ninja_strings.go",
"ninja_writer.go",
"package_ctx.go",
"scope.go",
"singleton_ctx.go",
"unpack.go",
],
testSrcs = [
"context_test.go",
"ninja_strings_test.go",
"ninja_writer_test.go",
"splice_modules_test.go",
"unpack_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/parser_test.go",
"parser/printer_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/glob_test.go",
],
)
bootstrap_go_package(
name = "blueprint-proptools",
pkgPath = "github.com/google/blueprint/proptools",
srcs = [
"proptools/clone.go",
"proptools/escape.go",
"proptools/extend.go",
"proptools/proptools.go",
"proptools/typeequal.go",
],
testSrcs = [
"proptools/clone_test.go",
"proptools/escape_test.go",
"proptools/extend_test.go",
"proptools/typeequal_test.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/cleanup.go",
"bootstrap/command.go",
"bootstrap/config.go",
"bootstrap/doc.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_go_binary(
name = "minibp",
deps = [
"blueprint",
"blueprint-bootstrap",
"gotestmain-tests",
],
srcs = ["bootstrap/minibp/main.go"],
)
bootstrap_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"],
srcs = ["bpmodify/bpmodify.go"],
)
bootstrap_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",
],
)
bootstrap_go_binary(
name = "gotestrunner",
srcs = ["gotestrunner/gotestrunner.go"],
)
bootstrap_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"],
}