aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/protobuf/bundlemerge.proto
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/protobuf/bundlemerge.proto')
-rw-r--r--src/main/protobuf/bundlemerge.proto99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/main/protobuf/bundlemerge.proto b/src/main/protobuf/bundlemerge.proto
new file mode 100644
index 0000000000..b04eba3aa6
--- /dev/null
+++ b/src/main/protobuf/bundlemerge.proto
@@ -0,0 +1,99 @@
+syntax = "proto2";
+
+package devtools.xcode;
+option java_outer_classname = "BundleMergeProtos";
+option java_package = "com.google.devtools.build.xcode.bundlemerge.proto";
+
+// Contains all the arguments necessary to drive the BundleMerge tool,
+// including the path to the output file and extra files to include in the
+// bundle.
+message Control {
+ // Paths to the plist files to merge into the final Plist.info file. These
+ // can be binary, XML, or ASCII format.
+ repeated string source_plist_file = 1;
+
+ // Path to the .ipa file to write. This is the final application bundle. Note
+ // this is ignored for nested bundles.
+ optional string out_file = 2;
+
+ // Which devices the app targets, which corresponds to the UIDeviceFamily
+ // setting. Should be one or more of the symbols in the
+ // com.google.devtools.build.xcode.common.TargetDeviceFamily enum (e.g.
+ // "IPAD", "IPHONE").
+ repeated string target_device_family = 3;
+
+ // One of the symbols in the com.google.devtools.build.xcode.common.Platform
+ // (e.g. "DEVICE", "SIMULATOR").
+ optional string platform = 4;
+
+ // The version of the SDK used to build the app.
+ optional string sdk_version = 5;
+
+ // Earliest iOS version on which the app will run.
+ optional string minimum_os_version = 6;
+
+ // The directory inside which all files are placed in the final bundle.
+ // For the top-most bundle, this is generally "Payload/{app_name}.app". If
+ // this bundle is nested, then this bundle_root is relative to to the parent's
+ // bundle_root.
+ optional string bundle_root = 7;
+
+ // All files to put in the bundle besides automatically-generated files such
+ // as Info.plist and PkgInfo. This should include the application binary.
+ repeated BundleFile bundle_file = 8;
+
+ repeated string merge_without_name_prefix_zip = 9 [deprecated=true];
+
+ // Zip files to merge with the final zip. Note that bundle_root is ignored
+ // when merging zips, so to place items in the bundle root, you should do one
+ // of the following:
+ // 1. make the merge_zips have entries that are named "{bundle_root}/foo"
+ // rather than just "foo"
+ // 2. set the root property on the MergeZip protobuf to {bundle_root}
+ // Note that the paths of these zips are always relative to the zip file root
+ // - they are not relative to the containing bundle.
+ repeated MergeZip merge_zip = 10;
+
+ // Variable substitutions to perform on property values in the merged
+ // .plist file.
+ repeated VariableSubstitution variable_substitution = 11;
+
+ // Bundles that are nested within this one. bundle_root in these bundles is
+ // relative to the containing bundle's bundle_root.
+ repeated Control nested_bundle = 12;
+
+ // Name of the executable for this bundle or unset if no such executable
+ // exists.
+ optional string executable_name = 13;
+}
+
+// Represents a zip file to merge with the final zip.
+message MergeZip {
+ // The prefix to prepend to every entry name before putting it in the final
+ // zip. For instance, "Payload/Foo.app/" (notice the final slash).
+ optional string entry_name_prefix = 1 [default = ""];
+
+ // The path to the source file to merge.
+ optional string source_path = 2;
+}
+
+message BundleFile {
+ // The path of the file to put in the bundle.
+ optional string source_file = 1;
+
+ // The path of the file in the bundle, relative to the bundle root.
+ optional string bundle_path = 2;
+
+ // The external file attribute field in the central directory record in the
+ // .zip file. If omitted, the ZipInputEntry.DEFAULT_EXTERNAL_FILE_ATTRIBUTE
+ // constant is used.
+ optional int32 external_file_attribute = 3;
+}
+
+message VariableSubstitution {
+ // The name of the varaible to substitute.
+ required string name = 1;
+
+ // The substitution value.
+ required string value = 2;
+}