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

shared_library("libmtkcam_pipelinepolicy") {
  import("//camera/hal/mediatek/common-config.gni")
  sources = [
    "ConfigSettingPolicyMediator.cpp",
    "FeatureSettingPolicy.cpp",
    "PipelineSettingPolicyFactoryImpl.cpp",
    "PipelineSettingPolicyImpl.cpp",
    "RequestSettingPolicyMediator.cpp",
    "config/ConfigAppImageStreamInfoMaxBufNumPolicy.cpp",
    "config/ConfigPipelineNodesNeedPolicy.cpp",
    "config/ConfigStreamInfoPolicy.cpp",
    "config/P1DmaNeedPolicy.cpp",
    "config/P1HwSettingPolicy.cpp",
    "config/SensorSettingPolicy.cpp",
    "request/CaptureStreamUpdaterPolicy.cpp",
    "request/FaceDetectionIntentPolicy.cpp",
    "request/IOMapPolicy_NonP2Node.cpp",
    "request/IOMapPolicy_P2Node.cpp",
    "request/P2NodeDecisionPolicy.cpp",
    "request/RequestMetadataPolicy.cpp",
    "request/TopologyPolicy.cpp",
  ]
  defines += [ "NR3D_SUPPORTED" ]
  include_dirs += [
    ".",
    "..",
    "${mtk_root_path}/mtkcam/custom",
    "${mtk_root_path}/mtkcam/custom/common/hal/inc",
    "${mtk_root_path}/mtkcam/custom/mt8183",
    "${mtk_root_path}/mtkcam/custom/mt8183/hal/imgsensor_src",
    "${mtk_root_path}/mtkcam/custom/mt8183/hal/inc",
    "${mtk_root_path}/mtkcam/custom/mt8183/hal/inc/isp_tuning",
    "${mtk_root_path}/mtkcam/custom/mt8183/kernel/imgsensor",
    "${mtk_root_path}/mtkcam/include",
    "${mtk_root_path}/mtkcam/include/mtkcam/drv/iopipe",
    "${mtk_root_path}/mtkcam/include/mtkcam/utils/std",
    "${mtk_root_path}/mtkcam/pipeline/model/utils/include",
    "${mtk_root_path}/mtkcam/utils",
  ]
  libs += [ "pthread" ]
  deps += [
    "//camera/hal/mediatek/mtkcam/3rdparty:libmtkcam_3rdparty",
    "//camera/hal/mediatek/mtkcam/pipeline/model/utils:libmtkcam_pipelinemodel_utils",
    "//camera/hal/mediatek/mtkcam/pipeline/utils:libmtkcam_streamutils",
    "//camera/hal/mediatek/mtkcam/utils/hw:libmtkcam_hwutils",
    "//camera/hal/mediatek/mtkcam/utils/metadata:libmtkcam_metadata",
    "//camera/hal/mediatek/mtkcam/utils/metastore:libmtkcam_metastore",
    "//camera/hal/mediatek/mtkcam/utils/module:libmtkcam_modulehelper",
    "//camera/hal/mediatek/mtkcam/utils/property_service:libmtk_property",
    "//camera/hal/mediatek/mtkcam/utils/std:libmtkcam_stdutils",
  ]
}
