推荐的Buildroot外部树结构

Recommended Buildroot external tree structure

只是想寻求一些关于我的 buildroot 项目结构的建议。目前我有这个:

projectRoot:
+---projectOS
    +---BuildRoot
    +---BuildRootExternalTree
        +---External board/config/package etc.
        ----in/desc/mk
    +---BuildRootOutput
        ---Images etc.
    ----Makefile
+---projectApp1
    +---src
    ---- CMakeLists.txt
+---projectApp2
    +---src
    ---- CMakeLists.txt

为了实际构建我的 rootfs+image,我 运行 ProjectOS 中的 make 文件,它在 BuildRoot 中调用 make,BR2_EXTERNAL 路径设置为 BuildRootExternalTree。

我希望 projectApp[1..N] 是外部包。它们目前是通过 CMake/Make 从源代码构建的。我已经在外部树中设置了所有 Config.in 以供 buildroot 识别,所以现在我必须决定这些包中的 Make 文件如何访问源代码/传递交叉编译工具链路径。

似乎 buidlroot 的标准是从一些 repo 下载包源文件,这对我来说似乎是个好主意。我是否应该考虑制作 projectApp[1..N] git 子模块,然后使用包 Make 文件将它们的主分支克隆到相关目录中?或者我可以简单地将 Make 文件指向预先存在的目录 - 如果这些项目正在开发中并且我忘记切换到 master 分支等,这似乎不是一个好主意

如果有人有什么建议那就太好了。从事这项工作的团队实际上很小,但我希望有一个健壮的系统运行,特别是对于最终分发。

我建议您对这些软件包使用 local SITE_METHOD。类似于:

PROJECTAPP1_SITE = $(TOPDIR)/../projectApp1 PROJECTAPP1_SITE_METHOD = local

这将告诉 Buildroot 不要下载这些包的源代码,而是使用 PROJECTAPP1_SITE 中指定路径中本地可用的源代码。

有关详细信息,请参阅幻灯片 269 以及 https://free-electrons.com/doc/training/buildroot/buildroot-slides.pdf 中的后续内容。