blob: 5392d778bd7a108c486e795da1d25ddcb7e2fe4d [file] [log] [blame]
// Copyright 2015 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.
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.
// Next Id: 17
message Control {
// Previously used fields.
reserved 1, 3, 9, 11, 13;
// The single info.plist file to be bundled into the archive. This plist will
// not be modified by bundlemerge.
optional string bundle_info_plist_file = 16;
// 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;
// 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;
// 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;
// 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;
// A reverse-DNS string identifier for this bundle.
optional string primary_bundle_identifier = 14;
// A fallback bundle identifier used when primary is not filled.
optional string fallback_bundle_identifier = 15;
}
// 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;
// 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;
}