本帖最后由 jf_50393217 于 2021-5-17 17:55 编辑
前言:人懒,不想下载官方的IDE,根据之前学习GN+Ninja的经验,把官方源码调整了一下,并重建了构建系统。使用该方案的好处,构建依赖清晰明了,不需要下载官方IDE,可使用VSCode编辑源码,命令行编译(或者使用VSCode的Task功能一键编译)。
效果截图
GN+Ninja构建系统目录说明
- ├── build 构建系统配置目录
- │ ├── config 全局配置(如Include头文件)
- │ ├── product 开发板配置
- │ └── toolchain 工具链配置(编译命令等)
- ├── core core核心组件(原CORE源码目录)
- ├── out 编译产物目录
- │ └── ministar
- ├── peripheral 外设组件目录(组件)
- │ ├── Includes 外设头文件目录
- │ └── Sources 外设源码
- ├── startup mcu启动代码(非组件形式)
- ├── system mcu配置代码(组件形式)
- └── user 用户组件代码
使用方式:
一:下载代码
- git clone -b master --depth=1 https://gitee.com/walker2048/gw1-ns-4-c-gn
二: 安装GN和Ninja工具(只支持Linux),william hill官网
发帖规则变态,无法上传简易安装命令内容,请见谅。
下载gn和ninja,解压缩到目录,并将该目录放到环境变量中
gn地址https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar
ninja地址https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
三:在git下载下来的项目目录中,运行构建命令
- gn gen out/ministar --root=. --dotfile=build/.gn --args='product = "ministar"' && ninja -C out/ministar
即可完成编译过程。
如需增加c源文件,参考如下教程:
例如需要在user目录下添加test.c文件,则修改user/BUILD.gn文件的21~27行,把test.c添加到里面,改成如下内容即可。
- static_library("src") {
- sources = [
- "main.c",
- "gw1ns4c_it.c",
- "test.c",
- "//startup/startup_gw1ns4c.S"
- ]
- }
假如需要添加额外组件,可参考system组件配置,将该组件源码目录复制到根目录。同时把system的BUILD.gn文件复制到该组件去,并修改该文件的第3行
static_library("system"),将system改成组件目录名称(大小写一致),并修改第5行内容,改成需要编译的c文件名称(多个文件换行,用,
分隔)。最后修改user/BUILD.gn的第4行依赖定义内容(按组件名称写),依赖从顶层排序,从左往右写。
如需添加全局引用目录,修改build/config/BUILD.gn的20~27行,将该目录添加进去即可。