# Copyright (C) 2020 The Android Open Source Project
#
# 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.

import("../../gn/perfetto.gni")

source_set("perfetto_atoms") {
  sources = [ "perfetto_atoms.h" ]
  deps = [ "../../gn:default_deps" ]
}

source_set("android_stats") {
  deps = [
    "../../gn:default_deps",
    "../../include/perfetto/base",
  ]
  public_deps = [ ":perfetto_atoms" ]
  sources = [
    "statsd_logging_helper.cc",
    "statsd_logging_helper.h",
  ]
  if (is_android && perfetto_build_with_android) {
    deps += [
      "../android_internal:headers",
      "../android_internal:lazy_library_loader",
    ]
  }
}
