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

assert(is_mac || is_ios)

group("darwin") {
  if (is_ios) {
    deps = [
      "ios:flutter_framework",
    ]
  }
}

source_set("flutter_channels") {
  set_sources_assignment_filter([])
  sources = [
    "common/buffer_conversions.h",
    "common/buffer_conversions.mm",
    "ios/framework/Headers/FlutterBinaryMessenger.h",
    "ios/framework/Headers/FlutterChannels.h",
    "ios/framework/Headers/FlutterCodecs.h",
    "ios/framework/Headers/FlutterMacros.h",
    "ios/framework/Source/FlutterChannels.mm",
    "ios/framework/Source/FlutterCodecs.mm",
    "ios/framework/Source/FlutterStandardCodec.mm",
    "ios/framework/Source/FlutterStandardCodec_Internal.h",
  ]
  set_sources_assignment_filter(sources_assignment_filter)

  deps = [
    "$flutter_root/common",
    "$flutter_root/flow",
    "$flutter_root/fml",
    "$flutter_root/runtime",
    "$flutter_root/shell/common",
    "//third_party/skia",
  ]

  public_configs = [ "$flutter_root:config" ]
}

executable("flutter_channels_unittests") {
  testonly = true

  set_sources_assignment_filter([])
  sources = [
    "ios/framework/Source/flutter_codecs_unittest.mm",
    "ios/framework/Source/flutter_standard_codec_unittest.mm",
  ]
  set_sources_assignment_filter(sources_assignment_filter)

  deps = [
    ":flutter_channels",
    "$flutter_root/testing",
    "//third_party/dart/runtime:libdart_jit",
  ]
}
