最近在研究鸿蒙操作系统的开源项目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负责执行编译过程。
最近在研究鸿蒙操作系统的开源项目OpenHarmony,该项目使用了GN+Ninja工具链进行配置,编译,于是开始研究GN如何使用。 本文的所有信息均来自GN官网和本人个人体会。 GN快速入门 使用GN GN的主要功能是根据配置文件(.gn, BUILD.gn等)生成build.ninja文件。build.ninja类似于Makefile,不同的是由Ninja负责执行编译过程。 获...
具体流程是这样的: build\build_scripts\build_common.sh→build\core\gn\BUILD.gn→build\ohos\images\BUILD.gn action_with_pydeps("${_platform}_${_image_name}_image") { script="//build/ohos/images/build_image.py" depfile="$target_gen_dir/$target_name.d" deps=["//build/ohos/packages:...
可执行目标executable、静态库目标static_library、动态库目标shared_library的定义以及action的定义 详细信息可以查看//build/lite/config/BUILDCONFIG.gn文件内容 编译工具链--toolchain toolchain定义源码编译需要的工具,像编译器、汇编器、连接器等等,一般在.gn所在目录下有一个toolchain目录,里面的BUILD.gn定义详细的编译...
├── BUILD.gn ├── common │ ├── display_test.h │ ├── display_test_utils.cpp │ └── display_test_utils.h ├── display_device │ ├── hdi_composition_check.cpp │ ├── hdi_composition_check.h │ ├── hdi_device_test.cpp │ ├── hdi_device_test.h │ ├...
3. 编写配置BUILD.gn 移植的iperf3代码目录下需要提供一个gn文件,指明需要编译的代码。此文件可以通过import组件模板函数。一方面,很多引用到的头文件需要逐个添加到系统BUILD.GN中去,import组件模板函数可以省去很多麻烦;另一方面,头文件有多个,最终还很难确定是哪一个,使用系统配置好的组件模板函数,可以自动匹配。
五、BUILD.gn的其它模板 一些常用的模板类型: # 生成系统hapohos_hap# 拷贝文件ohos_copy# 源目标集合ohos_source_set# 执行脚本,支持shell、pythonaction# 工作集group# 配置集合config 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ohos_hap例子: ...
通过每个目录下的.gn文件可以看到每个目录下的模块都对应动态库 \interfaces\native\innerkits\event下的文件编出来的是mmi_event.so \interfaces\native\innerkits\napi下的文件编出来的是injecteventhandler.so \interfaces\native\innerkits\proxy下的文件编出来的是libmultimodalinput_proxy.so ...
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等) ...