forked from xuos/xiuos
73 lines
1.6 KiB
Python
Executable File
73 lines
1.6 KiB
Python
Executable File
#! /usr/bin/python3
|
|
|
|
import os
|
|
|
|
ubiquitous_dir = os.environ.get('UBIQUITOUS_ROOT')
|
|
bsp_dir = os.environ.get('BSP_ROOT')
|
|
kernel_names = []
|
|
|
|
def get_kernel_names():
|
|
for d in os.scandir(ubiquitous_dir):
|
|
if d.is_dir() and d.name!= "feature_yaml":
|
|
kernel_names.append(d.name)
|
|
|
|
def generate_features():
|
|
with open(f"{ubiquitous_dir}/Kselector_features","w") as f:
|
|
# f.write("")
|
|
pass
|
|
|
|
def generate_params():
|
|
with open(f"{ubiquitous_dir}/Kselector_params","w") as f:
|
|
# f.write("")
|
|
pass
|
|
|
|
def generate():
|
|
get_kernel_names()
|
|
generate_features()
|
|
generate_params()
|
|
|
|
template = r"""
|
|
mainmenu "Ubiquitous Kernel Selector"
|
|
|
|
config BSP_DIR
|
|
string
|
|
option env="BSP_ROOT"
|
|
default "."
|
|
|
|
config KERNEL_DIR
|
|
string
|
|
option env="KERNEL_ROOT"
|
|
default "../.."
|
|
|
|
config UBIQUITOUS_DIR
|
|
string
|
|
option env="UBIQUITOUS_ROOT"
|
|
default "../../.."
|
|
|
|
source "$UBIQUITOUS_DIR/Kselector_features"
|
|
|
|
source "$UBIQUITOUS_DIR/Kselector_params"
|
|
|
|
config MANUALLY_SELECT
|
|
bool "Manually select a kernel"
|
|
default n
|
|
if MANUALLY_SELECT
|
|
menu "Required Kernel"
|
|
choice
|
|
prompt "Select OS Kernel"
|
|
default SELECT_XIUOS
|
|
|
|
"""
|
|
|
|
for kernel_name in kernel_names:
|
|
template += f"\tconfig SELECT_{kernel_name.upper()}\n"
|
|
template += f'\t\tbool "select {kernel_name}"\n'
|
|
|
|
# the last `\n` is very important, otherwise, it cannot be recognized as valid Kconfig file
|
|
template += "endchoice\nendmenu\nendif\n"
|
|
|
|
with open(f"{bsp_dir}/Kselector", "w") as f:
|
|
f.write(template)
|
|
|
|
if __name__ == '__main__':
|
|
generate() |