nxp-nci-driver - BAZEL based compilation for nxp-nci.ko

Added build files for bazel based compilation of nxp-nci

Steps to test
1. Create symlink
    cd kernel_platform
    mkdir techpacks
    cd techpacks
    mkdir nxpnci_driver-kernel
    cd nxpnci_driver-kernel
    ln -s ../../../vendor/nxp/opensource/driver/* .
2. To compile
    cd kernel_platfrom
	./tools/bazel build --lto=thin //techpacks/nxpnci_driver-kernel:pineapple_consolidate_nxp-nci
	./tools/bazel run --lto=thin //techpacks/nxpnci_driver-kernel:pineapple_consolidate_nxp-nci_dist
3. Test done:
   Able to compile nxp-nci DLKM
   out/target/product/<target>/dlkm/lib/modules

Change-Id: Iaf6f05d9228e1cc2ddd717de8d748238bb6082fe
This commit is contained in:
Khageswararao Rao B 2023-03-31 22:51:57 +05:30
parent 6a667b7bc4
commit ed7c9fa23c
3 changed files with 46 additions and 0 deletions

View File

@ -29,5 +29,6 @@ endif
########## Build kernel module based on local DLKM flag status ##########
ifeq ($(NFC_DLKM_ENABLED), true)
LOCAL_MODULE_DDK_BUILD := true
include $(DLKM_DIR)/Build_external_kernelmodule.mk
endif

7
BUILD.bazel Normal file
View File

@ -0,0 +1,7 @@
load("//build/kernel/kleaf:kernel.bzl", "ddk_headers")
load(":define_modules.bzl", "define_modules")
define_modules("pineapple", "consolidate")
define_modules("pineapple", "gki")

38
define_modules.bzl Normal file
View File

@ -0,0 +1,38 @@
load("//build/kernel/kleaf:kernel.bzl", "ddk_module")
load("//build/bazel_common_rules/dist:dist.bzl", "copy_to_dist_dir")
def define_modules(target, variant):
tv = "{}_{}".format(target, variant)
ddk_module(
name = "{}_nxp-nci".format(tv),
out = "nxp-nci.ko",
srcs = ["nfc/common.c",
"nfc/common_nxp.c",
"nfc/common_qcom.c",
"nfc/ese_cold_reset.c",
"nfc/i2c_drv.c",
"nfc/common.h",
"nfc/common_nxp.h",
"nfc/ese_cold_reset.h",
"nfc/i2c_drv.h"
],
hdrs = ["include/uapi/linux/nfc/nfcinfo.h"],
includes = [".", "linux", "nfc", "include/uapi/linux/nfc"],
deps = ["//msm-kernel:all_headers",
"//vendor/qcom/opensource/securemsm-kernel:smcinvoke_kernel_headers",
"//vendor/qcom/opensource/securemsm-kernel:{}_smcinvoke_dlkm".format(tv)],
kernel_build = "//msm-kernel:{}".format(tv),
visibility = ["//visibility:public"]
)
copy_to_dist_dir(
name = "{}_nxp-nci_dist".format(tv),
data = [":{}_nxp-nci".format(tv)],
dist_dir = "out/target/product/{}/dlkm/lib/modules/".format(target),
flat = True,
wipe_dist_dir = False,
allow_duplicate_filenames = False,
mode_overrides = {"**/*": "644"},
)