# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

declare_args() {
  # List of GN paths to source files to be instrumented by `profile` variants.
  profile_source_files = [
    # https://fxbug.dev/42061298: profile all checked-in sources.
    # (don't profile generated sources under out/)
    "//*",
  ]

  # List of GN paths to source files to NOT instrument by `profile` variants.
  # These take precedence over `profile_source_files`.
  dont_profile_source_files = [
    # Do not instrument system headers that are under //prebuilt.
    "//prebuilt/*",
    # https://fxbug.dev/42061298: don't profile //third_party.
    # https://fxbug.dev/42067345: uncomment the below when issue is fixed.
    # Also, change the expression to not reject //third_party/cobalt/*
    #"//third_party/*",
  ]

  # List GN path to files in Clang's `-fprofile-list` format describing files
  # and functions to be instrumented by `profile` variants.
  profile_source_files_list_files = []

  # Profile data path that is used by PGO.
  pgo_profile_path = ""
}

# This helps build code discern whether all code is being instrumented by
# default or not.  If it's true, then additional -fprofile-list=... switches
# may be required to ensure particular code (e.g. in tests) gets instrumented.
#
# Type: bool
selective_profiling = profile_source_files + dont_profile_source_files +
                      profile_source_files_list_files != []
