build: weekly-rls-2024-01-05
Change-Id: Idaacdb06e9b7bd435f1928d62d8b1204747380b6
This commit is contained in:
163
build/scripts/gen_sensor_config.py
Executable file
163
build/scripts/gen_sensor_config.py
Executable file
@ -0,0 +1,163 @@
|
||||
#!/usr/bin/env python3
|
||||
# PYTHON_ARGCOMPLETE_OK
|
||||
|
||||
import os
|
||||
import json
|
||||
import build_helper
|
||||
|
||||
kconfig_tmpl = """
|
||||
#
|
||||
# Automatically generated by gen_sensor_config.py; DO NOT EDIT.
|
||||
#
|
||||
|
||||
menu "Sensor settings"
|
||||
menu "Sensor support list"
|
||||
{0}
|
||||
endmenu
|
||||
|
||||
menu "Sensor tuning param config"
|
||||
{1}
|
||||
endmenu
|
||||
endmenu
|
||||
"""
|
||||
|
||||
kconfig_sensor_tmpl = """
|
||||
config SENSOR_{0}
|
||||
bool "Choose sensor {1}"
|
||||
default n
|
||||
help
|
||||
"y" Add sensor {1} to libsns_full.so.
|
||||
"""
|
||||
|
||||
kconfig_param_config_menu_tmpl = """
|
||||
if {0}
|
||||
menu "{1}"
|
||||
choice
|
||||
prompt "sensor tuning param"
|
||||
{2}
|
||||
endchoice
|
||||
endmenu
|
||||
endif
|
||||
"""
|
||||
|
||||
kconfig_param_config_tmpl = """
|
||||
config SENSOR_TUNING_PARAM_{0}
|
||||
bool "{1}"
|
||||
"""
|
||||
|
||||
kconfig_param_config_str_tmpl = """
|
||||
config SENSOR_TUNING_PARAM
|
||||
string{0}"""
|
||||
|
||||
kconfig_param_config_str_item_tmpl = """
|
||||
default "{1}" if SENSOR_TUNING_PARAM_{0}"""
|
||||
|
||||
kconfig_param_config_default_tmpl = """
|
||||
menu "src"
|
||||
choice
|
||||
prompt "sensor tuning param"
|
||||
|
||||
config SENSOR_TUNING_PARAM_cv183x_src_sony_imx307
|
||||
bool "sony_imx307"
|
||||
|
||||
endchoice
|
||||
endmenu
|
||||
|
||||
config SENSOR_TUNING_PARAM
|
||||
string
|
||||
default "sony_imx307" if SENSOR_TUNING_PARAM_cv183x_src_sony_imx307
|
||||
"""
|
||||
|
||||
|
||||
def gen_sensor_support_list():
|
||||
with open(build_helper.SENSOR_LIST_PATH, "r", encoding="utf-8") as fp:
|
||||
sensor_list_json = json.load(fp)
|
||||
|
||||
sensor_list = sensor_list_json['sensor_list']
|
||||
|
||||
kconfig_sensor_list = ""
|
||||
|
||||
for sensor in sensor_list:
|
||||
sensor_name_u = sensor.upper()
|
||||
sensor_name_l = sensor.lower()
|
||||
kconfig_sensor_list = (kconfig_sensor_list
|
||||
+ kconfig_sensor_tmpl.format(sensor_name_u, sensor_name_l))
|
||||
|
||||
return kconfig_sensor_list
|
||||
|
||||
|
||||
def gen_sensor_tuning_param_list():
|
||||
menu_list = ""
|
||||
param_str = ""
|
||||
|
||||
isp_tuning_path = os.path.normpath(os.path.join(build_helper.BUILD_REPO_DIR, "../isp_tuning"))
|
||||
|
||||
if not os.path.exists(isp_tuning_path):
|
||||
print("isp_tuning_path: " + isp_tuning_path + " not exists....")
|
||||
return kconfig_param_config_default_tmpl
|
||||
|
||||
chip_list = os.listdir(isp_tuning_path)
|
||||
|
||||
for arch in chip_list:
|
||||
if os.path.isdir(os.path.join(isp_tuning_path, arch)) and arch != ".git":
|
||||
temp_path = os.path.join(isp_tuning_path, arch)
|
||||
customers_list = os.listdir(temp_path)
|
||||
for customers in customers_list:
|
||||
temp_path = os.path.join(isp_tuning_path, arch)
|
||||
if os.path.isdir(os.path.join(temp_path, customers)):
|
||||
param_config_list = ""
|
||||
temp_path = os.path.join(temp_path, customers)
|
||||
param_list = os.listdir(temp_path)
|
||||
for param in param_list:
|
||||
if os.path.isdir(os.path.join(temp_path, param)):
|
||||
temp_str = kconfig_param_config_tmpl.format(
|
||||
arch + "_" + customers + "_" + param,
|
||||
param
|
||||
)
|
||||
param_config_list = param_config_list + temp_str
|
||||
|
||||
temp_str = kconfig_param_config_str_item_tmpl.format(
|
||||
arch + "_" + customers + "_" + param,
|
||||
param
|
||||
)
|
||||
param_str = param_str + temp_str
|
||||
|
||||
chips = build_helper.get_chip_list()
|
||||
temp_chip_list = []
|
||||
for chip_arch, xlist in chips.items():
|
||||
if chip_arch.upper() == arch.upper():
|
||||
for x in xlist:
|
||||
temp_chip_list.append("CHIP_" + x)
|
||||
|
||||
if len(temp_chip_list) == 0:
|
||||
print("Error: chip list is mismatch between isp_tuning and build/boards, pls check!!!")
|
||||
return kconfig_param_config_default_tmpl
|
||||
|
||||
temp_str = kconfig_param_config_menu_tmpl.format(
|
||||
" || ".join(temp_chip_list),
|
||||
customers,
|
||||
param_config_list
|
||||
)
|
||||
menu_list = menu_list + temp_str
|
||||
|
||||
param_str = kconfig_param_config_str_tmpl.format(param_str)
|
||||
|
||||
return (menu_list + param_str)
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
kconfig_sensor_list = gen_sensor_support_list()
|
||||
kconfig_param_list = gen_sensor_tuning_param_list()
|
||||
|
||||
kconfig = kconfig_tmpl.format(
|
||||
kconfig_sensor_list,
|
||||
kconfig_param_list
|
||||
)
|
||||
|
||||
with open(build_helper.SENSOR_KCONFIG_PATH, "w") as fp:
|
||||
fp.write(kconfig)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user