登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
登录
注册
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
58
Star
129
Fork
1.6K
OpenHarmony
/
build
代码
Issues
210
Pull Requests
109
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
[问题咨询]: 如何在一个gn工程中配置ohos的工具链,然后使用ohos工具链编译出属于ohos的库
待办的
#I8NG24
yinchuang
成员
创建于
2023-12-11 17:36
### 问题描述 自问自答: ### 1、添加ohos平台宏 ``` diff --git a/config/BUILDCONFIG.gn b/config/BUILDCONFIG.gn index 1cff82186..4cf4bdb95 100644 --- a/config/BUILDCONFIG.gn +++ b/config/BUILDCONFIG.gn @@ -262,6 +262,8 @@ if (target_os == "android") { _default_toolchain = "//build/toolchain/win:uwp_$target_cpu" } else if (target_os == "aix") { _default_toolchain = "//build/toolchain/aix:$target_cpu" +} else if (target_os == "ohos") { # OHOS-LOCAL + _default_toolchain = "//build/toolchain/ohos:ohos_clang_$target_cpu" } else { assert(false, "Unsupported target_os: $target_os") } @@ -292,6 +294,7 @@ if (custom_toolchain != "") { # aix or one of the BSDs. If you need to check these, just check the # current_os value directly. +is_ohos = current_os == "ohos" is_android = current_os == "android" is_chromeos = current_os == "chromeos" is_fuchsia = current_os == "fuchsia" @@ -373,6 +376,10 @@ if (is_android) { [ "//build/config/android:default_orderfile_instrumentation" ] } +if (is_ohos) { + default_compiler_configs += [ "//build/config/ohos:compiler" ] +} + if (is_clang && !is_nacl) { default_compiler_configs += [ "//build/config/clang:find_bad_constructs", (END) ``` ### 2、设置ohos平台clang 工具链相关路径 ``` diff --git a/config/clang/clang.gni b/config/clang/clang.gni index 588864586..0463b5311 100644 --- a/config/clang/clang.gni +++ b/config/clang/clang.gni @@ -6,13 +6,23 @@ import("//build/toolchain/toolchain.gni") default_clang_base_path = "//third_party/llvm-build/Release+Asserts" +if (is_ohos) { + ohos_sdk_native_root = "/home/yinchuang/Code/test/north-issue/sdk-linux-4.0.3.601/sdk/LinuxSDK/openharmony/10/native" + default_clang_base_path = "${ohos_sdk_native_root}/llvm" + clang_lib_path = "${default_clang_base_path}/lib" +} + declare_args() { # Indicates if the build should use the Chrome-specific plugins for enforcing # coding guidelines, etc. Only used when compiling with Chrome's Clang, not # Chrome OS's. - clang_use_chrome_plugins = - is_clang && !is_nacl && !use_xcode_clang && - default_toolchain != "//build/toolchain/cros:target" + if (is_ohos) { + clang_use_chrome_plugins = false + } else { + clang_use_chrome_plugins = + is_clang && !is_nacl && !use_xcode_clang && + default_toolchain != "//build/toolchain/cros:target" + } clang_base_path = default_clang_base_path } (END) ``` ### 3、设置ohos平台sysroot路径 ``` diff --git a/config/sysroot.gni b/config/sysroot.gni index 18d2d5736..9ed6d289e 100644 --- a/config/sysroot.gni +++ b/config/sysroot.gni @@ -35,6 +35,9 @@ if (sysroot == "") { # Android uses unified headers, and thus a single compile time sysroot sysroot = "$android_toolchain_root/sysroot" + } else if (is_ohos) { + import("//build/config/clang/clang.gni") + sysroot = "${ohos_sdk_native_root}/sysroot" } else if ((is_linux || is_chromeos) && use_sysroot) { # By default build against a sysroot image downloaded from Cloud Storage # during gclient runhooks. (END) ``` ### 4、修改ohos平台clang版本 ``` diff --git a/toolchain/toolchain.gni b/toolchain/toolchain.gni index d556b0e09..d32a0d5f0 100644 --- a/toolchain/toolchain.gni +++ b/toolchain/toolchain.gni @@ -39,7 +39,11 @@ if (generate_linker_map) { declare_args() { # Clang compiler version. Clang files are placed at version-dependent paths. - clang_version = "12.0.0" + if (is_ohos) { + clang_version = "15.0.4" + } else { + clang_version = "12.0.0" + } } # Check target_os here instead of is_ios as this file is loaded for secondary (END) ``` ### 5、扩充原本的gcc_toolchain模板功能 这里主要是添加了ohos的用于启动引导程序的.o gcc_toolchain.gni中template("gcc_toolchain")添加这几个参数的识别 ``` # Bring these into our scope for string interpolation with default values. if (defined(invoker.libs_section_prefix)) { libs_section_prefix = invoker.libs_section_prefix } else { libs_section_prefix = "" } if (defined(invoker.libs_section_postfix)) { libs_section_postfix = invoker.libs_section_postfix } else { libs_section_postfix = "" } if (defined(invoker.solink_libs_section_prefix)) { solink_libs_section_prefix = invoker.solink_libs_section_prefix } else { solink_libs_section_prefix = "" } if (defined(invoker.solink_libs_section_postfix)) { solink_libs_section_postfix = invoker.solink_libs_section_postfix } else { solink_libs_section_postfix = "" } ``` 修改tool("solink")和tool("solink_module")中rspfile_content为: ``` rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive $solink_libs_section_prefix {{libs}} $solink_libs_section_postfix" ``` 修改tool("link") 中link_command为: ``` link_command = "$ld {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" $libs_section_prefix $start_group_flag @\"$rspfile\" {{solibs}} {{libs}} $end_group_flag $libs_section_p ostfix" ``` ### 6、设置各个架构的ohos_clang_toolchain 新建build/toolchain/ohos/BUILD.gn ``` import("//build/config/sysroot.gni") import("//build/toolchain/gcc_toolchain.gni") declare_args() { # Whether unstripped binaries, i.e. compiled with debug symbols, should be # considered runtime_deps rather than stripped ones. ohos_unstripped_runtime_outputs = true ohos_extra_cflags = "" ohos_extra_cppflags = "" ohos_extra_cxxflags = "" ohos_extra_asmflags = "" ohos_extra_ldflags = "" } # The ohos clang toolchains share most of the same parameters, so we have this # wrapper around gcc_toolchain to avoid duplication of logic. # # Parameters: # - toolchain_root # Path to cpu-specific toolchain within the ndk. # - sysroot # Sysroot for this architecture. # - lib_dir # Subdirectory inside of sysroot where libs go. # - binary_prefix # Prefix of compiler executables. template("ohos_clang_toolchain") { gcc_toolchain(target_name) { assert(defined(invoker.toolchain_args), "toolchain_args must be defined for ohos_clang_toolchain()") toolchain_args = invoker.toolchain_args toolchain_args.current_os = "ohos" # Output linker map files for binary size analysis. enable_linker_map = true ohos_libc_dir = rebase_path(invoker.sysroot + "/" + invoker.lib_dir, root_build_dir) libs_section_prefix = "${ohos_libc_dir}/Scrt1.o" libs_section_prefix += " ${ohos_libc_dir}/crti.o" libs_section_postfix = "${ohos_libc_dir}/crtn.o" if (invoker.target_name == "ohos_clang_arm") { abi_target = "arm-linux-ohos" } else if (invoker.target_name == "ohos_clang_arm64") { abi_target = "aarch64-linux-ohos" } else if (invoker.target_name == "ohos_clang_x86_64") { abi_target = "x86_64-linux-ohos" } clang_rt_dir = rebase_path("${clang_lib_path}/${abi_target}/nanlegacy", root_build_dir) solink_libs_section_prefix = "${ohos_libc_dir}/crti.o" solink_libs_section_prefix += " ${clang_rt_dir}/clang_rt.crtbegin.o" solink_libs_section_postfix = "${ohos_libc_dir}/crtn.o" solink_libs_section_postfix += " ${clang_rt_dir}/clang_rt.crtend.o" _prefix = rebase_path("${clang_base_path}/bin", root_build_dir) cc = "${_prefix}/clang" cxx = "${_prefix}/clang++" ar = "${_prefix}/llvm-ar" ld = cxx readelf = "${_prefix}/llvm-readobj" nm = "${_prefix}/llvm-nm" if (!is_debug) { strip = rebase_path("${clang_base_path}/bin/llvm-strip", root_build_dir) use_unstripped_as_runtime_outputs = ohos_unstripped_runtime_outputs } extra_cflags = ohos_extra_cflags extra_cppflags = ohos_extra_cppflags extra_cxxflags = ohos_extra_cxxflags extra_asmflags = ohos_extra_asmflags extra_ldflags = ohos_extra_ldflags } } ohos_clang_toolchain("ohos_clang_arm") { sysroot = "${sysroot}" lib_dir = "usr/lib/arm-linux-ohos" toolchain_args = { current_cpu = "arm" } } ohos_clang_toolchain("ohos_clang_arm64") { sysroot = "${sysroot}" lib_dir = "usr/lib/aarch64-linux-ohos" toolchain_args = { current_cpu = "arm64" } } ohos_clang_toolchain("ohos_clang_x86_64") { sysroot = "${sysroot}" lib_dir = "usr/lib/x86_64-linux-ohos" toolchain_args = { current_cpu = "x86_64" } } ``` ### 7、设置ohos的一些编译参数,将其加入到BUILDCONFIG.gn中 新建`build/config/ohos/BUILD.gn`,该文件主要是定义一个config,该config会被注册到所有的编译目标,该config主要设置了基础的编译选项、宏定义等 ``` import("//build/config/sysroot.gni") assert(is_ohos) ohos_clang_base_path = "/path/to/ndk/sdk-linux-4.0.3.601/sdk/LinuxSDK/openharmony/10/native/llvm" ohos_clang_version = "15.0.4" if (is_ohos) { if (current_cpu == "arm") { abi_target = "arm-linux-ohos" } else if (current_cpu == "x86") { abi_target = "" } else if (current_cpu == "arm64") { abi_target = "aarch64-linux-ohos" } else if (current_cpu == "x86_64") { abi_target = "x86_64-linux-ohos" } else { assert(false, "Architecture not supported") } } config("compiler") { cflags = [ "-ffunction-sections", "-fno-short-enums", "-fno-addrsig", ] cflags += [ "-Wno-unknown-warning-option", "-Wno-int-conversion", "-Wno-unused-variable", "-Wno-misleading-indentation", "-Wno-missing-field-initializers", "-Wno-unused-parameter", "-Wno-c++11-narrowing", "-Wno-unneeded-internal-declaration", "-Wno-undefined-var-template", "-Wno-implicit-int-float-conversion", ] defines = [ # The NDK has these things, but doesn't define the constants to say that it # does. Define them here instead. "HAVE_SYS_UIO_H", ] defines += [ "OHOS", "__MUSL__", "_LIBCPP_HAS_MUSL_LIBC", "__BUILD_LINUX_WITH_CLANG", "__GNU_SOURCE", "_GNU_SOURCE", ] ldflags = [ "-Wl,--no-undefined", "-Wl,--exclude-libs=libunwind_llvm.a", "-Wl,--exclude-libs=libc++_static.a", # Don't allow visible symbols from libraries that contain # assembly code with symbols that aren't hidden properly. # http://crbug.com/448386 "-Wl,--exclude-libs=libvpx_assembly_arm.a", ] cflags += [ "--target=$abi_target" ] include_dirs = [ "${sysroot}/usr/include/${abi_target}", "${ohos_clang_base_path}/lib/clang/${ohos_clang_version}/include", ] ldflags += [ "--target=$abi_target" ] # Assign any flags set for the C compiler to asmflags so that they are sent # to the assembler. asmflags = cflags } ```
### 问题描述 自问自答: ### 1、添加ohos平台宏 ``` diff --git a/config/BUILDCONFIG.gn b/config/BUILDCONFIG.gn index 1cff82186..4cf4bdb95 100644 --- a/config/BUILDCONFIG.gn +++ b/config/BUILDCONFIG.gn @@ -262,6 +262,8 @@ if (target_os == "android") { _default_toolchain = "//build/toolchain/win:uwp_$target_cpu" } else if (target_os == "aix") { _default_toolchain = "//build/toolchain/aix:$target_cpu" +} else if (target_os == "ohos") { # OHOS-LOCAL + _default_toolchain = "//build/toolchain/ohos:ohos_clang_$target_cpu" } else { assert(false, "Unsupported target_os: $target_os") } @@ -292,6 +294,7 @@ if (custom_toolchain != "") { # aix or one of the BSDs. If you need to check these, just check the # current_os value directly. +is_ohos = current_os == "ohos" is_android = current_os == "android" is_chromeos = current_os == "chromeos" is_fuchsia = current_os == "fuchsia" @@ -373,6 +376,10 @@ if (is_android) { [ "//build/config/android:default_orderfile_instrumentation" ] } +if (is_ohos) { + default_compiler_configs += [ "//build/config/ohos:compiler" ] +} + if (is_clang && !is_nacl) { default_compiler_configs += [ "//build/config/clang:find_bad_constructs", (END) ``` ### 2、设置ohos平台clang 工具链相关路径 ``` diff --git a/config/clang/clang.gni b/config/clang/clang.gni index 588864586..0463b5311 100644 --- a/config/clang/clang.gni +++ b/config/clang/clang.gni @@ -6,13 +6,23 @@ import("//build/toolchain/toolchain.gni") default_clang_base_path = "//third_party/llvm-build/Release+Asserts" +if (is_ohos) { + ohos_sdk_native_root = "/home/yinchuang/Code/test/north-issue/sdk-linux-4.0.3.601/sdk/LinuxSDK/openharmony/10/native" + default_clang_base_path = "${ohos_sdk_native_root}/llvm" + clang_lib_path = "${default_clang_base_path}/lib" +} + declare_args() { # Indicates if the build should use the Chrome-specific plugins for enforcing # coding guidelines, etc. Only used when compiling with Chrome's Clang, not # Chrome OS's. - clang_use_chrome_plugins = - is_clang && !is_nacl && !use_xcode_clang && - default_toolchain != "//build/toolchain/cros:target" + if (is_ohos) { + clang_use_chrome_plugins = false + } else { + clang_use_chrome_plugins = + is_clang && !is_nacl && !use_xcode_clang && + default_toolchain != "//build/toolchain/cros:target" + } clang_base_path = default_clang_base_path } (END) ``` ### 3、设置ohos平台sysroot路径 ``` diff --git a/config/sysroot.gni b/config/sysroot.gni index 18d2d5736..9ed6d289e 100644 --- a/config/sysroot.gni +++ b/config/sysroot.gni @@ -35,6 +35,9 @@ if (sysroot == "") { # Android uses unified headers, and thus a single compile time sysroot sysroot = "$android_toolchain_root/sysroot" + } else if (is_ohos) { + import("//build/config/clang/clang.gni") + sysroot = "${ohos_sdk_native_root}/sysroot" } else if ((is_linux || is_chromeos) && use_sysroot) { # By default build against a sysroot image downloaded from Cloud Storage # during gclient runhooks. (END) ``` ### 4、修改ohos平台clang版本 ``` diff --git a/toolchain/toolchain.gni b/toolchain/toolchain.gni index d556b0e09..d32a0d5f0 100644 --- a/toolchain/toolchain.gni +++ b/toolchain/toolchain.gni @@ -39,7 +39,11 @@ if (generate_linker_map) { declare_args() { # Clang compiler version. Clang files are placed at version-dependent paths. - clang_version = "12.0.0" + if (is_ohos) { + clang_version = "15.0.4" + } else { + clang_version = "12.0.0" + } } # Check target_os here instead of is_ios as this file is loaded for secondary (END) ``` ### 5、扩充原本的gcc_toolchain模板功能 这里主要是添加了ohos的用于启动引导程序的.o gcc_toolchain.gni中template("gcc_toolchain")添加这几个参数的识别 ``` # Bring these into our scope for string interpolation with default values. if (defined(invoker.libs_section_prefix)) { libs_section_prefix = invoker.libs_section_prefix } else { libs_section_prefix = "" } if (defined(invoker.libs_section_postfix)) { libs_section_postfix = invoker.libs_section_postfix } else { libs_section_postfix = "" } if (defined(invoker.solink_libs_section_prefix)) { solink_libs_section_prefix = invoker.solink_libs_section_prefix } else { solink_libs_section_prefix = "" } if (defined(invoker.solink_libs_section_postfix)) { solink_libs_section_postfix = invoker.solink_libs_section_postfix } else { solink_libs_section_postfix = "" } ``` 修改tool("solink")和tool("solink_module")中rspfile_content为: ``` rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive $solink_libs_section_prefix {{libs}} $solink_libs_section_postfix" ``` 修改tool("link") 中link_command为: ``` link_command = "$ld {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" $libs_section_prefix $start_group_flag @\"$rspfile\" {{solibs}} {{libs}} $end_group_flag $libs_section_p ostfix" ``` ### 6、设置各个架构的ohos_clang_toolchain 新建build/toolchain/ohos/BUILD.gn ``` import("//build/config/sysroot.gni") import("//build/toolchain/gcc_toolchain.gni") declare_args() { # Whether unstripped binaries, i.e. compiled with debug symbols, should be # considered runtime_deps rather than stripped ones. ohos_unstripped_runtime_outputs = true ohos_extra_cflags = "" ohos_extra_cppflags = "" ohos_extra_cxxflags = "" ohos_extra_asmflags = "" ohos_extra_ldflags = "" } # The ohos clang toolchains share most of the same parameters, so we have this # wrapper around gcc_toolchain to avoid duplication of logic. # # Parameters: # - toolchain_root # Path to cpu-specific toolchain within the ndk. # - sysroot # Sysroot for this architecture. # - lib_dir # Subdirectory inside of sysroot where libs go. # - binary_prefix # Prefix of compiler executables. template("ohos_clang_toolchain") { gcc_toolchain(target_name) { assert(defined(invoker.toolchain_args), "toolchain_args must be defined for ohos_clang_toolchain()") toolchain_args = invoker.toolchain_args toolchain_args.current_os = "ohos" # Output linker map files for binary size analysis. enable_linker_map = true ohos_libc_dir = rebase_path(invoker.sysroot + "/" + invoker.lib_dir, root_build_dir) libs_section_prefix = "${ohos_libc_dir}/Scrt1.o" libs_section_prefix += " ${ohos_libc_dir}/crti.o" libs_section_postfix = "${ohos_libc_dir}/crtn.o" if (invoker.target_name == "ohos_clang_arm") { abi_target = "arm-linux-ohos" } else if (invoker.target_name == "ohos_clang_arm64") { abi_target = "aarch64-linux-ohos" } else if (invoker.target_name == "ohos_clang_x86_64") { abi_target = "x86_64-linux-ohos" } clang_rt_dir = rebase_path("${clang_lib_path}/${abi_target}/nanlegacy", root_build_dir) solink_libs_section_prefix = "${ohos_libc_dir}/crti.o" solink_libs_section_prefix += " ${clang_rt_dir}/clang_rt.crtbegin.o" solink_libs_section_postfix = "${ohos_libc_dir}/crtn.o" solink_libs_section_postfix += " ${clang_rt_dir}/clang_rt.crtend.o" _prefix = rebase_path("${clang_base_path}/bin", root_build_dir) cc = "${_prefix}/clang" cxx = "${_prefix}/clang++" ar = "${_prefix}/llvm-ar" ld = cxx readelf = "${_prefix}/llvm-readobj" nm = "${_prefix}/llvm-nm" if (!is_debug) { strip = rebase_path("${clang_base_path}/bin/llvm-strip", root_build_dir) use_unstripped_as_runtime_outputs = ohos_unstripped_runtime_outputs } extra_cflags = ohos_extra_cflags extra_cppflags = ohos_extra_cppflags extra_cxxflags = ohos_extra_cxxflags extra_asmflags = ohos_extra_asmflags extra_ldflags = ohos_extra_ldflags } } ohos_clang_toolchain("ohos_clang_arm") { sysroot = "${sysroot}" lib_dir = "usr/lib/arm-linux-ohos" toolchain_args = { current_cpu = "arm" } } ohos_clang_toolchain("ohos_clang_arm64") { sysroot = "${sysroot}" lib_dir = "usr/lib/aarch64-linux-ohos" toolchain_args = { current_cpu = "arm64" } } ohos_clang_toolchain("ohos_clang_x86_64") { sysroot = "${sysroot}" lib_dir = "usr/lib/x86_64-linux-ohos" toolchain_args = { current_cpu = "x86_64" } } ``` ### 7、设置ohos的一些编译参数,将其加入到BUILDCONFIG.gn中 新建`build/config/ohos/BUILD.gn`,该文件主要是定义一个config,该config会被注册到所有的编译目标,该config主要设置了基础的编译选项、宏定义等 ``` import("//build/config/sysroot.gni") assert(is_ohos) ohos_clang_base_path = "/path/to/ndk/sdk-linux-4.0.3.601/sdk/LinuxSDK/openharmony/10/native/llvm" ohos_clang_version = "15.0.4" if (is_ohos) { if (current_cpu == "arm") { abi_target = "arm-linux-ohos" } else if (current_cpu == "x86") { abi_target = "" } else if (current_cpu == "arm64") { abi_target = "aarch64-linux-ohos" } else if (current_cpu == "x86_64") { abi_target = "x86_64-linux-ohos" } else { assert(false, "Architecture not supported") } } config("compiler") { cflags = [ "-ffunction-sections", "-fno-short-enums", "-fno-addrsig", ] cflags += [ "-Wno-unknown-warning-option", "-Wno-int-conversion", "-Wno-unused-variable", "-Wno-misleading-indentation", "-Wno-missing-field-initializers", "-Wno-unused-parameter", "-Wno-c++11-narrowing", "-Wno-unneeded-internal-declaration", "-Wno-undefined-var-template", "-Wno-implicit-int-float-conversion", ] defines = [ # The NDK has these things, but doesn't define the constants to say that it # does. Define them here instead. "HAVE_SYS_UIO_H", ] defines += [ "OHOS", "__MUSL__", "_LIBCPP_HAS_MUSL_LIBC", "__BUILD_LINUX_WITH_CLANG", "__GNU_SOURCE", "_GNU_SOURCE", ] ldflags = [ "-Wl,--no-undefined", "-Wl,--exclude-libs=libunwind_llvm.a", "-Wl,--exclude-libs=libc++_static.a", # Don't allow visible symbols from libraries that contain # assembly code with symbols that aren't hidden properly. # http://crbug.com/448386 "-Wl,--exclude-libs=libvpx_assembly_arm.a", ] cflags += [ "--target=$abi_target" ] include_dirs = [ "${sysroot}/usr/include/${abi_target}", "${ohos_clang_base_path}/lib/clang/${ohos_clang_version}/include", ] ldflags += [ "--target=$abi_target" ] # Assign any flags set for the C compiler to asmflags so that they are sent # to the assembler. asmflags = cflags } ```
评论 (
8
)
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已拒绝
负责人
未设置
标签
question
waiting_for_assign
未设置
项目
未立项任务
未立项任务
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (369)
标签 (52)
master
OpenHarmony-6.0-Release
weekly_20250901
OpenHarmony_feature_20250702
OpenHarmony_feature_Release_20250728
revert-merge-5849-OpenHarmony_feature_20250702
revert-merge-5841-OpenHarmony_feature_20250702
weekly_20250825
weekly_20250818
revert-merge-5792-master
weekly_20250811
weekly_20250804
revert-merge-5731-master
weekly_20250728
revert-merge-5716-master
revert-merge-5659-OpenHarmony_feature_20250702
weekly_20250721
weekly_20250714
OpenHarmony_feature_release_20250603
OpenHarmony_feature_20250328
revert-merge-5528-OpenHarmony_feature_20250328
weekly_20250707
OpenHarmony-6.0-Beta1
weekly_20250630
llvm-build-19.1.7
weekly_20250623
revert-merge-5487-OpenHarmony_feature_20250328
weekly_20250616
weekly_20250609
revert-merge-5351-master
OpenHarmony-5.0.3-Release
weekly_20250602
OpenHarmony_feature_Release_20250411
revert-merge-5301-master
weekly_20250526
revert-merge-5326-master
revert-merge-5327-master
revert-merge-5313-master
OpenHarmony-4.1-Release
weekly_20250519
OpenHarmony_feature_20250327
weekly_20250512
OpenHarmony-5.1.0-Release
weekly_20250505
weekly_20250428
revert-merge-5124-master
revert-merge-5121-master
revert-merge-5071-master
OpenHarmony_feature_20250424
weekly_20250421
revert-merge-5044-OpenHarmony_feature_Release_20250411
OpenHarmony_foundation_20250415
OpenHarmony_foundation_release_20250415
revert-merge-5027-OpenHarmony_feature_20250328
weekly_20250414
revert-merge-4990-OpenHarmony_feature_20250328
OpenHarmony_feature_20241108
weekly_20250407
weekly_20250331
revert-merge-4903-master
OpenHarmony_UIPlugin_20250323
weekly_20250324
revert-merge-4887-master
revert-merge-4876-OpenHarmony_feature_20241108
weekly_20250317
revert-merge-4683-master
weekly_20250310
weekly_20250303
revert-merge-4797-OpenHarmony_feature_20241108
OpenHarmony_debug_20250227
weekly_20250224
OpenHarmony_debug_20250224
weekly_20250217
revert-merge-4746-master
OpenHarmony_debug_20250219
weekly_20250210
weekly_20250127
weekly_20250203
OpenHarmony-5.0.2-Release
weekly_20250120
revert-merge-4671-OpenHarmony-5.0.2-Release
revert-merge-4656-OpenHarmony_feature_20241108
weekly_20250113
weekly_20250106
cherry-pick-1736144294
revert-merge-4614-master
revert-merge-4379-master
weekly_20241230
weekly_20241223
revert-merge-4572-master
OpenHarmony_feature_20241121
weekly_20241216
weekly_20241209
revert-merge-4449-master
revert-merge-4378-master
revert-merge-4454-master
weekly_20241202
OpenHarmony-5.0.1-Release
revert-merge-4408-master
revert-merge-4416-master
weekly_20241125
revert-merge-4369-OpenHarmony-5.0.1-Release
revert-merge-4355-master
weekly_20241118
OpenHarmony_feature_202401017
revert-merge-4333-master
weekly_20241111
weekly_20241104
weekly_20241028
OpenHarmony-4.0-Release
weekly_20241014
weekly_20241021
revert-merge-4235-master
revert-merge-4214-master
revert-merge-4001-master
weekly_20241007
weekly_20240930
cherry-pick-1727596141
cherry-pick-1727595509
weekly_20240923
OpenHarmony-5.0-Release
OpenHarmony-5.0.0-Release
OpenHarmony_debug_20240926
revert-merge-2648-master
weekly_20240916
weekly_20240909
revert-f62df2f
revert-merge-4020-master
weekly_20240902
weekly_20240826
OpenHarmony_debug_20240822
revert-merge-3799-master
weekly_20240819
OpenHarmony_debug_20240815
revert-merge-3882-master
revert-merge-3871-master
revert-merge-3875-master
revert-merge-3873-master
weekly_20240812
weekly_20240729
weekly_20240805
revert-merge-2505-master
revert-merge-3671-master
weekly_20240722
revert-merge-2746-master
revert-merge-3772-revert-merge-2746-master
revert-merge-3739-OpenHarmony-4.0-Release
revert-merge-3731-master
weekly_20240715
revert-merge-3738-master
OpenHarmony_debug_20240704
OpenHarmony_ArkUI_Upstream_2024
OpenHarmony_debug_20240717
weekly_20240708
revert-merge-3674-master
weekly_20240701
weekly_20240624
revert-merge-3633-master
weekly_20240617
OpenHarmony-5.0-Beta1
weekly_20240610
weekly_20240603
OpenHarmony_debug_20240606
weekly_20240527
OpenHarmony_debug_20240603
weekly_20240520
revert-merge-3515-master
revert-merge-3513-master
revert-merge-3493-master
weekly_20240506
revert-merge-3459-master
weekly_20240422
kernel_from_master0513_20240515
weekly_20240513
weekly_20240429
revert-merge-3317-master
weekly_20240415
kernel_from_weekly0422_20240511
weekly_20240408
revert-merge-3286-master
weekly_20240401
revert-merge-3210-master
weekly_20240325
revert-merge-3045-OpenHarmony-4.1-Release
revert-merge-3172-master
revert-merge-3127-master
revert-merge-3153-master
revert-merge-3091-master
weekly_20240318
revert-merge-3099-master
weekly_20240311
weekly_20240304
weekly_20240226
weekly_20240219
weekly_20240212
revert-merge-2890-OpenHarmony-4.1-Release
tmp
weekly_20240205
revert-merge-2844-master
revert-merge-2837-master
weekly_20240129
revert-merge-2776-master
weekly_20240122
weekly_20240115
revert-merge-2786-master
OpenHarmony-3.2-Release
weekly_20231225
revert-merge-2771-OpenHarmony-4.0-Release
weekly_20240108
OpenHarmony-4.1-Beta1
weekly_20240101
revert-merge-2694-master
revert-merge-2697-master
weekly_20231218
revert-merge-2682-master
revert-merge-2667-master
weekly_20231211
weekly_20231204
npm_enable
weekly_20231010
revert-merge-2616-master
revert-merge-2626-master
weekly_20231127
weekly_20231031
revert-merge-2536-master
weekly_20231120
weekly_20231114
weekly_20231107
revert-merge-2475-master
revert-merge-2466-master
revert-merge-2460-master
revert-merge-2459-master
weekly_20231024
weekly_20231017
debug_OpenHarmony-4.0-Release_20231013
weekly_20231003
weekly_20230926
weekly_20230919
lbl_test
monthly_20230815
weekly_20230912
weekly_20230905
revert-merge-2322-weekly_20230905
revert-merge-2323-master
weekly_20230829
weekly_20230822
weekly_20230815
weekly_20230808
OpenHarmony-4.0-Beta2
weekly_20230801
weekly_20230725
revert-merge-2155-master
weekly_20230712
weekly_20230704
revert-merge-2114-master
weekly_20230627
weekly_20230626
weekly_20230619
weekly_20230613
cherry-pick-1686728834
profile
weekly_20230606
OpenHarmony-4.0-Beta1
weekly_20230530
weekly_20230523
revert-merge-1947-OpenHarmony-4.0-Beta1
weekly_20230516
revert-merge-1920-master
weekly_20230509
weekly_20230502
weekly_20230425
weekly_20230328
weekly_20230418
weekly_20230411
weekly_20230404
revert-merge-1779-master
weekly_20230321
weekly_20230314
monthly_20221018
weekly_20230307
revert-merge-1706-master
weekly_20230228
OpenHarmony-3.2-Beta5
weekly_20230221
cherry-pick-1676890371
weekly_20230214
weekly_20230207
weekly_20230131
weekly_20230124
weekly_20230117
revert-merge-1617-master
revert-merge-1615-master
weekly_20230110
revert-merge-1584-master
weekly_20230103
OpenHarmony-3.2-Beta4
OpenHarmony-3.1-Release
weekly_20221227
revert-merge-1484-master
weekly_20221220
weekly_20221213
beta4_prebuilts
cherry-pick-1670385726
weekly_20221206
OpenHarmony-3.2-Beta3
weekly_20221129
weekly_20221122
OpenHarmony-3.2-Beta1
weekly_20221115
weekly_20221108
gen_module_info_ninja
revert-merge-1398-master
weekly_20221101
weekly_20221025
lldb-1021
weekly_20221018
revert-merge-1364-master
weekly_20221011
revert-merge-1342-master
revert-merge-1278-master
monthly_20220816
revert-merge-1236-master
OpenHarmony-3.2-Beta2
OpenHarmony-3.1-lubinglun
feature_IDL_20220811
OpenHarmony-3.1-API8-SDK-Public
revert-merge-1124-master
revert-merge-1081-master
weekly_20220719
weekly_20220712
monthly_20220614
weekly_20220705
weekly_20220628
weekly_20220621
OpenHarmony-3.1-Beta
OpenHarmony-2.2-Beta2
OpenHarmony-3.0-LTS
OpenHarmony-3.1-API9-SDK-Canary
OpenHarmony_filemanager_develop_20220614
weekly_20220614
weekly_20220607
weekly_20220531
weekly_20220524
OpenHarmony_filemanager_develop_20220505
revert-merge-789-OpenHarmony-3.1-Release
revert-merge-780-master
weekly_20220510
weekly_20220503
weekly_20220426
weekly_20220419
weekly_20220412
stage_form
weekly_20220406
weekly_20220301
weekly_20220222
weekly_20220215
weekly_20220208
weekly_20220201
weekly_20220125
mytest
mybranch
weekly_20220118
revert-merge-480-master
weekly_20220111
weekly_20220105
revert-merge-348-master
revert-merge-346-master
revert-merge-297-master
OpenHarmony-v2.2-Beta
OpenHarmony-v6.0-Beta1
OpenHarmony-v4.1.4-Release
OpenHarmony-v5.1.0-Release
OpenHarmony-v5.0.3-Release
OpenHarmony-v4.1.3-Release
OpenHarmony-v5.0.2-Release
OpenHarmony-v4.1.2-Release
OpenHarmony-v5.0.1-Release
OpenHarmony-v4.0.4-Release
OpenHarmony-v5.0.0-Release
OpenHarmony-v4.0.3-Release
OpenHarmony-v4.0.2-Release
OpenHarmony-v5.0-Beta1
OpenHarmony-v4.1.1-Release
OpenHarmony-v4.0.1-Release
OpenHarmony-v4.1-Release
weekly_20240115-v
master-v
OpenHarmony-v4.1-Beta1
OpenHarmony-v4.0-Release
OpenHarmony-v3.2.3-Release
OpenHarmony-v3.2.4-Release
OpenHarmony-v4.0-Beta2
OpenHarmony-v4.0-Beta1
OpenHarmony-v3.2.1-Release
OpenHarmony-v3.2.2-Release
OpenHarmony-v3.2-Release
OpenHarmony-v3.2-Beta5
OpenHarmony-v3.1.5-Release
OpenHarmony-v3.1.6-Release
OpenHarmony-v3.1.7-Release
OpenHarmony-v3.2-Beta4
OpenHarmony-v3.1.4-Release
OpenHarmony-v3.2-Beta3
OpenHarmony-v3.1.3-Release
OpenHarmony-v3.1.2-Release
OpenHarmony-v3.2-Beta2
OpenHarmony-v3.0.5-LTS
OpenHarmony-v3.0.6-LTS
OpenHarmony-v3.0.7-LTS
OpenHarmony-v3.0.8-LTS
OpenHarmony-v3.2-Beta1
OpenHarmony-v3.1.1-Release
OpenHarmony-v3.1-Release
OpenHarmony-v3.0.2-LTS
OpenHarmony-v3.0.3-LTS
OpenHarmony-v3.1-Beta
OpenHarmony-v3.0.1-LTS
OpenHarmony-v3.0-LTS
OpenHarmony-v3.0-Beta1
OpenHarmony-v2.2-Beta2
OpenHarmony-2.0-Canary
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(1)
1
https://gitee.com/openharmony/build.git
git@gitee.com:openharmony/build.git
openharmony
build
build
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册