# Copyright 2026 Google LLC.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

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

if (skia_use_partition_alloc && defined(skia_partition_alloc_dir)) {
  import("${skia_partition_alloc_dir}/partition_alloc.gni")
}

source_set("raw_ptr") {
  public = [
    "raw_ptr.h",
    "raw_ptr_exclusion.h",
    "raw_ref.h",
  ]
  if (skia_use_partition_alloc && defined(skia_partition_alloc_dir)) {
    public_deps = [ "${skia_partition_alloc_dir}:raw_ptr" ]
  } else {
    sources = [
      "noop/raw_ptr.h",
      "noop/raw_ptr_exclusion.h",
      "noop/raw_ref.h",
    ]
  }
}
