Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7398f91e authored by Rashed Abdel-Tawab's avatar Rashed Abdel-Tawab Committed by Arne Coucheron
Browse files

camera: Allow devices to load custom CameraParameter code

* Some devices need additional code to load their cameras. Add a hook
  for extra classes and symbols to be included.

Originally implemented in Android.mk at 38b27bf2e5079441358288402b38865ba7c1d9d6
Credit to Ethan Chen for original Android.mk implementation

Change-Id: Iec667af2f0bfdb41f14df342cb128908244d7af0
parent 18be5f26
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -12,6 +12,27 @@
// See the License for the specific language governing permissions and
// limitations under the License.


bootstrap_go_package {
    name: "soong-camera-parameters",
    pkgPath: "android/soong/camera_parameters",
    deps: [
        "blueprint",
        "blueprint-pathtools",
        "soong",
        "soong-android",
        "soong-cc",
    ],
    srcs: [
        "parameters.go",
    ],
    pluginFor: ["soong_build"],
}

camera_parameters_defaults {
    name: "camera_parameters_defaults",
}

cc_library_shared {
    name: "libcamera_client",

@@ -32,7 +53,6 @@ cc_library_shared {
        // Source for camera interface parcelables, and manually-written interfaces
        "Camera.cpp",
        "CameraMetadata.cpp",
        "CameraParameters.cpp",
        "CaptureResult.cpp",
        "CameraParameters2.cpp",
        "ICamera.cpp",
@@ -48,6 +68,17 @@ cc_library_shared {
        "VendorTagDescriptor.cpp",
    ],

    product_variables: {
        lineage: {
            uses_generic_camera_parameter_library: {
                srcs: [
                    "CameraParameters.cpp",
                ],
            },
        },
    },
    defaults: ["camera_parameters_defaults"],

    shared_libs: [
        "libcutils",
        "libutils",

camera/parameters.go

0 → 100644
+52 −0
Original line number Diff line number Diff line
// Copyright (C) 2017 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package lineage;

import (
  "android/soong/android"
  "android/soong/cc"
)

func init() {
  android.RegisterModuleType("camera_parameters_defaults", cameraParametersFactory)
}

func cameraParametersFactory() android.Module {
  module := cc.DefaultsFactory()
  android.AddLoadHook(module, cameraParameters)

  return module
}

func cameraParameters(ctx android.LoadHookContext) {
  type props struct {
    Whole_static_libs []string
  }

  p := &props{}
  p.Whole_static_libs = globalDefaults(ctx)

  ctx.AppendProperties(p)
}

func globalDefaults(ctx android.BaseContext) ([]string) {
  var staticLibs []string

  device_camera_parameters_lib := ctx.DeviceConfig().SpecificCameraParametersLibrary()
  if (len(device_camera_parameters_lib) > 0) {
    staticLibs = append(staticLibs, device_camera_parameters_lib)
  }

  return staticLibs
}