首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目配置编辑器-kconfig-前端和cmake-gui的替代品

项目配置编辑器-kconfig-前端和cmake-gui的替代品
EN

Software Recommendation用户
提问于 2018-01-22 09:42:21
回答 1查看 1.2K关注 0票数 7

我正在开发一个开源嵌入式项目,它需要相当多的配置- 微控制器的面向对象的C++实时操作系统。当开始一个新项目时,你可以从几百个支持的设备中选择你要瞄准的芯片,然后你可以选择芯片时钟的配置(PLL乘法器,除法器,石英晶体频率,.)以及芯片的外围设备(是否启用串口1、串口2、串口5等)。在项目演变过程中,您可以配置RTOS的其他功能(如堆栈大小、运行时检查等)。

此时,该项目使用kconfig-前端,该工具用于将Linux内核解压缩为一个独立的独立项目。我的配置菜单目前大致如下所示:

虽然kconfig前端有很多不错的特性,但它也有一些非常严重的缺陷。

  1. 不可能在Windows上构建--不久前,一个人创建了一个非常旧的3.12.0版本的Windows版本,但我从未复制过他的结果,他的编译只涵盖了"mconf“变体(ncurses-bases -上图),所有其他工具都没有出现在他上传的二进制包中。
  2. 不知道它是否建立在Mac上。
  3. 在大多数Linux发行版中,您必须自己从源代码手工构建它。这是一个问题,因为使用微控制器的人(我的项目的用户)不太习惯这样做,而且这个过程并不像你想象的那么容易。
  4. 做一些事情是非常乏味的--例如你可以“强制选择”一个选项,但是你不能“强制取消选择”,除非对用户隐藏它.
  5. 做一些事情是不可能的-例如,依赖项只能基于bool值,不能有一些选项依赖于确切的整数值或字符串。
  6. (与5.有关)检查用户输入的有效性的可能性有限--例如,对于整数,您只能允许一个连续的值范围,而有时有效整数的列表可能更合适(这可以使用基于bool的bools +隐藏整数列表,但随后看到4 )。--如果允许的值超过--比如说,这是不太实际的)。
  7. 反正我可能忘了什么..。

主要是因为前三项,我正在考虑转移到其他一些工具。但这里的问题是,我实际上只知道一个选择-cmake(或ccmake)。它很好地解决了上面列出的最重要的问题(1-3),但并不能解决所有的问题--我很肯定第4-6点仍然存在,可能会影响到一些不同的领域,但是.此外,cmake还有更多的问题:

  1. 使用kconfig-前端配置的层次结构可以自由创建-你可以有任意多个层次的菜单,你想怎么安排。使用cmake,配置是平坦的,可以根据每个值的前缀对选项进行分组(或多或少类似于一个菜单,在kconfig-正前方有两个级别)。
  2. 只有字符串和bools作为选项的“类型”,使用带值检查的整数需要一些解决办法。
  3. 选项之间的依赖关系非常繁琐。在kconfig中,如果“选项B”依赖于启用“选项A”,则更改“选项A”的值将导致“选项B”立即被隐藏或显示给用户。在cmake中,当您有这样的依赖项时,您必须单击“配置”才能真正看到任何效果。

我的项目的一个用户为cmake创建了一个初步的端口,看起来如下所示:

因此,我的问题是-除了kconfig-前端和cmake,还有其他选择吗?我所追求的最重要的特征是:

  • 易于在所有主要操作系统平台上使用;
  • GUI;

对于其他特性,我是灵活的,我可能会适应。

我还知道,我可以编写自己的配置工具,并随项目一起发布,但我确实不喜欢这样做,除非由于缺乏其他选项而被迫这样做。我更喜欢一些GUI工具,而不是一种典型的嵌入式项目方法--要求用户手动编辑带有所有选项的一些头文件。这是因为需要配置的东西太多(尽管我试图将选项的数量降到最低),大多数选项取决于其他选项,也因为一些选项会影响构建过程,因此使用.h文件并不太方便。

EN

回答 1

Software Recommendation用户

发布于 2019-05-16 16:57:13

我只是在研究同样的问题(需要一个带有UI的可移植配置选项处理工具),并找到了Kconfiglib项目。它是一个用python、支持控制台和图形用户界面编写的kconfig实现。请参阅:https://github.com/ulfalizer/Kconfiglib

(我还处于早期阶段,还没有检查过工具。有些人可能仍然认为Kconfiglib有用。)

票数 0
EN
页面原文内容由Software Recommendation提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwarerecs.stackexchange.com/questions/48230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档