aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/docgen/BlazeRuleHelpPrinter.java9
-rw-r--r--src/main/java/com/google/devtools/build/docgen/BuildDocCollector.java12
-rw-r--r--src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaGenerator.java23
-rw-r--r--src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaOptions.java10
-rw-r--r--src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java15
-rw-r--r--src/main/java/com/google/devtools/build/docgen/MultiPageBuildEncyclopediaProcessor.java9
-rw-r--r--src/main/java/com/google/devtools/build/docgen/SinglePageBuildEncyclopediaProcessor.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java3
11 files changed, 58 insertions, 49 deletions
diff --git a/src/main/java/com/google/devtools/build/docgen/BlazeRuleHelpPrinter.java b/src/main/java/com/google/devtools/build/docgen/BlazeRuleHelpPrinter.java
index 789554f312..b34bec81b7 100644
--- a/src/main/java/com/google/devtools/build/docgen/BlazeRuleHelpPrinter.java
+++ b/src/main/java/com/google/devtools/build/docgen/BlazeRuleHelpPrinter.java
@@ -28,13 +28,12 @@ public class BlazeRuleHelpPrinter {
private static Map<String, RuleDocumentation> ruleDocMap = null;
- /**
- * Returns the documentation of the given rule to be printed on the console.
- */
- public static String getRuleDoc(String ruleName, ConfiguredRuleClassProvider provider) {
+ /** Returns the documentation of the given rule to be printed on the console. */
+ public static String getRuleDoc(
+ String ruleName, String productName, ConfiguredRuleClassProvider provider) {
if (ruleDocMap == null) {
try {
- BuildDocCollector collector = new BuildDocCollector(provider, false);
+ BuildDocCollector collector = new BuildDocCollector(productName, provider, false);
Map<String, RuleDocumentation> ruleDocs = collector.collect(
ImmutableList.of("java/com/google/devtools/build/lib/view",
"java/com/google/devtools/build/lib/rules"), null);
diff --git a/src/main/java/com/google/devtools/build/docgen/BuildDocCollector.java b/src/main/java/com/google/devtools/build/docgen/BuildDocCollector.java
index 31133cc605..df250d2e2f 100644
--- a/src/main/java/com/google/devtools/build/docgen/BuildDocCollector.java
+++ b/src/main/java/com/google/devtools/build/docgen/BuildDocCollector.java
@@ -44,10 +44,13 @@ import java.util.TreeMap;
public class BuildDocCollector {
private static final Splitter SHARP_SPLITTER = Splitter.on('#').limit(2).trimResults();
- private ConfiguredRuleClassProvider ruleClassProvider;
- private boolean printMessages;
+ private final String productName;
+ private final ConfiguredRuleClassProvider ruleClassProvider;
+ private final boolean printMessages;
- public BuildDocCollector(ConfiguredRuleClassProvider ruleClassProvider, boolean printMessages) {
+ public BuildDocCollector(
+ String productName, ConfiguredRuleClassProvider ruleClassProvider, boolean printMessages) {
+ this.productName = productName;
this.ruleClassProvider = ruleClassProvider;
this.printMessages = printMessages;
}
@@ -160,8 +163,7 @@ public class BuildDocCollector {
*/
public Map<String, RuleDocumentation> collect(List<String> inputDirs, String blackList)
throws BuildEncyclopediaDocException, IOException {
- RuleLinkExpander expander = new RuleLinkExpander(
- ruleClassProvider.getProductName(), /* singlePage */ false);
+ RuleLinkExpander expander = new RuleLinkExpander(productName, /* singlePage */ false);
return collect(inputDirs, blackList, expander);
}
diff --git a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaGenerator.java b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaGenerator.java
index bc38cfc7e7..52f34478eb 100644
--- a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaGenerator.java
+++ b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaGenerator.java
@@ -26,10 +26,11 @@ import java.util.Collections;
public class BuildEncyclopediaGenerator {
private static void printUsage(OptionsParser parser) {
System.err.println(
- "Usage: docgen_bin -p rule_class_provider (-i input_dir)+\n"
- + " [-o outputdir] [-b blacklist] [-1] [-h]\n\n"
- + "Generates the Build Encyclopedia from embedded native rule documentation.\n"
- + "The rule class provider (-p) and at least one input_dir (-i) must be specified.\n");
+ "Usage: docgen_bin -n product_name -p rule_class_provider (-i input_dir)+\n"
+ + " [-o outputdir] [-b blacklist] [-1] [-h]\n\n"
+ + "Generates the Build Encyclopedia from embedded native rule documentation.\n"
+ + "The product name (-n), rule class provider (-p) and at least one input_dir\n"
+ + "(-i) must be specified.\n");
System.err.println(
parser.describeOptions(
Collections.<String, String>emptyMap(), OptionsParser.HelpVerbosity.LONG));
@@ -62,7 +63,9 @@ public class BuildEncyclopediaGenerator {
Runtime.getRuntime().exit(0);
}
- if (options.inputDirs.size() == 0 || options.provider.isEmpty()) {
+ if (options.productName.isEmpty()
+ || options.inputDirs.isEmpty()
+ || options.provider.isEmpty()) {
printUsage(parser);
Runtime.getRuntime().exit(1);
}
@@ -70,11 +73,13 @@ public class BuildEncyclopediaGenerator {
try {
BuildEncyclopediaProcessor processor = null;
if (options.singlePage) {
- processor = new SinglePageBuildEncyclopediaProcessor(
- createRuleClassProvider(options.provider));
+ processor =
+ new SinglePageBuildEncyclopediaProcessor(
+ options.productName, createRuleClassProvider(options.provider));
} else {
- processor = new MultiPageBuildEncyclopediaProcessor(
- createRuleClassProvider(options.provider));
+ processor =
+ new MultiPageBuildEncyclopediaProcessor(
+ options.productName, createRuleClassProvider(options.provider));
}
processor.generateDocumentation(
options.inputDirs, options.outputDir, options.blacklist);
diff --git a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaOptions.java b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaOptions.java
index b7c6b51e73..3c68ccb135 100644
--- a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaOptions.java
+++ b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaOptions.java
@@ -24,6 +24,16 @@ import java.util.List;
*/
public class BuildEncyclopediaOptions extends OptionsBase {
@Option(
+ name = "product_name",
+ abbrev = 'n',
+ defaultValue = "",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ help = "Name of the product to put in the documentation"
+ )
+ public String productName;
+
+ @Option(
name = "input_dir",
abbrev = 'i',
defaultValue = "",
diff --git a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java
index 7abe7f12c1..82498d1502 100644
--- a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java
+++ b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java
@@ -45,14 +45,19 @@ public abstract class BuildEncyclopediaProcessor {
}
};
- protected ConfiguredRuleClassProvider ruleClassProvider;
+ /** Name of the product to insert into the documentation. */
+ protected final String productName;
+
+ /** Rule class provider from which to extract the rule class hierarchy and attributes. */
+ protected final ConfiguredRuleClassProvider ruleClassProvider;
/**
- * Creates the BuildEncyclopediaProcessor instance. The ruleClassProvider parameter
- * is used for rule class hierarchy and attribute checking.
- *
+ * Creates the BuildEncyclopediaProcessor instance. The ruleClassProvider parameter is used for
+ * rule class hierarchy and attribute checking.
*/
- public BuildEncyclopediaProcessor(ConfiguredRuleClassProvider ruleClassProvider) {
+ public BuildEncyclopediaProcessor(
+ String productName, ConfiguredRuleClassProvider ruleClassProvider) {
+ this.productName = productName;
this.ruleClassProvider = Preconditions.checkNotNull(ruleClassProvider);
}
diff --git a/src/main/java/com/google/devtools/build/docgen/MultiPageBuildEncyclopediaProcessor.java b/src/main/java/com/google/devtools/build/docgen/MultiPageBuildEncyclopediaProcessor.java
index 64077c91da..b87d1d9c2b 100644
--- a/src/main/java/com/google/devtools/build/docgen/MultiPageBuildEncyclopediaProcessor.java
+++ b/src/main/java/com/google/devtools/build/docgen/MultiPageBuildEncyclopediaProcessor.java
@@ -24,8 +24,9 @@ import java.util.Map;
* Assembles the multi-page version of the Build Encyclopedia with one page per rule family.
*/
public class MultiPageBuildEncyclopediaProcessor extends BuildEncyclopediaProcessor {
- public MultiPageBuildEncyclopediaProcessor(ConfiguredRuleClassProvider ruleClassProvider) {
- super(ruleClassProvider);
+ public MultiPageBuildEncyclopediaProcessor(
+ String productName, ConfiguredRuleClassProvider ruleClassProvider) {
+ super(productName, ruleClassProvider);
}
/**
@@ -39,8 +40,8 @@ public class MultiPageBuildEncyclopediaProcessor extends BuildEncyclopediaProces
@Override
public void generateDocumentation(List<String> inputDirs, String outputDir, String blackList)
throws BuildEncyclopediaDocException, IOException {
- BuildDocCollector collector = new BuildDocCollector(ruleClassProvider, false);
- RuleLinkExpander expander = new RuleLinkExpander(ruleClassProvider.getProductName(), false);
+ BuildDocCollector collector = new BuildDocCollector(productName, ruleClassProvider, false);
+ RuleLinkExpander expander = new RuleLinkExpander(productName, false);
Map<String, RuleDocumentation> ruleDocEntries = collector.collect(
inputDirs, blackList, expander);
warnAboutUndocumentedRules(
diff --git a/src/main/java/com/google/devtools/build/docgen/SinglePageBuildEncyclopediaProcessor.java b/src/main/java/com/google/devtools/build/docgen/SinglePageBuildEncyclopediaProcessor.java
index 56f7d29386..395455bba2 100644
--- a/src/main/java/com/google/devtools/build/docgen/SinglePageBuildEncyclopediaProcessor.java
+++ b/src/main/java/com/google/devtools/build/docgen/SinglePageBuildEncyclopediaProcessor.java
@@ -24,8 +24,9 @@ import java.util.Map;
* Assembles the single-page version of the Build Encyclopedia.
*/
public class SinglePageBuildEncyclopediaProcessor extends BuildEncyclopediaProcessor {
- public SinglePageBuildEncyclopediaProcessor(ConfiguredRuleClassProvider ruleClassProvider) {
- super(ruleClassProvider);
+ public SinglePageBuildEncyclopediaProcessor(
+ String productName, ConfiguredRuleClassProvider ruleClassProvider) {
+ super(productName, ruleClassProvider);
}
/**
@@ -39,8 +40,8 @@ public class SinglePageBuildEncyclopediaProcessor extends BuildEncyclopediaProce
@Override
public void generateDocumentation(List<String> inputDirs, String outputDir, String blackList)
throws BuildEncyclopediaDocException, IOException {
- BuildDocCollector collector = new BuildDocCollector(ruleClassProvider, false);
- RuleLinkExpander expander = new RuleLinkExpander(ruleClassProvider.getProductName(), true);
+ BuildDocCollector collector = new BuildDocCollector(productName, ruleClassProvider, false);
+ RuleLinkExpander expander = new RuleLinkExpander(productName, true);
Map<String, RuleDocumentation> ruleDocEntries = collector.collect(
inputDirs, blackList, expander);
warnAboutUndocumentedRules(
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 854119b9e6..6149e5fc02 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -1123,6 +1123,7 @@ genrule(
cmd = (
"mkdir -p $(@D)/be && " +
"$(location //src/main/java/com/google/devtools/build/docgen:docgen_bin)" +
+ " --product_name=bazel" +
" --provider=com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider" +
" --input_dir=$$PWD/src/main/java/com/google/devtools/build/lib" +
" --output_dir=$(@D)/be &&" +
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index b929b99ec5..ef01005a9c 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -195,7 +195,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
/** Builder for {@link ConfiguredRuleClassProvider}. */
public static class Builder implements RuleDefinitionEnvironment {
- private String productName;
private final StringBuilder defaultWorkspaceFilePrefix = new StringBuilder();
private final StringBuilder defaultWorkspaceFileSuffix = new StringBuilder();
private Label preludeLabel;
@@ -228,11 +227,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
// TODO(pcloudy): Remove this field after Bazel rule definitions are not used internally.
private String nativeLauncherLabel;
- public Builder setProductName(String productName) {
- this.productName = productName;
- return this;
- }
-
public Builder setNativeLauncherLabel(String label) {
this.nativeLauncherLabel = label;
return this;
@@ -425,7 +419,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
}
return new ConfiguredRuleClassProvider(
- productName,
preludeLabel,
runfilesPrefix,
toolsRepository,
@@ -489,8 +482,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
}
});
- private final String productName;
-
/**
* Default content that should be added at the beginning of the WORKSPACE file.
*/
@@ -558,7 +549,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
private final Environment.Frame globals;
private ConfiguredRuleClassProvider(
- String productName,
Label preludeLabel,
String runfilesPrefix,
String toolsRepository,
@@ -575,7 +565,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
PrerequisiteValidator prerequisiteValidator,
ImmutableMap<String, Object> skylarkAccessibleJavaClasses,
ImmutableList<Class<?>> skylarkModules) {
- this.productName = productName;
this.preludeLabel = preludeLabel;
this.runfilesPrefix = runfilesPrefix;
this.toolsRepository = toolsRepository;
@@ -593,10 +582,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
this.globals = createGlobals(skylarkAccessibleJavaClasses, skylarkModules);
}
- public String getProductName() {
- return productName;
- }
-
public PrerequisiteValidator getPrerequisiteValidator() {
return prerequisiteValidator;
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index 3805c8b0db..d6e4f3eafb 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -209,7 +209,6 @@ public class BazelRuleClassProvider {
@Override
public void init(Builder builder) {
builder
- .setProductName("bazel")
.setPrelude("//tools/build_rules:prelude_bazel")
.setNativeLauncherLabel("//tools/launcher:launcher")
.setRunfilesPrefix(Label.DEFAULT_REPOSITORY_DIRECTORY)
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java
index 87cc44c09f..5e42732d5e 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java
@@ -200,7 +200,8 @@ public final class HelpCommand implements BlazeCommand {
RuleClass ruleClass = provider.getRuleClassMap().get(helpSubject);
if (ruleClass != null && ruleClass.isDocumented()) {
// There is a rule with a corresponding name
- outErr.printOut(BlazeRuleHelpPrinter.getRuleDoc(helpSubject, provider));
+ outErr.printOut(
+ BlazeRuleHelpPrinter.getRuleDoc(helpSubject, runtime.getProductName(), provider));
return ExitCode.SUCCESS;
} else {
env.getReporter().handle(Event.error(