# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/mac/mac_sdk.gni")

if (current_toolchain == host_toolchain) {
  executable("iossim") {
    sources = [
      "iossim.mm",
    ]
    libs = [ "Foundation.framework" ]
  }
} else if (current_toolchain == default_toolchain) {
  copy("iossim") {
    deps = [
      ":iossim($host_toolchain)",
    ]
    outputs = [
      "$root_out_dir/iossim",
    ]
    sources = [
      get_label_info(":iossim($host_toolchain)", "root_out_dir") + "/iossim",
    ]
  }
}
