chromium/media/cdm/win/test/BUILD.gn

# Copyright 2022 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/features.gni")
import("//testing/test.gni")

config("clang_config") {
  cflags = [
    # ActivatableClass omits optional braces.
    "-Wno-missing-braces",

    # ActivatableClass uses WrlCreatorMapIncludePragma macro which has a
    # semicolon at the end in 10.0.19041.0/winrt/wrl/module.h.
    "-Wno-c++98-compat-extra-semi",
  ]
}

group("all") {
  testonly = true
  deps = [ ":media_foundation_clear_key_cdm" ]
}

source_set("media_foundation_clear_key") {
  sources = [
    "media_foundation_clear_key_activate.cc",
    "media_foundation_clear_key_activate.h",
    "media_foundation_clear_key_cdm.cc",
    "media_foundation_clear_key_cdm.h",
    "media_foundation_clear_key_cdm_access.cc",
    "media_foundation_clear_key_cdm_access.h",
    "media_foundation_clear_key_cdm_factory.cc",
    "media_foundation_clear_key_cdm_factory.h",
    "media_foundation_clear_key_content_enabler.cc",
    "media_foundation_clear_key_content_enabler.h",
    "media_foundation_clear_key_decryptor.cc",
    "media_foundation_clear_key_decryptor.h",
    "media_foundation_clear_key_guids.h",
    "media_foundation_clear_key_input_trust_authority.cc",
    "media_foundation_clear_key_input_trust_authority.h",
    "media_foundation_clear_key_session.cc",
    "media_foundation_clear_key_session.h",
    "media_foundation_clear_key_trusted_input.cc",
    "media_foundation_clear_key_trusted_input.h",
    "mock_media_protection_pmp_server.cc",
    "mock_media_protection_pmp_server.h",
  ]

  configs += [
    ":clang_config",  # Needed by media_foundation_clear_key_cdm_factory.cc
  ]

  deps = [
    "//base",
    "//media",
    "//media/cdm:clear_key_cdm_common",
  ]

  libs = [
    "WindowsApp.lib",
    "mfuuid.lib",
    "mfplat.lib",
    "Ole32.lib",
    "Rtworkq.lib",
  ]
}

shared_library("media_foundation_clear_key_cdm") {
  output_dir = "$root_out_dir"
  output_name = "MediaFoundation.ClearKey.CDM"

  sources = [
    "dll_main.cc",
    "media_foundation_clear_key_cdm_version.rc",
  ]

  deps = [
    ":media_foundation_clear_key",
    "//base",
    "//media",
  ]

  inputs = [ "dll_export.def" ]

  def_file = rebase_path("dll_export.def", root_build_dir)

  ldflags = [ "/DEF:${def_file}" ]
}