feat: 添加注释

main
邱棚 2023-05-10 16:26:24 +08:00
parent 827a1a6466
commit 738de1b60e
3 changed files with 21 additions and 1 deletions

View File

@ -16,7 +16,7 @@ config PKGS_DIR
default "packages"
source "$RTT_DIR/Kconfig"
#source "$PKGS_DIR/Kconfig"
source "$PKGS_DIR/Kconfig"
source "libraries/Kconfig"
source "board/Kconfig"

View File

@ -25,6 +25,7 @@ int main(void)
while (1)
{
rt_thread_delay(1000);
/* code */
}

View File

@ -44,25 +44,34 @@ def is_pkg_special_config(config_str):
return True
return False
# 从.config文件生成rtconfig.h在Kconfig中如果默认为n则在.config中会以#开头,即被注释掉。因此,只有=y的才会被添加到.config文件中
def mk_rtconfig(filename):
# 打开 .config 文件,以读取其中的配置选项。
try:
config = open(filename, 'r')
except:
print('open config:%s failed' % filename)
return
# 打开 rtconfig.h 文件,以写入转换后的宏定义。
rtconfig = open('rtconfig.h', 'w')
rtconfig.write('#ifndef RT_CONFIG_H__\n')
rtconfig.write('#define RT_CONFIG_H__\n\n')
# 定义一个空行变量。
empty_line = 1
# 遍历 .config 文件中的每一行。
for line in config:
# 移除行首的空格,以及行尾的换行符和回车符。
line = line.lstrip(' ').replace('\n', '').replace('\r', '')
# 如果该行为空行,则跳过。
if len(line) == 0:
continue
# 如果该行是以 "#" 开头的注释行,则将该行中的 CONFIG_ 前缀替换为空格,并添加到 rtconfig.h 文件中。
if line[0] == '#':
if len(line) == 1:
if empty_line:
@ -80,6 +89,7 @@ def mk_rtconfig(filename):
empty_line = 0
else:
# 否则,将该行转换为宏定义,并添加到 rtconfig.h 文件中。
empty_line = 0
setting = line.split('=')
if len(setting) >= 2:
@ -95,9 +105,11 @@ def mk_rtconfig(filename):
else:
rtconfig.write('#define %s %s\n' % (setting[0], re.findall(r"^.*?=(.*)$",line)[0]))
# 如果 .config 文件中有 rtconfig_project.h 文件,则将其包含在生成的 rtconfig.h 文件中。
if os.path.isfile('rtconfig_project.h'):
rtconfig.write('#include "rtconfig_project.h"\n')
# 在文件的末尾添加 RT_CONFIG_H__ 宏定义,以防止头文件被多次包含。
rtconfig.write('\n')
rtconfig.write('#endif\n')
rtconfig.close()
@ -242,16 +254,22 @@ def exclude_utestcases(RTT_ROOT):
def menuconfig(RTT_ROOT):
# Exclude utestcases
# 排除 utestcases 目录,因为该目录不需要在配置界面中进行配置。
exclude_utestcases(RTT_ROOT)
# 构建 Kconfig 工具
kconfig_dir = os.path.join(RTT_ROOT, 'tools', 'kconfig-frontends')
os.system('scons -C ' + kconfig_dir)
# 设置 PKGS_ROOT 环境变量
touch_env()
env_dir = get_env_dir()
if isinstance(env_dir, str):
os.environ['PKGS_ROOT'] = os.path.join(env_dir, 'packages')
# 检查 .config 文件是否已经生成,并检查 .config.old 文件是否存在。
# 如果两个文件的 MD5 值相同,则表示用户没有更改配置选项。
# 否则,使用新的 .config 文件生成 RT-Thread 的配置文件 rtconfig.h并将新的 .config 文件复制到 .config.old 中保存。
fn = '.config'
fn_old = '.config.old'
@ -266,6 +284,7 @@ def menuconfig(RTT_ROOT):
else:
sys.exit(-1)
# 如果两个文件的 MD5 值不同,则使用新的 .config 文件生成 RT-Thread 的配置文件 rtconfig.h并将新的 .config 文件复制到 .config.old 中保存。
# make rtconfig.h
if diff_eq == False:
shutil.copyfile(fn, fn_old)