| # Copyright 2019 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. | 
 |  | 
 | import("//build/cipd.gni") | 
 | import("//build/config/fuchsia/rules.gni") | 
 | import("//build/driver_package.gni") | 
 | import("//build/test/test_package.gni") | 
 |  | 
 | # These targets only compile for arm64. | 
 | if (target_cpu == "arm64") { | 
 |   source_set("lib") { | 
 |     sources = [ | 
 |       "binding.cc", | 
 |       "codec_adapter_h264.cc", | 
 |       "codec_adapter_h264.h", | 
 |       "device_ctx.cc", | 
 |       "device_ctx.h", | 
 |       "internal_buffer.cc", | 
 |       "internal_buffer.h", | 
 |       "local_codec_factory.cc", | 
 |       "local_codec_factory.h", | 
 |       "macros.h", | 
 |       "memory_barriers.h", | 
 |       "registers.h", | 
 |       "scoped_canvas.cc", | 
 |       "scoped_canvas.h", | 
 |     ] | 
 |  | 
 |     public_deps = [ | 
 |       "//sdk/banjo/ddk.protocol.amlogiccanvas", | 
 |       "//sdk/banjo/ddk.protocol.composite", | 
 |       "//sdk/banjo/ddk.protocol.platform.device", | 
 |       "//sdk/banjo/ddk.protocol.sysmem", | 
 |       "//sdk/fidl/fuchsia.hardware.mediacodec:fuchsia.hardware.mediacodec_c", | 
 |       "//sdk/fidl/fuchsia.mediacodec", | 
 |       "//sdk/lib/fidl/cpp", | 
 |       "//src/devices/bus/lib/device-protocol-pdev", | 
 |       "//src/devices/bus/lib/device-protocol-platform-device", | 
 |       "//src/devices/lib/driver", | 
 |       "//src/media/codec/codecs:output_sink", | 
 |       "//src/media/lib/codec_impl", | 
 |       "//zircon/public/lib/async-cpp", | 
 |       "//zircon/public/lib/async-loop-cpp", | 
 |       "//zircon/public/lib/async-loop-default", | 
 |       "//zircon/public/lib/ddk", | 
 |       "//zircon/public/lib/ddktl", | 
 |       "//zircon/public/lib/fit", | 
 |       "//zircon/public/lib/hwreg", | 
 |       "//zircon/public/lib/mmio", | 
 |       "//zircon/public/lib/sync", | 
 |       "//zircon/public/lib/zx", | 
 |       "//zircon/system/ulib/fidl-utils", | 
 |     ] | 
 |   } | 
 |  | 
 |   driver_module("amlogic_encoder_driver") { | 
 |     output_name = "amlogic_video_encoder" | 
 |     deps = [ ":lib" ] | 
 |  | 
 |     configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ] | 
 |     configs += [ "//build/config/fuchsia:static_cpp_standard_library" ] | 
 |   } | 
 |  | 
 |   driver_package("amlogic_encoder") { | 
 |     # internal access is needed to get firmware from prebuilt path | 
 |     if (internal_access && target_cpu == "arm64") { | 
 |       libraries = [ | 
 |         { | 
 |           source = rebase_path( | 
 |                   "//prebuilt/media/firmware/amlogic_encoder/h264_enc.bin") | 
 |           name = "firmware/h264_enc.bin" | 
 |         }, | 
 |       ] | 
 |       deps = [ ":amlogic_encoder_driver" ] | 
 |       drivers = [ | 
 |         { | 
 |           name = "amlogic_video_encoder.so" | 
 |         }, | 
 |       ] | 
 |     } | 
 |   } | 
 |  | 
 |   executable("amlogic_encoder_unittests") { | 
 |     testonly = true | 
 |     sources = [ "test/device_test.cc" ] | 
 |     deps = [ | 
 |       ":lib", | 
 |       "//src/devices/testing/fake-bti", | 
 |       "//src/devices/testing/fake_ddk", | 
 |       "//src/devices/testing/mock-mmio-reg", | 
 |       "//zircon/public/lib/zxtest", | 
 |     ] | 
 |   } | 
 |  | 
 |   test_package("amlogic_encoder_tests") { | 
 |     deps = [ ":amlogic_encoder_unittests" ] | 
 |     tests = [ | 
 |       { | 
 |         name = "amlogic_encoder_unittests" | 
 |         environments = basic_envs | 
 |       }, | 
 |     ] | 
 |   } | 
 |  | 
 |   group("tests") { | 
 |     testonly = true | 
 |     deps = [ ":amlogic_encoder_tests" ] | 
 |   } | 
 | } |