diff --git a/MODULE.bazel b/MODULE.bazel index 5fa70e9..39de0d0 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,7 +6,6 @@ module( bazel_dep(name = "bazel_skylib", version = "1.7.1") bazel_dep(name = "platforms", version = "0.0.10") -bazel_dep(name = "stardoc", version = "0.7.0") cc_configure = use_extension("//cc:extensions.bzl", "cc_configure_extension") use_repo(cc_configure, "local_config_cc", "local_config_cc_toolchains") @@ -14,3 +13,4 @@ use_repo(cc_configure, "local_config_cc", "local_config_cc_toolchains") register_toolchains("@local_config_cc_toolchains//:all") bazel_dep(name = "rules_testing", version = "0.6.0", dev_dependency = True) +bazel_dep(name = "stardoc", version = "0.7.0", dev_dependency = True) diff --git a/cc/toolchains/BUILD b/cc/toolchains/BUILD index 98fe2cf..aac254d 100644 --- a/cc/toolchains/BUILD +++ b/cc/toolchains/BUILD @@ -13,11 +13,6 @@ # limitations under the License. load("@bazel_skylib//:bzl_library.bzl", "bzl_library") -load("@bazel_skylib//rules:diff_test.bzl", "diff_test") -load("@bazel_skylib//rules:expand_template.bzl", "expand_template") -load("@stardoc//stardoc:stardoc.bzl", "stardoc") -load("//cc/toolchains/impl:documented_api.bzl", "DOCUMENTED_TOOLCHAIN_RULES") -load("//cc/toolchains/impl:markdown_helpers.bzl", "xref_substitutions") bzl_library( name = "toolchain_rules", @@ -42,35 +37,3 @@ filegroup( ]), visibility = ["//visibility:public"], ) - -stardoc( - name = "toolchain_api", - out = "raw_generated_toolchain_api.md", - input = "//cc/toolchains/impl:documented_api.bzl", - deps = [":toolchain_rules"], -) - -expand_template( - name = "toolchain_api_md", - out = "generated_toolchain_api.md", - # Dictionary order 100% matters here! - # buildifier: disable=unsorted-dict-items - substitutions = { - # Strip @rules_cc to prevent instances of @rules_cc@rules_cc//cc. - "@rules_cc//cc": "//cc", - # In GitHub, we prefer to clarify all the labels that come from - # rules_cc. - "//cc": "@rules_cc//cc", - } | xref_substitutions({ - "`{}`".format(rule_name): "#{}".format(rule_name) - for rule_name in DOCUMENTED_TOOLCHAIN_RULES - }), - # buildifier: enable=unsorted-dict-items - template = ":raw_generated_toolchain_api.md", -) - -diff_test( - name = "toolchain_api_diff_test", - file1 = ":generated_toolchain_api.md", - file2 = ":toolchain_api.md", -) diff --git a/cc/toolchains/impl/BUILD b/cc/toolchains/impl/BUILD index 2ad5817..f621832 100644 --- a/cc/toolchains/impl/BUILD +++ b/cc/toolchains/impl/BUILD @@ -9,7 +9,7 @@ load("@bazel_skylib//:bzl_library.bzl", "bzl_library") exports_files( ["documented_api.bzl"], - visibility = ["//cc/toolchains:__subpackages__"], + visibility = ["//docs:__pkg__"], ) bzl_library( diff --git a/docs/BUILD b/docs/BUILD new file mode 100644 index 0000000..3680fb6 --- /dev/null +++ b/docs/BUILD @@ -0,0 +1,60 @@ +# Copyright 2024 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//rules:diff_test.bzl", "diff_test") +load("@bazel_skylib//rules:expand_template.bzl", "expand_template") +load("@stardoc//stardoc:stardoc.bzl", "stardoc") +load("//cc/toolchains/impl:documented_api.bzl", "DOCUMENTED_TOOLCHAIN_RULES") +load("//cc/toolchains/impl:markdown_helpers.bzl", "xref_substitutions") + +filegroup( + name = "srcs", + srcs = glob([ + "**/*.bzl", + "**/BUILD", + ]), + visibility = ["//visibility:public"], +) + +stardoc( + name = "toolchain_api", + out = "raw_generated_toolchain_api.md", + input = "//cc/toolchains/impl:documented_api.bzl", + deps = ["//cc/toolchains:toolchain_rules"], +) + +expand_template( + name = "toolchain_api_md", + out = "generated_toolchain_api.md", + # Dictionary order 100% matters here! + # buildifier: disable=unsorted-dict-items + substitutions = { + # Strip @rules_cc to prevent instances of @rules_cc@rules_cc//cc. + "@rules_cc//cc": "//cc", + # In GitHub, we prefer to clarify all the labels that come from + # rules_cc. + "//cc": "@rules_cc//cc", + } | xref_substitutions({ + "`{}`".format(rule_name): "#{}".format(rule_name) + for rule_name in DOCUMENTED_TOOLCHAIN_RULES + }), + # buildifier: enable=unsorted-dict-items + template = ":raw_generated_toolchain_api.md", +) + +diff_test( + name = "toolchain_api_diff_test", + file1 = ":generated_toolchain_api.md", + file2 = ":toolchain_api.md", +) diff --git a/cc/toolchains/toolchain_api.md b/docs/toolchain_api.md similarity index 100% rename from cc/toolchains/toolchain_api.md rename to docs/toolchain_api.md