فهرست منبع

Merge "Video: Driver: Added support for multiple project configuration"

qctecmdr 1 سال پیش
والد
کامیت
59e34a8dbc
4فایلهای تغییر یافته به همراه104 افزوده شده و 29 حذف شده
  1. 4 0
      Android.mk
  2. 2 5
      BUILD.bazel
  3. 25 24
      target.bzl
  4. 73 0
      video_driver_build.bzl

+ 4 - 0
Android.mk

@@ -36,6 +36,10 @@ LOCAL_MODULE_TAGS         := optional
 LOCAL_MODULE_DEBUG_ENABLE := true
 LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
 LOCAL_MODULE_DDK_BUILD    := true
+LOCAL_MODULE_DDK_SUBTARGET_REGEX := "video.*"
+ifeq ($(TARGET_BOARD_PLATFORM), volcano)
+  LOCAL_MODULE_DDK_SUBTARGET_REGEX := "$(TARGET_BOARD_PLATFORM)_video.*"
+endif
 LOCAL_MODULE_KO_DIRS      := msm_video/msm_video.ko
 
 LOCAL_REQUIRED_MODULES    := mmrm-module-symvers

+ 2 - 5
BUILD.bazel

@@ -69,8 +69,5 @@ ddk_headers(
     hdrs = [":uapi_headers", "pineapple_headers", "cliffs_headers", "iris33_headers", "volcano_headers", "iris2_headers", "vidc_headers"]
 )
 
-load(":target.bzl", "define_pineapple")
-define_pineapple()
-
-load(":target.bzl", "define_volcano")
-define_volcano()
+load(":target.bzl", "define_target_modules")
+define_target_modules()

+ 25 - 24
target.bzl

@@ -1,27 +1,28 @@
 load(":video_modules.bzl", "video_driver_modules")
-load(":video_driver_build.bzl", "define_consolidate_gki_modules")
+load(":video_driver_build.bzl", "define_lunch_target_variant_modules")
+load("//msm-kernel:target_variants.bzl", "get_all_la_variants")
+load("//msm-kernel:target_variants.bzl", "get_all_lunch_target_base_target_variants")
 
-def define_pineapple():
-    define_consolidate_gki_modules(
-        target = "pineapple",
-        registry = video_driver_modules,
-        modules = [
-            "msm_video",
-            "video",
-        ],
-        config_options = [
-            "CONFIG_MSM_VIDC_PINEAPPLE",
-        ],
-    )
+def define_target_modules():
+    for (target, variant) in get_all_la_variants():
+        define_lunch_target_variant_modules(
+            target = target,
+            variant = variant,
+            registry = video_driver_modules,
+            modules = [
+                "msm_video",
+                "video",
+            ],
+        )
 
-def define_volcano():
-    define_consolidate_gki_modules(
-        target = "volcano",
-        registry = video_driver_modules,
-        modules = [
-            "msm_video",
-        ],
-        config_options = [
-            "CONFIG_MSM_VIDC_VOLCANO",
-        ],
-    )
+    for (lt, bt, v) in get_all_lunch_target_base_target_variants():
+        define_lunch_target_variant_modules(
+            target = bt,
+            variant = v,
+            registry = video_driver_modules,
+            modules = [
+                "msm_video",
+                "video",
+            ],
+            lunch_target = lt,
+        )

+ 73 - 0
video_driver_build.bzl

@@ -97,6 +97,79 @@ def define_target_variant_modules(target, variant, registry, modules, config_opt
         log = "info",
     )
 
+def define_lunch_target_variant_modules(target, variant, registry, modules, lunch_target=None):
+    print(lunch_target)
+
+    kernel_build = "{}_{}".format(target, variant)
+    print("kernel_build: "+ kernel_build)
+
+    kernel_build_label = "//msm-kernel:{}".format(kernel_build)
+    print(kernel_build_label)
+
+    if lunch_target != None:
+        kernel_build = "{}_{}_{}".format(target, variant, lunch_target)
+        print("kernel_build: "+ kernel_build)
+        ddk_mod_name = "{}_video_driver_modules".format(kernel_build)
+        print("ddk_mod_name : " + ddk_mod_name)
+        dist_target_name = "{}_video_driver_modules_dist".format(kernel_build)
+        data = [":{}_video_driver_modules".format(kernel_build)]
+        config_options = ["CONFIG_MSM_VIDC_{}".format(lunch_target.upper())]
+    else:
+        ddk_mod_name = "{}_video_driver_modules".format(kernel_build)
+        print("ddk_mod_name: " + ddk_mod_name)
+        dist_target_name = "{}_video_driver_modules_dist".format(kernel_build)
+        print("dist_target_name: " + dist_target_name)
+        data = [":{}_video_driver_modules".format(kernel_build)]
+        config_options = ["CONFIG_MSM_VIDC_{}".format(target.upper())]
+
+
+    modules = [registry.get(module_name) for module_name in modules]
+
+    options = _get_kernel_build_options(modules, config_options)
+
+    build_print = lambda message : print("{}: {}".format(kernel_build, message))
+
+    formatter = lambda s : s.replace("%b", kernel_build).replace("%t", target)
+
+    headers = ["//msm-kernel:all_headers"] +  registry.hdrs + [":{}_headers".format(target)]
+    print(headers)
+
+    all_module_rules = []
+
+    for module in modules:
+        print("Module name: "+ module.name)
+        rule_name = "{}_{}".format(kernel_build, module.name)
+        module_srcs = _get_kernel_build_module_srcs(module, options, formatter)
+
+        if not module_srcs:
+            continue
+
+        ddk_submodule(
+            name = rule_name,
+            srcs = module_srcs,
+            out = "{}.ko".format(module.name),
+            deps = headers + _get_kernel_build_module_deps(module, options, formatter),
+            local_defines = options.keys(),
+        )
+        all_module_rules.append(rule_name)
+
+    ddk_module(
+        name = ddk_mod_name,
+        kernel_build = kernel_build_label,
+        deps = all_module_rules,
+    )
+
+    copy_to_dist_dir(
+        name = dist_target_name,
+        data = data,
+        dist_dir = "out/target/product/{}/dlkm/lib/modules/".format(target),
+        flat = True,
+        wipe_dist_dir = False,
+        allow_duplicate_filenames = False,
+        mode_overrides = {"**/*": "644"},
+        log = "info",
+    )
+
 def define_consolidate_gki_modules(target, registry, modules, config_options = []):
     define_target_variant_modules(target, "consolidate", registry, modules, config_options)
     define_target_variant_modules(target, "gki", registry, modules, config_options)