Skip to content

OpenSiFli/sifli-sdk-conan-custom-config

Repository files navigation

SiFli SDK Conan Custom Config

这是一个通过 conan config install 安装到 Conan Home 的自定义配置仓库,用于给 SiFli SDK 提供:

  • 自定义 conan new 模板
  • 自定义 generator
  • 默认 profile

安装后,既可以快速初始化新的 SiFli 包,也可以在应用工程里生成适配 RT-Thread 的 Kconfig 依赖入口。

目录结构

  • profiles/default Conan 默认 profile。
  • extensions/generators/kconfigdeps.py 自定义 KconfigDeps generator,会生成 Kconfig.conandeps 并自动聚合所有依赖包中的 Kconfig
  • templates/command/new/sf-pkg-package SiFli 包模板,用于创建新的 package。
  • templates/command/new/sf-pkg-project SiFli 工程模板,用于创建新的 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
  • user Conan user,建议填写组织或维护者。
  • author 作者名,默认继承 user
  • license 许可证,默认 Apache-2.0
  • support_sdk_version 支持的 SiFli SDK 版本范围,默认 ^2.4

生成结果包括:

  • conanfile.py
  • README.md
  • Kconfig
  • SConscript
  • src/placeholder.c

其中:

  • SConscript 会自动把 DefineGroup() 的组名替换为新建包名。
  • Kconfig 会自动生成 PKG_USING_<PACKAGE_NAME> 开关。 说明:如果包名包含 -,会自动转换成 _ 并转为大写,例如 bf30a2-camera 会变成 PKG_USING_BF30A2_CAMERA

创建新工程

执行:

conan new sf-pkg-project -d name=my_app

该模板会生成一个带 SConsDepsKconfigDeps generator 的工程 conanfile.py,用于在 SiFli SDK 应用工程中声明外部组件依赖。

KconfigDeps Generator

在工程模板中启用 KconfigDeps 后,执行 conan install 会生成 Kconfig.conandeps。其行为是:

  1. 遍历当前工程的 Conan 依赖。
  2. 读取每个依赖的 cpp_info.libdirs[0]
  3. 自动 orsource "<libdir>/Kconfig"

生成的文件结构类似:

menu "SiFli External Components"

orsource "xxx/Kconfig"
orsource "yyy/Kconfig"

endmenu

这样就可以把各个外部包的 Kconfig 配置集中接入到 SiFli SDK / RT-Thread 配置系统中。

推荐工作流

  1. 先执行 conan config install 安装本仓库。
  2. conan new sf-pkg-package 创建新的外部包。
  3. 补充 src/README.mdconanfile.py 中的真实内容。
  4. 在应用工程中通过 requires 引入该包。
  5. 执行 conan install 生成 SConsDepsKconfig.conandeps

注意事项

  • sf-pkg-package 模板生成的是 source-only package 骨架,实际依赖和导出规则请按包内容补充。
  • 模板中的 README.mddescriptionurlhomepagetopics 都是初始化占位内容,创建后需要及时修改。
  • src/placeholder.c 只是为了保留 src 目录,你可以直接替换或删除它。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors