# Copyright 2019-2020 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.

group("all") {
  deps = [
    ":libcam_algo",
    ":libcamera_hal",
  ]
}

shared_library("libcamera_hal") {
  sources = [
    "AAL/Camera3HAL.cpp",
    "AAL/Camera3Request.cpp",
    "AAL/CameraStream.cpp",
    "AAL/ICameraHw.cpp",
    "AAL/RequestThread.cpp",
    "AAL/ResultProcessor.cpp",
    "Camera3HALModule.cpp",
    "common/3a/Intel3aCore.cpp",
    "common/3a/Intel3aHelper.cpp",
    "common/3a/Intel3aPlus.cpp",
    "common/3a/IntelAEStateMachine.cpp",
    "common/3a/IntelAFStateMachine.cpp",
    "common/3a/IntelAWBStateMachine.cpp",
    "common/Camera3V4l2Format.cpp",
    "common/CameraWindow.cpp",
    "common/CommonBuffer.cpp",
    "common/GFXFormatLinuxGeneric.cpp",
    "common/IaAtrace.cpp",
    "common/LogHelper.cpp",
    "common/PerformanceTraces.cpp",
    "common/PollerThread.cpp",
    "common/SysCall.cpp",
    "common/Utils.cpp",
    "common/cameraOrientationDetector/CameraOrientationDetector.cpp",
    "common/fd/FaceEngine.cpp",
    "common/gcss/GCSSParser.cpp",
    "common/gcss/gcss_formats.cpp",
    "common/gcss/gcss_item.cpp",
    "common/gcss/gcss_utils.cpp",
    "common/gcss/graph_query_manager.cpp",
    "common/imageProcess/ColorConverter.cpp",
    "common/jpeg/EXIFMaker.cpp",
    "common/jpeg/EXIFMetaData.cpp",
    "common/jpeg/ExifCreater.cpp",
    "common/jpeg/ImgEncoder.cpp",
    "common/jpeg/JpegMaker.cpp",
    "common/mediacontroller/MediaController.cpp",
    "common/mediacontroller/MediaEntity.cpp",
    "common/platformdata/CameraConf.cpp",
    "common/platformdata/CameraMetadataHelper.cpp",
    "common/platformdata/CameraProfiles.cpp",
    "common/platformdata/Metadata.cpp",
    "common/platformdata/PlatformData.cpp",
    "common/platformdata/gc/FormatUtils.cpp",
    "psl/ipu3/AAARunner.cpp",
    "psl/ipu3/BufferPools.cpp",
    "psl/ipu3/CameraBuffer.cpp",
    "psl/ipu3/CaptureUnit.cpp",
    "psl/ipu3/ControlUnit.cpp",
    "psl/ipu3/GraphConfig.cpp",
    "psl/ipu3/GraphConfigManager.cpp",
    "psl/ipu3/IPU3CameraCapInfo.cpp",
    "psl/ipu3/IPU3CameraHw.cpp",
    "psl/ipu3/IPU3ISPPipe.cpp",
    "psl/ipu3/ImguUnit.cpp",
    "psl/ipu3/InputSystem.cpp",
    "psl/ipu3/LensHw.cpp",
    "psl/ipu3/MediaCtlHelper.cpp",
    "psl/ipu3/Metadata.cpp",
    "psl/ipu3/NodeTypes.cpp",
    "psl/ipu3/SWPostProcessor.cpp",
    "psl/ipu3/SensorHwOp.cpp",
    "psl/ipu3/SettingsProcessor.cpp",
    "psl/ipu3/SkyCamProxy.cpp",
    "psl/ipu3/SyncManager.cpp",
    "psl/ipu3/ipc/IPCAic.cpp",
    "psl/ipu3/ipc/IPCAiq.cpp",
    "psl/ipu3/ipc/IPCCmc.cpp",
    "psl/ipu3/ipc/IPCCommon.cpp",
    "psl/ipu3/ipc/IPCExc.cpp",
    "psl/ipu3/ipc/IPCFaceEngine.cpp",
    "psl/ipu3/ipc/IPCMkn.cpp",
    "psl/ipu3/ipc/client/Intel3AClient.cpp",
    "psl/ipu3/ipc/client/Intel3aAiq.cpp",
    "psl/ipu3/ipc/client/Intel3aCmc.cpp",
    "psl/ipu3/ipc/client/Intel3aCommon.cpp",
    "psl/ipu3/ipc/client/Intel3aCoordinate.cpp",
    "psl/ipu3/ipc/client/Intel3aExc.cpp",
    "psl/ipu3/ipc/client/Intel3aMkn.cpp",
    "psl/ipu3/ipc/client/IntelFaceEngine.cpp",
    "psl/ipu3/ipc/client/SkyCamMojoProxy.cpp",
    "psl/ipu3/statsConverter/ipu3-stats.cpp",
    "psl/ipu3/tasks/ICaptureEventSource.cpp",
    "psl/ipu3/tasks/ITaskEventListener.cpp",
    "psl/ipu3/tasks/JpegEncodeTask.cpp",
    "psl/ipu3/workers/FrameWorker.cpp",
    "psl/ipu3/workers/IPU3AicToFwEncoder.cpp",
    "psl/ipu3/workers/InputFrameWorker.cpp",
    "psl/ipu3/workers/OutputFrameWorker.cpp",
    "psl/ipu3/workers/ParameterWorker.cpp",
    "psl/ipu3/workers/StatisticsWorker.cpp",
  ]
  include_dirs = [
    ".",
    "AAL",
    "common",
    "common/3a",
    "common/fd",
    "common/gcss",
    "common/imageProcess",
    "common/jpeg",
    "common/mediacontroller",
    "common/platformdata",
    "common/platformdata/gc",
    "common/platformdata/metadataAutoGen/6.0.1",
    "include",
    "include/fd",
    "include/ia_imaging",
    "psl/ipu3",
    "psl/ipu3/ipc",
    "psl/ipu3/ipc/client",
  ]
  defines = [
    "CAMERA_HAL_DEBUG",
    "DUMP_IMAGE",
    "HAL_PIXEL_FORMAT_NV12_LINEAR_CAMERA_INTEL=0x10F",
    "MACRO_KBL_AIC",
  ]
  configs += [ "//camera/build:cros_camera_common" ]
  pkg_deps = [
    "cros-camera-android-headers",
    "expat",
    "libcab",
    "libcamera_client",
    "libcamera_common",
    "libcamera_exif",
    "libcamera_metadata",
    "libcamera_v4l2_device",
    "libcbm",
    "libmojo-${libbase_ver}",
    "libsync",
    "libyuv",
  ]
  deps = [
    "//camera/common:libcamera_jpeg",
    "//camera/common:libcamera_metrics",
    "//camera/common/libcamera_ipc:libcamera_ipc_mojom",
  ]
}

shared_library("libcam_algo") {
  sources = [
    "common/LogHelper.cpp",
    "psl/ipu3/IPU3ISPPipe.cpp",
    "psl/ipu3/ipc/IPCAic.cpp",
    "psl/ipu3/ipc/IPCAiq.cpp",
    "psl/ipu3/ipc/IPCCmc.cpp",
    "psl/ipu3/ipc/IPCCommon.cpp",
    "psl/ipu3/ipc/IPCExc.cpp",
    "psl/ipu3/ipc/IPCFaceEngine.cpp",
    "psl/ipu3/ipc/IPCMkn.cpp",
    "psl/ipu3/ipc/server/AicLibrary.cpp",
    "psl/ipu3/ipc/server/AiqLibrary.cpp",
    "psl/ipu3/ipc/server/CmcLibrary.cpp",
    "psl/ipu3/ipc/server/CoordinateLibrary.cpp",
    "psl/ipu3/ipc/server/ExcLibrary.cpp",
    "psl/ipu3/ipc/server/FaceEngineLibrary.cpp",
    "psl/ipu3/ipc/server/Intel3AServer.cpp",
    "psl/ipu3/ipc/server/MknLibrary.cpp",
  ]
  include_dirs = [
    ".",
    "AAL",
    "common",
    "include",
    "include/fd",
    "include/ia_imaging",
    "psl/ipu3",
    "psl/ipu3/ipc",
  ]
  defines = [
    "CAMERA_HAL_DEBUG",
    "HAL_PIXEL_FORMAT_NV12_LINEAR_CAMERA_INTEL=0x10F",
    "MACRO_KBL_AIC",
  ]
  configs += [ "//camera/build:cros_camera_common" ]
  libs = [
    "SkyCamAICKBL",
    "ia_aiq",
    "ia_cmc_parser",
    "ia_coordinate",
    "ia_exc",
    "ia_log",
    "ia_mkn",
    "pvl_eye_detection",
    "pvl_face_detection",
    "pvl_mouth_detection",
  ]
  pkg_deps = [
    "cros-camera-android-headers",
    "libcab",
    "libmojo-${libbase_ver}",
  ]
  deps = [ "//camera/common/libcamera_ipc:libcamera_ipc_mojom" ]
}
