1 Star 2 Fork 0

RT-Thread/smart-build

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README

smart-build

smart-build 是一款基于 xmake 实现的类 buildroot 的交叉构建系统,用于 RT-Thread Smart 开源操作系统。可以编译基础的软件包(调用xmake & xrepo的方式),构建出基本的应用程序,并输出相关文件到根文件系统文件夹下。

基本功能

  • 支持两种以上架构的编译工具链,目前支持: arm、aarch64;
  • 支持不同版本的软件包;
  • 支持 release/debug 模式编译;
  • 支持按静态库模式编译,支持按动态库模式编译;
  • 支持在最终输出到根文件系统时 strip 掉多余的符号信息;

目录结构

smart-build 目录结构如下所示:

smart-build
├───figures                                         // 文档使用图片
├───rt-xrpo                                         // 本地包索引
|   |───packages
|   |   |───c
|   |   |   |───cul                                 // 软件包名字
|   |   |   |   |───patches                         // 补丁文件
|   |   |   |   |───xmake.lua                       // 编译配置
|   |   |───d
|───scripts                                         // 配置文件,包括界面配置
|   |───buildroot.lua                               // 自定义task脚本
|   |───menuconfig.lua                              // 菜单逻辑脚本
|   |───packages.lua                                // 菜单选项脚本
|   |───platform.lua                                // 平台设置脚本
|───toolchains                                      // 工具链配置 
|   |───aarch64.lua                                 // aarch64 架构工具链配置脚本
|   |───arm.lua                                     // arm 架构工具链配置脚本
|───xmake.lua                                       // 工程主文件
│───README.md                                       // 工具使用说明
│───二次开发文档.md                                  // 二次开发使用说明

安装方法

Ubuntu

  1. 首次使用,需要安装 xmake 环境

    $ bash <(curl -fsSL https://xmake.io/shget.text)
    $ source ~/.xmake/profile
  2. 如果需要使用最新的一些 xmake 特性,使用下面的命令更新到 dev 分支

    xmake update -s dev
  3. 在 rttthread-smart/useraps 目录下,使用下面的命令下载 smart-build 工具

    git clone https://github.com/xmake-io/smart-build.git
  4. smart-build 存放位置

image-20220803155859823

命令行

目前 smart-build 工具支持的命令行如下:

    -m, --menuconfig                    Config and build the selected apps.
    -b, --build                         Build the selected apps.
    -c, --clean                         Clean all installed apps.
    -a APP, --app=APP                   Select the debug app.
    -d DEBUGDIR, --debugdir=DEBUGDIR    Debug app source dir

menuconfig

打开 menuconfig 界面,配置完成后,自动拉取软件包进行编译安装。

xmake buildroot --menuconfig

build

不打开 menuconfig 界面,编译并安装已选择的软件包。

xmake buildroot --build

clean

删除所有已经安装的apps (默认位置$HOME/.xmake/packages/*):

xmake buildroot --clean

输出详细日志

使用命令 -v 可以查看详细的日志信息:

xmake buildroot --build -v

使用方法

生成可执行文件

smart-build 工具支持生成可执行文件。以 lua app 为例,演示配置流程:

  1. 使用命令 xmake buildroot --menuconfig 打开配置界面

    image-20220809162916935

  2. 选择 Target options 配置目标架构和工具链

    image-20220809162916935

  3. 选择 Target packages 配置软件包

    image-20220809162916935

  4. 打开Interpreter landuages and scripting选项,选择 lua 软件包

    image-20220809162916935

  5. 保存配置,会自动进行编译:

    image-20220809162954794

  6. 生成的可执行文件,会自动拷贝到 userapps/root/bin 目录下

    image-20220809163042480

生成库文件

smart-build 支持生成静态库和动态库文件。

生成静态库

  1. 使用命令 xmake buildroot --menuconfig 打开配置界面

    image-20220809162916935

  2. 选择目标文件类型为静态库

    image-20220809162916935

  3. 选择 zlib 软件包

    image-20220809162916935

  4. 保存并退出,安装 zlib 静态库

    image-20220809162916935

生成动态库

  1. 使用命令 xmake buildroot --menuconfig 打开配置界面

    image-20220809162916935

  2. 选择目标文件类型为动态库

    image-20220809162916935

  3. 选择 zlib 软件包

    image-20220809162916935

  4. 保存并退出,安装 zlib 动态库

    image-20220809162916935

调试 APP

smart-build 工具支持调试已下载的软件包:

  • 支持修改软件包里的代码
  • 在进行编译时,可以直接进行增量编译 & 安装

以 zlib 软件包为例,使用下面命令调试 zlib 软件包

xmake buildroot --debugdir=/home/liukang/.xmake/cache/packages/2210/z/zlib/1.2.8/source --app=zlib

参考链接

RT-Thread 官方网站

Xmake 官方网站

rt-smart 仓库地址

Empty file

About

No description expand collapse
Lua and 2 more languages
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Lua
1
https://gitee.com/rtthread/smart-build.git
git@gitee.com:rtthread/smart-build.git
rtthread
smart-build
smart-build
master

Search