chromium/chrome/browser/ash/policy/tools/BUILD.gn

# Copyright 2024 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/chromeos/ui_mode.gni")

assert(is_chromeos_ash)

device_policy_remover_path = "$target_gen_dir/device_policy_remover.cc"

action("device_policy_remover_generate") {
  script = "generate_device_policy_remover.py"
  descriptor_pool_path = "//third_party/protobuf/python"
  symbol_database_path = "$root_out_dir/pyproto"

  # This is provided by //components/policy/proto listed in public_deps.
  # The containing directory is in a separate variable because that's what
  # the script expects as an argument.
  chrome_device_policy_pb2_dir = "$root_out_dir/pyproto/components/policy/proto"
  chrome_device_policy_pb2_path =
      "$chrome_device_policy_pb2_dir/chrome_device_policy_pb2.py"

  sources = [
    # It's important to explicitly list which files provided by this action's
    # dependencies are actually used by this action, because the action is not
    # automatically re-run on changes in one of the public_deps. See
    # https://crbug.com/933359 for more information.
    chrome_device_policy_pb2_path,
  ]

  outputs = [ device_policy_remover_path ]

  args = [
    # generated file name
    rebase_path(device_policy_remover_path, root_build_dir),

    # directories for PATH variable to compile generated file
    rebase_path(descriptor_pool_path, root_build_dir),
    rebase_path(symbol_database_path, root_build_dir),
    rebase_path(chrome_device_policy_pb2_dir, root_build_dir),
  ]

  public_deps = [
    "//components/policy/proto",
    "//third_party/protobuf:py_proto",
  ]
}

static_library("device_policy_remover_generated") {
  sources = [ device_policy_remover_path ]

  public_deps = [ ":device_policy_remover_generate" ]
}