# Copyright 2015 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/buildflag_header.gni")
import("//build/config/ios/ios_sdk.gni")

source_set("common") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "channel_info.h",
    "channel_info.mm",
    "string_util.h",
    "string_util.mm",
    "x_callback_url.cc",
    "x_callback_url.h",
  ]

  deps = [
    "//base",
    "//components/version_info",
    "//components/version_info:version_string",
    "//ios/chrome/common/app_group:main_app",
    "//net",
    "//url",
  ]

  public_deps = [
    ":timing",
  ]

  libs = [ "QuartzCore.framework" ]
}

source_set("common_extension") {
  sources = [
    "highlight_button.h",
    "highlight_button.mm",
  ]

  libs = [ "UIKit.framework" ]

  public_deps = [
    ":timing",
  ]

  configs += [ "//build/config/compiler:enable_arc" ]
}

source_set("timing") {
  sources = [
    "material_timing.h",
    "material_timing.mm",
  ]

  libs = [ "QuartzCore.framework" ]

  configs += [ "//build/config/compiler:enable_arc" ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "block_unittest.mm",
    "ns_regular_expression_unittest.mm",
    "string_util_unittest.mm",
    "x_callback_url_unittest.cc",
  ]
  deps = [
    ":common",
    ":noarc_unit_tests",
    "//base",
    "//testing/gtest",
  ]
  configs += [ "//build/config/compiler:enable_arc" ]
}

# The block_unittest.mm has been duplicated during the migration of iOS code
# to ARC (see crbug.com/624363). As this test checks the interaction of C++
# objects and Objective-C blocks, it is necessary to keep two version of the
# test compiled with and without ARC. Remove this file when the conversion to
# ARC is complete.
source_set("noarc_unit_tests") {
  visibility = [ ":unit_tests" ]
  testonly = true
  sources = [
    "noarc_block_unittest.mm",
  ]
  deps = [
    ":common",
    "//base",
    "//testing/gtest",
  ]
}

buildflag_header("ios_app_bundle_id_prefix_buildflags") {
  header = "ios_app_bundle_id_prefix_buildflags.h"
  flags = [ "IOS_APP_BUNDLE_ID_PREFIX=\"$ios_app_bundle_id_prefix\"" ]
}
