diff options
Diffstat (limited to 'src/objc_tools')
-rw-r--r-- | src/objc_tools/momczip/BUILD | 11 | ||||
-rw-r--r-- | src/objc_tools/momczip/README | 2 | ||||
-rw-r--r-- | src/objc_tools/momczip/java/com/google/devtools/build/xcode/momczip/MomcZip.java | 56 |
3 files changed, 69 insertions, 0 deletions
diff --git a/src/objc_tools/momczip/BUILD b/src/objc_tools/momczip/BUILD new file mode 100644 index 0000000000..a2ae946d60 --- /dev/null +++ b/src/objc_tools/momczip/BUILD @@ -0,0 +1,11 @@ +package(default_visibility = ["//visibility:public"]) + +java_binary( + name = "momczip", + srcs = glob(["java/**/*.java"]), + main_class = "com.google.devtools.build.xcode.momczip.MomcZip", + deps = [ + "//src/tools/xcode-common/java/com/google/devtools/build/xcode/zippingoutput", + "//third_party:guava", + ], +) diff --git a/src/objc_tools/momczip/README b/src/objc_tools/momczip/README new file mode 100644 index 0000000000..1c87f43a5c --- /dev/null +++ b/src/objc_tools/momczip/README @@ -0,0 +1,2 @@ +momczip invokes momc ("Managed object model compiler") and zips up the output, +as the number of output files is unpredictable. diff --git a/src/objc_tools/momczip/java/com/google/devtools/build/xcode/momczip/MomcZip.java b/src/objc_tools/momczip/java/com/google/devtools/build/xcode/momczip/MomcZip.java new file mode 100644 index 0000000000..2134440795 --- /dev/null +++ b/src/objc_tools/momczip/java/com/google/devtools/build/xcode/momczip/MomcZip.java @@ -0,0 +1,56 @@ +// Copyright 2014 Google Inc. 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. + +package com.google.devtools.build.xcode.momczip; + +import com.google.common.collect.ImmutableList; +import com.google.devtools.build.xcode.zippingoutput.Arguments; +import com.google.devtools.build.xcode.zippingoutput.Wrapper; +import com.google.devtools.build.xcode.zippingoutput.Wrappers; + +import java.io.IOException; + +/** + * A tool which wraps momc, by running momc and zipping its output. See the JavaDoc for + * {@link Wrapper} for more information. + */ +public class MomcZip implements Wrapper { + @Override + public String name() { + return "MomcZip"; + } + + @Override + public String subtoolName() { + return "momc"; + } + + @Override + public Iterable<String> subCommand(Arguments args, String outputDirectory) { + return new ImmutableList.Builder<String>() + .add(args.subtoolCmd()) + .addAll(args.subtoolExtraArgs()) + .add(outputDirectory) + .build(); + } + + public static void main(String[] args) throws IOException, InterruptedException { + Wrappers.executePipingOutput(args, new MomcZip()); + } + + @Override + public boolean outputDirectoryMustExist() { + return false; + } +} |