这是一个通过 conan config install 安装到 Conan Home 的自定义配置仓库,用于给 SiFli SDK 提供:
- 自定义
conan new模板 - 自定义 generator
- 默认 profile
安装后,既可以快速初始化新的 SiFli 包,也可以在应用工程里生成适配 RT-Thread 的 Kconfig 依赖入口。
profiles/defaultConan 默认 profile。extensions/generators/kconfigdeps.py自定义KconfigDepsgenerator,会生成Kconfig.conandeps并自动聚合所有依赖包中的Kconfig。templates/command/new/sf-pkg-packageSiFli 包模板,用于创建新的 package。templates/command/new/sf-pkg-projectSiFli 工程模板,用于创建新的 application/project。
从本地目录安装:
conan config install /path/to/sifli-sdk-conan-custom-config从 Git 仓库安装:
conan config install <git-or-http-url>安装完成后,Conan 会把模板、profile 和 generator 拷贝到 Conan Home,对应命令即可直接使用。
执行:
conan new sf-pkg-package -d name=bf30a2 -d user=sifli常用可选参数:
name包名,必填。version版本号,默认0.1。userConan user,建议填写组织或维护者。author作者名,默认继承user。license许可证,默认Apache-2.0。support_sdk_version支持的 SiFli SDK 版本范围,默认^2.4。
生成结果包括:
conanfile.pyREADME.mdKconfigSConscriptsrc/placeholder.c
其中:
SConscript会自动把DefineGroup()的组名替换为新建包名。Kconfig会自动生成PKG_USING_<PACKAGE_NAME>开关。 说明:如果包名包含-,会自动转换成_并转为大写,例如bf30a2-camera会变成PKG_USING_BF30A2_CAMERA。
执行:
conan new sf-pkg-project -d name=my_app该模板会生成一个带 SConsDeps 和 KconfigDeps generator 的工程 conanfile.py,用于在 SiFli SDK 应用工程中声明外部组件依赖。
在工程模板中启用 KconfigDeps 后,执行 conan install 会生成 Kconfig.conandeps。其行为是:
- 遍历当前工程的 Conan 依赖。
- 读取每个依赖的
cpp_info.libdirs[0]。 - 自动
orsource "<libdir>/Kconfig"。
生成的文件结构类似:
menu "SiFli External Components"
orsource "xxx/Kconfig"
orsource "yyy/Kconfig"
endmenu
这样就可以把各个外部包的 Kconfig 配置集中接入到 SiFli SDK / RT-Thread 配置系统中。
- 先执行
conan config install安装本仓库。 - 用
conan new sf-pkg-package创建新的外部包。 - 补充
src/、README.md和conanfile.py中的真实内容。 - 在应用工程中通过
requires引入该包。 - 执行
conan install生成SConsDeps和Kconfig.conandeps。
sf-pkg-package模板生成的是 source-only package 骨架,实际依赖和导出规则请按包内容补充。- 模板中的
README.md、description、url、homepage、topics都是初始化占位内容,创建后需要及时修改。 src/placeholder.c只是为了保留src目录,你可以直接替换或删除它。