【发布时间】:2019-01-22 10:41:18
【问题描述】:
如何取消选择一个选项? 比如下面这个脚本就是我想要实现的:
choice
prompt "Camera type"
default CAMERA1
config CAMERA1
select POWER_PIN_ACTIVE_HIGH
config CAMERA2
deselect POWER_PIN_ACTIVE_HIGH
config CAMERA3
select POWER_PIN_ACTIVE_HIGH
endchoice
config POWER_PIN_ACTIVE_HIGH
bool "Power pin is high active?"
help Say 'y' if the power pin is high active, 'n' if low active.
显然,没有de-select 命令,甚至没有select XXXX = n 命令。
如何实现效果,或者其他方式来实现脚本的目的?
另外,我想隐藏POWER_PIN_ACTIVE_HIGH 选项。选择相机类型时,应自动选择/取消选择。
--更新--
我以不同的方式尝试了它。它正在工作,但Makefile 给了我POWER_PIN_ACTIVE_HIGH 警告的强制选择:
choice
prompt "Camera type"
default CAMERA1
config CAMERA1
select POWER_PIN_ACTIVE_HIGH
config CAMERA2
deselect POWER_PIN_ACTIVE_HIGH
config CAMERA3
select POWER_PIN_ACTIVE_HIGH
endchoice
config POWER_PIN_ACTIVE_HIGH
depends on __HIDDEN_OPTION__
bool "Power pin is high active?"
help Say 'y' if the power pin is high active, 'n' if low active.
该脚本有效,因为__HIDDEN_OPTION__ 从来都不是配置选项,因此它会导致所有情况下的依赖关系都失败。只有那些强大的select 命令才能覆盖它并选择配置。尽管Makefile 给出了警告,但由于不匹配(从不匹配)__HIDDEN_OPTION__ 条件。
有更好的主意吗?
【问题讨论】:
-
取消选择是一件坏事(用户的观点):您在没有通知的情况下覆盖了用户的选择。 [发行版更好地处理包依赖关系,但内核配置并不适合所有人)。您应该采用另一种方式:只有在未选择另一个时才能选择(并添加帮助原因)。所以意图很明显。
标签: linux-kernel