# Lycium **Repository Path**: han_jin_fei/lycium ## Basic Information - **Project Name**: Lycium - **Description**: OpenHarmony packages build script. - **Primary Language**: C++ - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 58 - **Forks**: 49 - **Created**: 2023-02-23 - **Last Updated**: 2025-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HPKBUILD build script! 协助开发者, 为 OpenHarmony/HarmonyOS 系统快速编译、验证以及长期维护 c/c++ 开源库. ## 使用 执行脚本 build.sh, 自动编译 main 目录下的相关开源库,并自动打包安装到 \$LYCIUM\_ROOT/usr/\$pkgname/\$ARCH 目录 ```shell ./build.sh # 隐式编译:编译 main 目录下的所有库 ``` ```shell ./build.sh aaa bbb ccc ... # 显式编译:编译 main 目录下指定的 aaa bbb ccc ... 库, 以及相关的依赖库. ``` ## 原则 **移植过程, 非必要不patch (即不patch源文件,不patch构建脚本). 如移植必须patch, patch必须审核, 给出充分理由. (不接受任何业务patch)** ## issue **大家在使用过程中遇到的任何问题,都可以在issue区提问(在提issue前,请先在issue区搜索是否有类似已解决或正在讨论解决的issue。请不要重复提相同的issue)。** ## 如何贡献 为 lycium 贡献, 开源库 ## docker环境开发(推荐) 为了保证所有开发\测试人员在使用 lycium 的时候不在环境搭建上浪费时间。我们提供了针对lycium的docker搭建方案。详细说明[参见](./docker/README.md)。 ### 1.编译环境准备(必读) 请仔细阅读 [buildtools README](./buildtools/README.md)。 ### 2.HPKBUILD 编写说明 请仔细阅读 [template README](./template/README.md) ,同时为了测试, 需要开启编译单元测试用例 & demo。 ### 3.CI环境准备 请仔细查阅 [lycium CItools](https://gitee.com/han_jin_fei/lycium-citools),搭建好测试环境后,就可以将预编译的shell工具copy到openharmony设备上,运行原生测试用例。(CItools 仅支持OpenHarmony系统,HarmonyOS暂不支持) ### 4.测试通过即可提交PR,请附带测试成功的截屏 ## 目录介绍 build.sh: 编译构建脚本 main: 存放开源库的移植脚本,每个目录对应一个开源库 template: 开源库的移植模板 dockers:搭建lycium docker环境需要的资源 doc: 说明文档 script: 存放项目脚本 buildtools: 存放编译环境所需的说明文档及工具 ## WARING (极少数情况) 1: 部分项目编译报 API 不存在,可能的原因是个别 API 未导出到开发侧。可以参考 [这里](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/native-lib/musl-peculiar-symbol.md) 排查。开发应避免调用未导出的 API。
2: 部分项目存在编译不报错,但是运行报错的情况。这种情况大概率是系统 [Seccomp机制 和 SELinux 机制引起的](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/native-lib/guidance-on-ndk-libc-interfaces-affected-by-permissions.md)。