// 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 build.xcode;
option java_outer_classname = "XcodeGenProtos";
option java_package = "com.google.devtools.build.xcode.xcodegen.proto";

// Protos named "*Control" are protos that can be used to tell Xcodegen what to
// do.

// Contains all information needed to pass to Xcodegen for it to generate a
// project file.
message Control {
  // Relative path to the project.pbxproj file. This value is used to construct
  // relative paths in the xcodeproj file, as well as to specify where to write
  // the resulting project file.
  optional string pbxproj = 1;

  // The targets to generate.
  repeated TargetControl target = 2;

  // Project-level build settings. These are shared with every target, unless
  // an individual target overrides any of them.
  repeated XcodeprojBuildSetting build_setting = 3;

  // Absolute path to the root of the current Bazel user workspace.
  optional string workspace_root = 4;

  // CPU architectures (armv7, arm64, i386, x86_64, etc.) used to build for
  // targets in the project.pbxproj file.
  repeated string cpu_architecture = 5;
}

// Information about dependency on a separate target.
message DependencyControl {
  // Label of the target in the project file that is depended upon.
  optional string target_label = 1;

  // Set to true if this dependency is that of a xctest target on its TEST_HOST.
  // Considered 'false' if omitted.
  optional bool test_host = 2;
}

// Contains information specific to a single target in the project file.
// Next ID: 23
message TargetControl {
  // A short name for the target that need not be unique. For instance, for
  // binary targets this corresponds to the product name.
  optional string name = 1;

  // Relative paths to source files to compile. Each source file is added to
  // the sources build phase of the target, so any file accepted by Xcode is
  // valid.
  repeated string source_file = 2;

  // Identical to source_file, but only Objective-C[++] source files are
  // valid. These sources are compiled without ARC.
  repeated string non_arc_source_file = 6;

  // Relative paths to support files, such as BUILD, header, and non-compiled
  // source files. These are included in the project so they can be opened in
  // the project explorer view, but are not compiled into object files.
  repeated string support_file = 3;

  // Dependencies this target has on other targets.
  repeated DependencyControl dependency = 4;

  // (Used for objc_binary and objc_bundle_library targets) path to the
  // -Info.plist file for the application.
  optional string infoplist = 5;

  // A unique name for the target in the project. This is similar to the name
  // field, but is globally unique and may be long.
  optional string label = 7;

  // Additional flags to pass to the [objective] c[++] compiler.
  repeated string copt = 8;

  // Additional flags to pass to the linker.
  repeated string linkopt = 22;

  // Paths to *.xcassets directories to include in the target as asset
  // catalogs. For all targets, this causes the .xcassets directory to be
  // included in the Project Navigator. For targets that can include them (e.g.
  // objc_binary), this causes them to be included in the resources build
  // phase.
  repeated string xcassets_dir = 9;

  // Miscellaneous build settings. Each setting is applied to all build
  // configurations.
  repeated XcodeprojBuildSetting build_setting = 10;

  // Paths to strings or xib files. Xcodegen will determine automatically if
  // they are localized (i.e. are in a directory named *.lproj) or not.
  // TODO(bazel-team): Introduce a more powerful resource file protobuf, a
  // list of which can be used to specify all resources.
  repeated string general_resource_file = 11;

  // SDK frameworks to link with this target. This should be every framework
  // required by the targets in the transitive dependency tree. Xcodegen does
  // not find these transitive dependencies automatically; they must be added
  // to this repeated field.
  repeated string sdk_framework = 12;

  // Paths to non-SDK frameworks to link with this target, relative to the
  // same path as every other path in the control file. This should be every
  // framework required by the targets in the transitive dependency tree.
  repeated string framework = 21;

  // Path to all .xcdatamodel directories required. All directories inside
  // a .xcdatamodeld directory are grouped into XCVersionGroups by the path of
  // the .xcdatamodeld directory.
  repeated string xcdatamodel = 13;

  // Path to all .a libraries to link with this target. When used on static
  // library targets, the library is not actually linked, but it will appear
  // in the Xcode Project Navigator. These are considered to be pre-built
  // libraries. In other words, they are NOT built by Xcode as a dependency
  // before this target is built.
  repeated string imported_library = 14;

  // Path to directories to include as user header search paths. These are non-
  // recursive. These should be specified here rather than in the build_setting
  // field because the build_setting field requires paths to be specified
  // relative to the container of the .xcodeproj directory, while this
  // attribute is relative to the same path as every other path in the control
  // file. These paths correspond to the "-iquote" arguments passed to the
  // compiler.
  repeated string user_header_search_path = 15;

  // Path to directories to include as header search paths. These are non-
  // recursive. These should be specified here rather than in the build_setting
  // field because the build_setting field requires paths to be specified
  // relative to the container of the .xcodeproj directory, while this
  // attribute is relative to the same path as every other path in the control
  // file. These paths correspond to the "-I" arguments passed to the
  // compiler.
  repeated string header_search_path = 16;

  // GCC_PREFIX_HEADER path. Needs to be be specified here rather than in the
  // build_setting field because the build_setting field requires paths to be
  // specified relative to the container of the .xcodeproj directory, while
  // this attribute is relative to the same path as every other path in the
  // control file.
  optional string pch_path = 20;

  // Path to .bundle directories this target depends on. For static library
  // targets, this only causes the bundle to appear in the Project Navigator.
  // For application target, this also causes the bundle to be linked with the
  // application.
  repeated string bundle_import = 17;

  // The product type, for instance "com.apple.product-type.bundle". If
  // omitted, the presence of the infoplist field indicates the type:
  // has infoplist: "com.apple.product-type.application"
  // does not have infoplist: "com.apple.product-type.library.static"
  optional string product_type = 18;

  // SDK .dylib files to link with this target. Each name should not include the
  // the path or the .dylib extension, e.g. "libz" to link in
  // "SDKROOT/usr/lib/libz.dylib". For all targets, this causes the library to
  // appear in the Project Build Settings under OTHER_LDFLAGS. For binary
  // targets, this causes the library to be linked with the final binary.
  repeated string sdk_dylib = 19;
}

// Represents the mapping of a build setting recognized by Xcode project files,
// for instance ASSETCATALOG_COMPILER_APPICON_NAME.
message XcodeprojBuildSetting {
  optional string name = 1;
  optional string value = 2;
}
