15. Buildroot用户手册-编码样式

转载请注明原文链接:https://blog.csdn.net/haimo_free/article/details/107677667

15. 编码样式

总体而言,这些编码样式规则可以帮助你在Buildroot中添加新文件或重构现有文件。

如果你稍微修改了一些现有文件,那么重要的是保持整个文件的一致性,因此你可以:

  • 要么遵循此文件中使用的可能不推荐使用的编码样式,
  • 要么重做以使其符合这些规则。

15.1 Config.in

Config.in文件包含了几乎所有在Buildroot中可配置的选项。示例:

config BR2_PACKAGE_LIBFOO
	bool "libfoo"
	depends on BR2_PACKAGE_LIBBAZ
	select BR2_PACKAGE_LIBBAR
	help
	  This is a comment that explains what libfoo is. The help text
	  should be wrapped.

	  http://foosoftware.org/libfoo/
  • bool、depends on、select和help行缩进一个Tab。
  • help文本本身缩进一个Tab加两个空格。
  • help文本应换行使其每行长度小于72列,其中制表符占8列,因此文本本身为62个字符。

Config.in是Buildroot使用的配置工具(通常为kconfig)的输入。有关kconfig语言的更多详细信息,请参阅http://kernel.org/doc/Documentation/kbuild/kconfig-language.txt

15.2 .mk

  • 头部:mk文件以header开始。它包含模块名称,最好用小写,并包含在由80个哈希组成的分隔符之间。在header后必须有一个空行。
################################################################################
#
# libfoo
#
################################################################################
  • 分配:在=前后各有一个空格,注意不要试图对齐等于号。
LIBFOO_VERSION = 1.0
LIBFOO_CONF_OPTS += --without-python-support
  • 定义:使用制表符缩进。注意,define块内的命令应始终以Tab缩进开头,make会将此识别为命令。
define LIBFOO_REMOVE_DOC
	$(RM) -fr $(TARGET_DIR)/usr/share/libfoo/doc \
		$(TARGET_DIR)/usr/share/man/man3/libfoo*
endef
  • 可选依赖项:
    • 首选多行语法
    • 保持配置选项和依赖项紧密靠近。

建议:

ifeq ($(BR2_PACKAGE_PYTHON),y)
LIBFOO_CONF_OPTS += --with-python-support
LIBFOO_DEPENDENCIES += python
else
LIBFOO_CONF_OPTS += --without-python-support
endif

不建议:

LIBFOO_CONF_OPTS += --with$(if $(BR2_PACKAGE_PYTHON),,out)-python-support
LIBFOO_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,)
  • 可选hook:在代码块内保持hook声明和定义在一起。

正确:

ifneq ($(BR2_LIBFOO_INSTALL_DATA),y)
define LIBFOO_REMOVE_DATA
        $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/data
endf
LIBFOO_POST_INSTALL_TARGET_HOOKS += LIBFOO_REMOVE_DATA
endif

错误:

define LIBFOO_REMOVE_DATA
        $(RM) -fr $(TARGET_DIR)/usr/share/libfoo/data
endef

ifneq ($(BR2_LIBFOO_INSTALL_DATA),y)
LIBFOO_POST_INSTALL_TARGET_HOOKS += LIBFOO_REMOVE_DATA
endif

15.3 文档

文档使用asciidoc格式。有关asciidoc语法的更多详细信息,请参见http://www.methods.co.nz/asciidoc/userguide.html

15.4 支持脚本

support/和utils/目录中的某些脚本是用Python编写的,应遵循PEP8 Style Guide for Python Code的要求。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页