最近在研究鸿蒙操作系统的开源项目OpenHarmony,该项目使用了GN+Ninja工具链进行配置,编译,于是开始研究GN如何使用。 本文的所有信息均来自GN官网和本人个人体会。 GN快速入门 使用GN GN的主要功能是根据配置文件(.gn, BUILD.gn等)生成build.ninja文件。build.ninja类似于Makefile,不同的是由Ninja负责执行编译过程。 获...
最近在研究鸿蒙操作系统的开源项目OpenHarmony,该项目使用了GN+Ninja工具链进行配置,编译,于是开始研究GN如何使用。 本文的所有信息均来自GN官网和本人个人体会。 GN快速入门 使用GN GN的主要功能是根据配置文件(.gn, BUILD.gn等)生成build.ninja文件。build.ninja类似于Makefile,不同的是由Ninja负责执行编译过程。 获...
在/build/lite/components/子系统名.json中添加组件,如下: 3. 编写配置BUILD.gn 移植的iperf3代码目录下需要提供一个gn文件,指明需要编译的代码。此文件可以通过import组件模板函数。一方面,很多引用到的头文件需要逐个添加到系统BUILD.GN中去,import组件模板函数可以省去很多麻烦;另一方面,头文件有多个,最终还很难确...
编译完成后,在//out/rk3568/test_subsystem/目录下可以找到编译完成的可执行文件与动态库。 五、BUILD.gn的其它模板 一些常用的模板类型: # 生成系统hapohos_hap# 拷贝文件ohos_copy# 源目标集合ohos_source_set# 执行脚本,支持shell、pythonaction# 工作集group# 配置集合config 1. 2. 3. 4. 5. 6. 7....
移植的iperf3代码目录下需要提供一个gn文件,指明需要编译的代码。此文件可以通过import组件模板函数。一方面,很多引用到的头文件需要逐个添加到系统BUILD.GN中去,import组件模板函数可以省去很多麻烦;另一方面,头文件有多个,最终还很难确定是哪一个,使用系统配置好的组件模板函数,可以自动匹配。
target_name: 测试套的名称,定义在测试目录的BUILD.gn中。preparer: 表示该测试套执行前执行的动作。 src=“res”: 表示测试资源位于test目录下的resource目录下,src=“out”:表示位于out/release/$(部件)目录下。 测试用例执行 在执行测试用例之前,针对用例使用设备的不同,需要对相应配置进行修改,修改完成即可执行...
1. 检查gn环境配置 遍历检查源码根目录和它的所有上级目录,看是否有一个.gn文件,如果查找不到将会退出。 .gn文件应该存在源码根目录下,用于指定编译工具、配置文件等。 OpenHarmony系统是采用ninja工具构建的,gn是生成ninja构建文件的工具。 script_path=$(cd $(dirname $0);pwd) source_root_dir="${script_path...
下面把目光转向功能性代码:(请自己注意Build.gn吊起相关的地址,这里不多赘述) 复制 UDP接口:vendor\hisi\hi3861\hi3861\third_party\lwip_sack\include\sockets.h 1. 编程步骤:1.创建socket。2.设置socket属性,用函数setsockopt()。3.绑定IP地址、端口等信息到socket上,用函数bind()。4.循环接收/发送数据,用函...
第五步:吊起mqtt协议(build.gn版) 与主函数平行的Build.gn,吊起函数与第三方库的内容: 深色代码主题 复制 sources = ["mqtt_test.c","mqtt_entry.c"] include_dirs = ["//utils/native/lite/include","//kernel/liteos_m/components/cmsis/2.0","//base/iot_hardware/interfaces/kits/wifiiot_lite"...
OpenHarmony编译构建子系统是基于Gn和ninja的,而gn本身是有原生模板(source_set,shared_library, static_library, action, executable,group)。gn也支持用户自定义编译模板,OpenHarmony编译子系统提供了一系列自定义的模板(ohos_shared_library、ohos_prebuilt_executable、ohos_prebuilt_shared_library等) ...