blob: 2a3f6a04e8f1a643b3301109bbfc475eb048e2b0 [file] [log] [blame]
# 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",
]
}