|  | # Copyright 2020 The Fuchsia Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | # Builds the Bazel SDK. | 
|  | # | 
|  | # Outputs | 
|  | # | 
|  | #   Bazel SDK | 
|  | #     Writes the contents of the Bazel SDK to the ${root_out_dir}/sdk/bazel | 
|  | #     directory. | 
|  | # | 
|  | #   Bazel test workspace | 
|  | #     Writes the contents of the Bazel test workspace to the | 
|  | #     ${root_out_dir}/sdk/bazel_tests directory. | 
|  | template("bazel_workspace") { | 
|  | action("${target_name}") { | 
|  | testonly = true | 
|  |  | 
|  | forward_variables_from(invoker, | 
|  | [ | 
|  | "deps", | 
|  | "sources", | 
|  | "outputs", | 
|  | ]) | 
|  | if (!defined(deps)) { | 
|  | deps = [] | 
|  | } | 
|  | if (!defined(sources)) { | 
|  | sources = [] | 
|  | } | 
|  | if (!defined(outputs)) { | 
|  | outputs = [] | 
|  | } | 
|  |  | 
|  | script = "//scripts/sdk/bazel/generate.py" | 
|  | args = [ | 
|  | "--directory", | 
|  | rebase_path("${root_out_dir}/sdk/exported/core"), | 
|  | "--output", | 
|  | rebase_path("${root_out_dir}/sdk/bazel"), | 
|  | ] | 
|  | inputs = [ | 
|  | "//scripts/sdk/bazel/create_test_workspace.py", | 
|  | "//scripts/sdk/common/files.py", | 
|  | "//scripts/sdk/common/frontend.py", | 
|  | "//scripts/sdk/common/template_model.py", | 
|  | ] | 
|  |  | 
|  | if (defined(invoker.install_tests) && invoker.install_tests) { | 
|  | args += [ | 
|  | "--nosdk", | 
|  | "--tests", | 
|  | rebase_path("${root_out_dir}/sdk/bazel_tests"), | 
|  | ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | bazel_workspace("bazel") { | 
|  | deps = [ "//sdk:core_export($target_toolchain)" ] | 
|  | outputs = [ "${root_out_dir}/sdk/bazel/tools/BUILD" ] | 
|  | sources = [ | 
|  | "//scripts/sdk/bazel/base/cc/build_defs/cc_binary_component.bzl", | 
|  | "//scripts/sdk/bazel/base/cc/build_defs/cc_fidl_library.bzl", | 
|  | "//scripts/sdk/bazel/base/cc/build_defs/toolchain/dist.bzl", | 
|  | "//scripts/sdk/bazel/base/common/WORKSPACE", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/BUILD", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/fidl_library.bzl", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/fuchsia_select.bzl", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/fuchsia_setup.bzl", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/internal/component_runner/BUILD", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/internal/component_runner/component_runner.py", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/internal/crosstool/BUILD", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/package.bzl", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/package_files.bzl", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/package_info.bzl", | 
|  | "//scripts/sdk/bazel/base/common/build_defs/target_cpu/BUILD", | 
|  | "//scripts/sdk/bazel/base/dart/build_defs/BUILD.flutter", | 
|  | "//scripts/sdk/bazel/base/dart/build_defs/BUILD.flutter_root", | 
|  | "//scripts/sdk/bazel/base/dart/build_defs/dart.bzl", | 
|  | "//scripts/sdk/bazel/base/dart/build_defs/dart_app.bzl", | 
|  | "//scripts/sdk/bazel/base/dart/build_defs/dart_fidl_library.bzl", | 
|  | "//scripts/sdk/bazel/base/dart/build_defs/dart_library.bzl", | 
|  | "//scripts/sdk/bazel/base/dart/build_defs/flutter_app.bzl", | 
|  | "//scripts/sdk/bazel/base/dart/build_defs/setup_flutter.bzl", | 
|  | "//scripts/sdk/bazel/templates/cc_library.mako", | 
|  | "//scripts/sdk/bazel/templates/cc_prebuilt_library.mako", | 
|  | "//scripts/sdk/bazel/templates/crosstool.mako", | 
|  | "//scripts/sdk/bazel/templates/crosstool_bzl.mako", | 
|  | "//scripts/sdk/bazel/templates/crosstool_in.mako", | 
|  | "//scripts/sdk/bazel/templates/dart_library.mako", | 
|  | "//scripts/sdk/bazel/templates/fidl.mako", | 
|  | "//scripts/sdk/bazel/templates/header.mako", | 
|  | "//scripts/sdk/bazel/templates/header_no_license.mako", | 
|  | "//scripts/sdk/bazel/templates/setup_dart_bzl.mako", | 
|  | "//scripts/sdk/bazel/templates/sysroot_arch.mako", | 
|  | "//scripts/sdk/bazel/templates/sysroot_pkg.mako", | 
|  | "//scripts/sdk/bazel/templates/sysroot_version.mako", | 
|  | ] | 
|  | } | 
|  |  | 
|  | bazel_workspace("tests") { | 
|  | install_tests = true | 
|  | deps = [ ":bazel" ] | 
|  | outputs = [ "${root_out_dir}/sdk/bazel_tests/WORKSPACE" ] | 
|  | sources = [ | 
|  | "//scripts/sdk/bazel/templates/tests/bazelrc.mako", | 
|  | "//scripts/sdk/bazel/templates/tests/fidl_build.mako", | 
|  | "//scripts/sdk/bazel/templates/tests/fidl_headers.mako", | 
|  | "//scripts/sdk/bazel/templates/tests/header_slash.mako", | 
|  | "//scripts/sdk/bazel/templates/tests/headers.mako", | 
|  | "//scripts/sdk/bazel/templates/tests/headers_build.mako", | 
|  | "//scripts/sdk/bazel/templates/tests/run_py.mako", | 
|  | "//scripts/sdk/bazel/templates/tests/workspace.mako", | 
|  | "//scripts/sdk/bazel/templates/toolchain_build.mako", | 
|  | "//scripts/sdk/bazel/templates/tools.mako", | 
|  | "//scripts/sdk/bazel/tests/cc/cc/BUILD", | 
|  | "//scripts/sdk/bazel/tests/cc/cc/compilation.cc", | 
|  | "//scripts/sdk/bazel/tests/cc/cc/library.cc", | 
|  | "//scripts/sdk/bazel/tests/cc/cc/library.h", | 
|  | "//scripts/sdk/bazel/tests/cc/cc/manifest.cmx", | 
|  | "//scripts/sdk/bazel/tests/cc/cc/pkg_dep.cc", | 
|  | "//scripts/sdk/bazel/tests/cc/fidl-cc/BUILD", | 
|  | "//scripts/sdk/bazel/tests/cc/fidl-cc/simple_user.cc", | 
|  | "//scripts/sdk/bazel/tests/common/build_defs/BUILD", | 
|  | "//scripts/sdk/bazel/tests/common/build_defs/package_verifier.py", | 
|  | "//scripts/sdk/bazel/tests/common/build_defs/verify_package.bzl", | 
|  | "//scripts/sdk/bazel/tests/common/fidl/BUILD", | 
|  | "//scripts/sdk/bazel/tests/common/fidl/fuchsia_deps.fidl", | 
|  | "//scripts/sdk/bazel/tests/common/fidl/local_deps.fidl", | 
|  | "//scripts/sdk/bazel/tests/common/fidl/simple.fidl", | 
|  | "//scripts/sdk/bazel/tests/common/package/BUILD", | 
|  | "//scripts/sdk/bazel/tests/common/package/file1.txt", | 
|  | "//scripts/sdk/bazel/tests/common/package/file2.txt", | 
|  | "//scripts/sdk/bazel/tests/dart/dart/BUILD", | 
|  | "//scripts/sdk/bazel/tests/dart/dart/lib/hello.dart", | 
|  | "//scripts/sdk/bazel/tests/dart/dart/lib/main.dart", | 
|  | "//scripts/sdk/bazel/tests/dart/dart/meta/dart.cmx", | 
|  | "//scripts/sdk/bazel/tests/dart/dart/meta/dart_with_unused_dependencies.cmx", | 
|  | "//scripts/sdk/bazel/tests/dart/fidl-dart/BUILD", | 
|  | "//scripts/sdk/bazel/tests/dart/fidl-dart/instrument_bindings.dart", | 
|  | "//scripts/sdk/bazel/tests/dart/fidl-dart/meta/compile.cmx", | 
|  | "//scripts/sdk/bazel/tests/dart/flutter/BUILD", | 
|  | "//scripts/sdk/bazel/tests/dart/flutter/assets/logo.png", | 
|  | "//scripts/sdk/bazel/tests/dart/flutter/main.dart", | 
|  | "//scripts/sdk/bazel/tests/dart/flutter/meta/app.cmx", | 
|  | ] | 
|  | } |