910e62b5创建于 1月15日历史提交
# Copyright 2025 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//testing/test.gni")
import("//third_party/protobuf/proto_library.gni")

config("confidential_compute_include") {
  include_dirs = [
    "chromium",
    "src",
  ]
}

proto_library("confidential_compute_proto") {
  sources = [
    "src/fcp/protos/confidentialcompute/data_upload_config.proto",
    "src/fcp/protos/confidentialcompute/signed_endorsements.proto",
    "src/fcp/protos/federatedcompute/confidential_encryption_config.proto",
  ]

  deps = [ "//third_party/oak:oak_proto" ]

  import_dirs = [ "//third_party/oak/chromium" ]

  proto_in_dir = "src"

  cc_generator_options = "lite"
}

source_set("confidential_compute") {
  public = [
    "src/fcp/base/base_name.h",
    "src/fcp/base/digest.h",
    "src/fcp/base/monitoring.h",
    "src/fcp/confidentialcompute/cose.h",
    "src/fcp/confidentialcompute/crypto.h",
  ]

  sources = [
    "chromium/fcp/confidentialcompute/cose.cc",
    "src/fcp/base/base_name.cc",
    "src/fcp/base/digest.cc",
    "src/fcp/base/monitoring.cc",
    "src/fcp/confidentialcompute/crypto.cc",
  ]

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]

  public_configs = [ ":confidential_compute_include" ]

  public_deps = [
    ":confidential_compute_proto",
    "//third_party/oak:oak_proto",
  ]

  deps = [
    "//base",
    "//components/cbor",
    "//third_party/abseil-cpp:absl",
    "//third_party/boringssl",
  ]
}

if (!is_win && !is_android && !is_ios && !is_fuchsia) {
  test("federated_compute_tests") {
    testonly = true
    public = [ "chromium/fcp/testing/testing.h" ]

    sources = [
      "chromium/fcp/confidentialcompute/cose_test.cc",
      "chromium/fcp/testing/testing.cc",
    ]

    deps = [
      ":confidential_compute",
      "//base",
      "//components/cbor",
      "//testing/gmock",
      "//testing/gtest",
      "//testing/gtest:gtest_main",
      "//third_party/abseil-cpp:absl",
      "//third_party/protobuf:protobuf_full",
      "//third_party/protobuf:struct_proto",
    ]
  }
}