[FEATURE] Add integration with external programs/projects the right way

未关闭
#18,522 7 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
30/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
停滞
技术栈
c, cmake

调研方向

首先阅读现有的 apps/external 集成,以及它所要求的 Kconfig、Make.defs、Makefile 和 CMakeLists.txt 文件,然后将它们与 Zephyr 的模块文档和链接的示例项目进行比较。完成的标准是:为外部 NuttX 仓库形成有文档记录且达成共识的约定,并提供一条可用的集成路径,而不要求每个项目都重复 NuttX 构建文件。

由索引模型根据 Issue 内容生成。

描述

Type: Enhancement
Is your feature request related to a problem? Please describe.

Currently there is possible to add external applications on nuttx-apps creating an "external/" directory inside apps/ [1]. However it expects that the added project has the right files inside it (Kconfig, Make.defs, Makefile, CMakelist.txt, etc).

Others RTOSes like zephyr has a similar solution (although they used a confuse name "Module" and that is a bad name since for a kernel a module means dynamic loadable component). Also in their case they expects a directory called "zephyr" inside the target project. Some examples:
https://github.com/open-quantum-safe/liboqs
https://github.com/civetweb/civetweb/tree/master/zephyr
https://github.com/lvgl/lvgl/tree/master/zephyr

This is more than a better solution, this is their way to spread their naming/awareness around all other projects in the Internet and avoids the process of creating a download script in their repository, as we do for LVGL and others.

There is a complete (and verbose) documentation about it here: https://docs.zephyrproject.org/latest/develop/modules.html

1 - It is a hidden feature, there is no Documentation about it: https://nuttx.apache.org/docs/latest/search.html?q=external&check_keywords=yes&area=default

Describe the solution you'd like

We could follow the same approach, creating a "nuttx" or "NuttX" repository inside other projects simplify the integration process.

Describe alternatives you've considered

No response

Verification
  • I have verified before submitting the report.
主要语言
C
星标
4.1k
派生
1.8k
平均合并
1 天 5 小时
30 天内合并 PR
841

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

apache/nuttx 的其他 Issue

查看 apache/nuttx 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。