# 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.

if (current_toolchain == host_toolchain) {
  executable("iossim") {
    sources = [ "iossim.mm" ]
    frameworks = [ "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" ]
  }
} else {
  group("iossim") {
    public_deps = [ ":iossim($default_toolchain)" ]
  }
}
