鸿蒙NEXT开发实战往期必看文章:
一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!
“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)
“一杯冰美式的时间” 了解鸿蒙HarmonyOS Next应用开发路径!
模块配置规则
编译子系统通过模块、部件和产品三层配置来实现编译和打包。模块就是编译子系统的一个目标,包括(动态库、静态库、配置文件、预编译模块等)。模块要定义属于哪个部件,一个模块只能归属于一个部件。OpenHarmony使用定制化的Gn模板来配置模块规则,Gn语法相关的基础知识请参考官网手册。
以下是常用的模块配置规则:
# C/C++模板
ohos_shared_library
ohos_static_library
ohos_executable
ohos_source_set
# 预编译模板:
ohos_prebuilt_executable
ohos_prebuilt_shared_library
ohos_prebuilt_static_library
#hap模板
ohos_hap
ohos_app_scope
ohos_js_assets
ohos_resources
#rust模板
ohos_rust_executable
ohos_rust_shared_library
ohos_rust_static_library
ohos_rust_proc_macro
ohos_rust_shared_ffi
ohos_rust_static_ffi
ohos_rust_cargo_crate
ohos_rust_systemtest
ohos_rust_unittest
ohos_rust_fuzztest
#其他常用模板
#配置文件
ohos_prebuilt_etc
#sa配置
ohos_sa_profile
ohos开头的模板与内建模板的差异主要在于:推荐使用ohos定制模板。
C/C++模板示例
ohos开头的模板对应的.gni文件路径在:openharmony/build/templates/cxx/cxx.gni。
ohos_shared_library示例
import("//build/ohos.gni")
ohos_shared_library("helloworld") {
sources = ["file"]
include_dirs = [] # 如有重复头文件定义,优先使用前面路径头文件。
cflags = [] # 如重复冲突定义,后面的参数优先生效,也就是该配置项中优先生效。
cflags_c = []
cflags_cc = []
ldflags = [] # 如重复冲突定义,前面参数优先生效,也就是ohos_template中预制参数优先生效。
configs = []
deps = [] # 部件内模块依赖
external_deps = [ # 跨部件模块依赖定义
"part_name:module_name", # 定义格式为 "部件名:模块名称"。
] # 这里依赖的模块必须是依赖的部件声明在inner_kits中的模块。
output_name = [string] # 模块输出名
output_extension = [] # 模块名后缀
module_install_dir = "" # 模块安装路径,缺省在/system/lib64或/system/lib下; 模块安装路径从s