aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/dexer
diff options
context:
space:
mode:
authorGravatar ccalvarin <ccalvarin@google.com>2017-04-17 23:37:46 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-04-18 11:33:49 +0200
commit2eaa02e8b630ce94fff39422334c47726ead6324 (patch)
tree2c6d37b928f5375520470b4214d3e0847581f8e4 /src/tools/android/java/com/google/devtools/build/android/dexer
parent91e4dedd402c214a815eb6e2290998dec1f3d397 (diff)
Split out option usage restriction from option category.
These are two different concepts. Do not remove category overload compatibility in this CL, to keep this change limited to converting the current uses of category. With some flyby formatting fixes on affected OptionsBases. RELNOTES: None. PiperOrigin-RevId: 153390002
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/dexer')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/dexer/DexBuilder.java49
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/dexer/DexFileMerger.java103
2 files changed, 90 insertions, 62 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/dexer/DexBuilder.java b/src/tools/android/java/com/google/devtools/build/android/dexer/DexBuilder.java
index b22b9a6452..63f8ec4bda 100644
--- a/src/tools/android/java/com/google/devtools/build/android/dexer/DexBuilder.java
+++ b/src/tools/android/java/com/google/devtools/build/android/dexer/DexBuilder.java
@@ -32,6 +32,7 @@ import com.google.devtools.build.lib.worker.WorkerProtocol.WorkResponse;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionsBase;
import com.google.devtools.common.options.OptionsParser;
+import com.google.devtools.common.options.OptionsParser.OptionUsageRestrictions;
import com.google.devtools.common.options.OptionsParsingException;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
@@ -60,32 +61,40 @@ class DexBuilder {
* Commandline options.
*/
public static class Options extends OptionsBase {
- @Option(name = "input_jar",
- defaultValue = "null",
- category = "input",
- converter = ExistingPathConverter.class,
- abbrev = 'i',
- help = "Input file to read classes and jars from.")
+ @Option(
+ name = "input_jar",
+ defaultValue = "null",
+ category = "input",
+ converter = ExistingPathConverter.class,
+ abbrev = 'i',
+ help = "Input file to read classes and jars from."
+ )
public Path inputJar;
- @Option(name = "output_zip",
- defaultValue = "null",
- category = "output",
- converter = PathConverter.class,
- abbrev = 'o',
- help = "Output file to write.")
+ @Option(
+ name = "output_zip",
+ defaultValue = "null",
+ category = "output",
+ converter = PathConverter.class,
+ abbrev = 'o',
+ help = "Output file to write."
+ )
public Path outputZip;
- @Option(name = "max_threads",
- defaultValue = "8",
- category = "misc",
- help = "How many threads (besides the main thread) to use at most.")
+ @Option(
+ name = "max_threads",
+ defaultValue = "8",
+ category = "misc",
+ help = "How many threads (besides the main thread) to use at most."
+ )
public int maxThreads;
- @Option(name = "persistent_worker",
- defaultValue = "false",
- category = "hidden",
- help = "Run as a Bazel persistent worker.")
+ @Option(
+ name = "persistent_worker",
+ defaultValue = "false",
+ optionUsageRestrictions = OptionUsageRestrictions.HIDDEN,
+ help = "Run as a Bazel persistent worker."
+ )
public boolean persistentWorker;
}
diff --git a/src/tools/android/java/com/google/devtools/build/android/dexer/DexFileMerger.java b/src/tools/android/java/com/google/devtools/build/android/dexer/DexFileMerger.java
index 3841ac32d7..0a68efb110 100644
--- a/src/tools/android/java/com/google/devtools/build/android/dexer/DexFileMerger.java
+++ b/src/tools/android/java/com/google/devtools/build/android/dexer/DexFileMerger.java
@@ -33,6 +33,7 @@ import com.google.devtools.common.options.EnumConverter;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionsBase;
import com.google.devtools.common.options.OptionsParser;
+import com.google.devtools.common.options.OptionsParser.OptionUsageRestrictions;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -61,63 +62,81 @@ class DexFileMerger {
* Commandline options.
*/
public static class Options extends OptionsBase {
- @Option(name = "input",
- defaultValue = "null",
- category = "input",
- converter = ExistingPathConverter.class,
- abbrev = 'i',
- help = "Input file to read to aggregate.")
+ @Option(
+ name = "input",
+ defaultValue = "null",
+ category = "input",
+ converter = ExistingPathConverter.class,
+ abbrev = 'i',
+ help = "Input file to read to aggregate."
+ )
public Path inputArchive;
- @Option(name = "output",
- defaultValue = "classes.dex.jar",
- category = "output",
- converter = PathConverter.class,
- abbrev = 'o',
- help = "Output archive to write.")
+ @Option(
+ name = "output",
+ defaultValue = "classes.dex.jar",
+ category = "output",
+ converter = PathConverter.class,
+ abbrev = 'o',
+ help = "Output archive to write."
+ )
public Path outputArchive;
- @Option(name = "multidex",
- defaultValue = "off",
- category = "multidex",
- converter = MultidexStrategyConverter.class,
- help = "Allow more than one .dex file in the output.")
+ @Option(
+ name = "multidex",
+ defaultValue = "off",
+ category = "multidex",
+ converter = MultidexStrategyConverter.class,
+ help = "Allow more than one .dex file in the output."
+ )
public MultidexStrategy multidexMode;
- @Option(name = "main-dex-list",
- defaultValue = "null",
- category = "multidex",
- converter = ExistingPathConverter.class,
- implicitRequirements = "--multidex=minimal",
- help = "List of classes to be placed into \"main\" classes.dex file.")
+ @Option(
+ name = "main-dex-list",
+ defaultValue = "null",
+ category = "multidex",
+ converter = ExistingPathConverter.class,
+ implicitRequirements = "--multidex=minimal",
+ help = "List of classes to be placed into \"main\" classes.dex file."
+ )
public Path mainDexListFile;
- @Option(name = "minimal-main-dex",
- defaultValue = "false",
- category = "multidex",
- implicitRequirements = "--multidex=minimal",
- help = "If true, *only* classes listed in --main_dex_list file are placed into \"main\" "
- + "classes.dex file.")
+ @Option(
+ name = "minimal-main-dex",
+ defaultValue = "false",
+ category = "multidex",
+ implicitRequirements = "--multidex=minimal",
+ help =
+ "If true, *only* classes listed in --main_dex_list file are placed into \"main\" "
+ + "classes.dex file."
+ )
public boolean minimalMainDex;
- @Option(name = "verbose",
- defaultValue = "false",
- category = "misc",
- help = "If true, print information about the merged files and resulting files to stdout.")
+ @Option(
+ name = "verbose",
+ defaultValue = "false",
+ category = "misc",
+ help = "If true, print information about the merged files and resulting files to stdout."
+ )
public boolean verbose;
- @Option(name = "max-bytes-wasted-per-file",
- defaultValue = "0",
- category = "misc",
- help = "Limit on conservatively allocated but unused bytes per dex file, which can enable "
- + "faster merging.")
+ @Option(
+ name = "max-bytes-wasted-per-file",
+ defaultValue = "0",
+ category = "misc",
+ help =
+ "Limit on conservatively allocated but unused bytes per dex file, which can enable "
+ + "faster merging."
+ )
public int wasteThresholdPerDex;
// Undocumented dx option for testing multidex logic
- @Option(name = "set-max-idx-number",
- defaultValue = "" + (DexFormat.MAX_MEMBER_IDX + 1),
- category = "undocumented",
- help = "Limit on fields and methods in a single dex file.")
+ @Option(
+ name = "set-max-idx-number",
+ defaultValue = "" + (DexFormat.MAX_MEMBER_IDX + 1),
+ optionUsageRestrictions = OptionUsageRestrictions.UNDOCUMENTED,
+ help = "Limit on fields and methods in a single dex file."
+ )
public int maxNumberOfIdxPerDex;
}