Merge pull request #249 from meteorcloudy:stardoc-dev

PiperOrigin-RevId: 683088422
Change-Id: Id6308c12494f4b591fd1d47ffbe84cb3b01b745d
diff --git a/MODULE.bazel b/MODULE.bazel
index 5fa70e9..39de0d0 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -6,7 +6,6 @@
 
 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 @@
 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 @@
     ]),
     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 @@
 
 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