| # Copyright 2017 The Bazel Authors. All rights reserved. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| load("@bazel_skylib//:bzl_library.bzl", "bzl_library") |
| load("@build_bazel_rules_nodejs//:tools/defaults.bzl", "codeowners", "pkg_npm") |
| load("@build_bazel_rules_nodejs//tools/stardoc:index.bzl", "stardoc") |
| load("//third_party/github.com/bazelbuild/bazel-skylib:rules/copy_file.bzl", "copy_file") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| codeowners( |
| teams = ["@jbedard"], |
| ) |
| |
| exports_files([ |
| "rollup.config.js", |
| "index.js", |
| ]) |
| |
| bzl_library( |
| name = "bzl", |
| srcs = glob(["*.bzl"]), |
| deps = [ |
| "@build_bazel_rules_nodejs//:bzl", |
| "@build_bazel_rules_nodejs//internal/common:bzl", |
| "@build_bazel_rules_nodejs//internal/linker:bzl", |
| ], |
| ) |
| |
| stardoc( |
| name = "docs", |
| testonly = True, |
| out = "index.md", |
| input = ":index.bzl", |
| tags = ["fix-windows"], |
| deps = [":bzl"], |
| ) |
| |
| # Ugly genrule depending on local linux environment to build the README out of skylark doc generation. |
| # Only referenced when we do a release. |
| # TODO: This ought to be possible with stardoc alone. Need to coordinate with Chris Parsons. |
| genrule( |
| name = "generate_README", |
| srcs = [ |
| "index.md", |
| "install.md", |
| ], |
| outs = ["README.md"], |
| cmd = """cat $(execpath install.md) $(execpath index.md) | sed 's/^##/\\\n##/' > $@""", |
| tags = ["fix-windows"], |
| visibility = ["//docs:__pkg__"], |
| ) |
| |
| # Copy the proto file to a matching third_party/... nested directory |
| # so the runtime require() statements still work |
| _worker_proto_dir = "third_party/github.com/bazelbuild/bazel/src/main/protobuf" |
| |
| genrule( |
| name = "copy_worker_js", |
| srcs = ["//packages/worker:npm_package"], |
| outs = ["worker.js"], |
| cmd = "cp $(execpath //packages/worker:npm_package)/index.js $@", |
| visibility = ["//visibility:public"], |
| ) |
| |
| copy_file( |
| name = "copy_worker_proto", |
| src = "@build_bazel_rules_typescript//%s:worker_protocol.proto" % _worker_proto_dir, |
| out = "%s/worker_protocol.proto" % _worker_proto_dir, |
| visibility = ["//visibility:public"], |
| ) |
| |
| copy_file( |
| name = "npm_version_check", |
| src = "//internal:npm_version_check.js", |
| out = ":npm_version_check.js", |
| ) |
| |
| pkg_npm( |
| name = "npm_package", |
| srcs = [ |
| "index.bzl", |
| "index.js", |
| "package.json", |
| "rollup.config.js", |
| "rollup_bundle.bzl", |
| ], |
| build_file_content = """exports_files(["rollup.config.js"])""", |
| deps = [ |
| ":npm_version_check", |
| ] + select({ |
| # FIXME: fix stardoc on Windows; //packages/rollup:index.md generation fails with: |
| # ERROR: D:/b/62unjjin/external/npm_bazel_rollup/BUILD.bazel:32:1: Couldn't build file |
| # external/npm_bazel_rollup/docs.raw: Generating proto for Starlark doc for docs failed (Exit 1) |
| "@bazel_tools//src/conditions:windows": [], |
| "//conditions:default": [":generate_README"], |
| }) + [ |
| ":copy_worker_proto", |
| ":worker.js", |
| ], |
| ) |