|
@@ -11,21 +11,12 @@ DADK是一个用于开发DragonOS应用的工具包,设计目的是为了让
|
|
|
|
|
|
DADK的文档托管在[DADK Docs](https://docs.dragonos.org.cn/p/dadk/)上。
|
|
DADK的文档托管在[DADK Docs](https://docs.dragonos.org.cn/p/dadk/)上。
|
|
|
|
|
|
-### DADK做什么?
|
|
|
|
|
|
+## DADK有什么用?
|
|
|
|
|
|
-- 自动配置libc等编译用户程序所需的环境
|
|
|
|
-- 自动处理软件库的依赖关系
|
|
|
|
-- 自动处理软件库的编译
|
|
|
|
-- 一键将软件库安装到DragonOS系统中
|
|
|
|
|
|
+- 管理DragonOS应用的编译与安装
|
|
|
|
+- 对DragonOS内核进行profiling
|
|
|
|
+- 管理DragonOS的镜像构建、虚拟机运行
|
|
|
|
|
|
-### DADK不做什么?
|
|
|
|
-
|
|
|
|
-- DADK不会帮助开发者编写代码
|
|
|
|
-- DADK不提供任何开发DragonOS应用所需的API。这部分工作由libc等库来完成
|
|
|
|
-
|
|
|
|
-## License
|
|
|
|
-
|
|
|
|
-DADK is licensed under the [GPLv2 License](LICENSE).
|
|
|
|
|
|
|
|
## 快速开始
|
|
## 快速开始
|
|
|
|
|
|
@@ -42,56 +33,12 @@ cargo install dadk
|
|
|
|
|
|
```
|
|
```
|
|
|
|
|
|
-## DADK的工作原理
|
|
|
|
-
|
|
|
|
-DADK使用(任务名,任务版本)来标识每个构建目标。当使用DADK构建DragonOS应用时,DADK会根据用户的配置文件,自动完成以下工作:
|
|
|
|
-
|
|
|
|
-- 解析配置文件,生成DADK任务列表
|
|
|
|
-- 根据DADK任务列表,进行拓扑排序。这一步会自动处理软件库的依赖关系。
|
|
|
|
-- 收集环境变量信息,并根据DADK任务列表,设置全局环境变量、任务环境变量。
|
|
|
|
-- 根据拓扑排序后的DADK任务列表,自动执行任务。
|
|
|
|
-
|
|
|
|
-### DADK与环境变量
|
|
|
|
-
|
|
|
|
-环境变量的设置是DADK能正常工作的关键因素之一,您可以在您的编译脚本中,通过引用环境变量,来获得其他软件库的编译信息。
|
|
|
|
-这是使得您的应用能够自动依赖其他软件库的关键一步。
|
|
|
|
-
|
|
|
|
-只要您的编译脚本能够正确地引用环境变量,DADK就能够自动处理软件库的依赖关系。
|
|
|
|
-
|
|
|
|
-#### 全局环境变量
|
|
|
|
|
|
+然后,转到[Quick Start](https://docs.dragonos.org.cn/p/dadk/user-manual/quickstart.html)以开始使用DADK。
|
|
|
|
|
|
-DADK会设置以下全局环境变量:
|
|
|
|
-
|
|
|
|
-- `DADK_CACHE_ROOT`:DADK的缓存根目录。您可以在编译脚本中,通过引用该环境变量,来获得DADK的缓存根目录。
|
|
|
|
-- `DADK_BUILD_CACHE_DIR_任务名_任务版本`:DADK的任务构建结果缓存目录。当您要引用其他软件库的构建结果时,可以通过该环境变量来获得。
|
|
|
|
-同时,您也要在构建您的app时,把构建结果放到您的软件库的构建结果缓存目录(通过对应的环境变量获得)中。
|
|
|
|
-- `DADK_SOURCE_CACHE_DIR_任务名_任务版本`:DADK的某个任务的源码目录。当您要引用其他软件库的源码目录时,可以通过该环境变量来获得。
|
|
|
|
-
|
|
|
|
-#### 任务环境变量
|
|
|
|
-
|
|
|
|
-- DADK会为每个任务设置其自身在配置文件中指定的环境变量。
|
|
|
|
-- DADK会设置`DADK_CURRENT_BUILD_DIR`环境变量,其值与`DADK_BUILD_CACHE_DIR_任务名_任务版本`相同。方便您在编译脚本中引用,把构建结果拷贝到这里。
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-#### 全局环境变量命名格式
|
|
|
|
-
|
|
|
|
-全局环境变量中的任务名和任务版本,都会被转换为大写字母,并对特殊字符进行替换。替换表如下:
|
|
|
|
-
|
|
|
|
-| 原字符 | 替换字符 |
|
|
|
|
-| ------ | -------- |
|
|
|
|
-| `.` | `_` |
|
|
|
|
-| `-` | `_` |
|
|
|
|
-| `\t` | `_` |
|
|
|
|
-| 空格 | `_` |
|
|
|
|
-| `+` | `_` |
|
|
|
|
-| `*` | `_` |
|
|
|
|
-
|
|
|
|
-**举例**:对于任务`libc-0.1.0`,其构建结果的全局环境变量名为`DADK_BUILD_CACHE_DIR_LIBC_0_1_0`。
|
|
|
|
|
|
+## License
|
|
|
|
|
|
|
|
+DADK is licensed under the [GPLv2 License](LICENSE).
|
|
|
|
|
|
-## TODO
|
|
|
|
|
|
+## Contributing
|
|
|
|
|
|
-- 支持从在线归档文件下载源码、构建好的软件库
|
|
|
|
-- 支持自动更新
|
|
|
|
-- 完善clean命令的逻辑
|
|
|
|
|
|
+欢迎贡献代码!请参阅[开发者指南](https://docs.dragonos.org.cn/p/dadk/dev-guide/)以了解如何贡献代码。
|